私は新年を迎える前からプロジェクトに取り組んでいましたが、ここ数日で、新しいサーバー用に新しく増設したハードディスクを入手し、本番環境用にアレイ構成をやり直し、セキュリティポリシーを準備するための展開ドキュメントを作成しました。オンラインになる前に、テスト部門と関連部門に最終テストを引き渡しました。次に、展開ドキュメントを関連部門の同僚に渡し、展開ドキュメントに従ってシステムを再度作成してもらい、他の同僚が将来サーバーを正常に展開できるようにしました。最後に、休暇前の最後の日に急いでテストを終えた後、展開ドキュメントに従ってサーバーを再展開するように同僚に指示し、家に逃げ帰りました。残りは、コンピュータールームでサーバーをホストするために残業している同僚に任せました。年明けに仕事に復帰してからは、作業計画に沿ってドキュメントの作成(主に、以前作成した導入ドキュメントの修正やドキュメントに追加されていなかった関連セキュリティポリシーの追加、テスト環境でのセキュリティテストの実施)に取り組みました。サーバーの最終セキュリティチェックが終わった頃には、運用部門はすでにサイトを宣伝しており、私たちには生き残るチャンスすら与えられないほどの目まぐるしい状況でした... 残業して、パブリックネットワークに接続されたサーバーのログと関連設定を物理的にチェックすることしかできませんでした。もちろん、調査してみると、サーバーにはさまざまな攻撃記録がありましたが、幸いなことにそれらはすべてブロックされており、問題はありませんでした。その後、ファイアウォールポリシーとシステムセキュリティ設定をいくつか追加し続けました。 次は「サーバーセキュリティ検査ガイドライン - 日常メンテナンス手順」の作成に忙しくなります。会社で新しいプロジェクトを開発する必要があるため、要件を分析し、開発ドキュメントを作成し、フロントエンドとバックエンドの開発フレームワークを構築する必要があります。古いシステムに新しい機能を追加する必要があり、V3とV4の異なるバージョンの機能アップグレード開発ドキュメントを作成する必要があります...今日はついに非常に忙しいです。振り返ってみると、2月は瞬く間に過ぎました。プログラマーがすぐに老化するのは当然のようです。彼らにはもはや自分の時間がありません。 これまでたくさん意味のないことを言ってきましたが、そろそろ本題に入りましょう。 多くの開発者がサーバーのセキュリティに遭遇すると思いますが、ほとんどの人はセキュリティについて何も知りません。 10年前に初めてサーバーを引き継いだとき、興奮すると同時に戸惑いも感じたのを覚えています。しかし、実際に直面すると、どこから始めればいいのかわかりませんでした。BaiduやGoogleで検索しましたが、完全な説明はありませんでした。セキュリティについて完全に混乱していました。最初に設定したサーバーは抜け穴だらけでした。当時は、ほとんどコンピューター室で寝食を共にしていましたが、サーバーがハッキングされるのは避けられませんでした。ほとんどの場合、ハッキングされた後、何も知りませんでした。考えるだけで憂鬱でした~~~もちろん、ハッキングされる過程で、私の経験は徐々にアップグレードされました、ハハハ…… 以下に、私が作成した「サーバー セキュリティ展開ドキュメント」を共有します。皆様のお役に立てば幸いです。もちろん、私はハッカーではないので、すべての攻撃方法を知っているわけではないので、抜けがあるかもしれません。ご提案をお待ちしています。私たちは、このドキュメントのセキュリティ設定の考え方に従ってサーバーを構成しています (プラットフォームやオペレーティング システムのバージョンによって構成は異なりますが、セキュリティ設定の考え方は同じです)。2005 年から現在まで、私たちは多くのサーバー (さまざまな Web サーバー、データベース サーバー、ストリーミング メディア サーバー、ゲーム サーバー (Linux システム) など) を管理していますが、侵入に成功したことはありません。もちろん、攻撃を実行する非常に強力なハッカーがいないことも関係しているかもしれませんが、セキュリティがまだ保証されていることもわかります (笑... あまり自慢するのは恥ずかしいです)。サーバーがない場合は、仮想マシンを使用して自分のコンピューターにインストールして構成することもできます (私の会社の技術部門では、ドキュメントを全員に送信した後、多くの同僚がドキュメントの指示に従おうとしました。これは、サーバーのセキュリティ展開を改善するのに非常に役立っています)。もちろん、仮想マシンの構成と実際のサーバー上での動作には微妙な違いがあります。 目次 1. はじめに 実際、安全なサーバーを構成するには、次のように簡単に言うだけです。 開くことができるすべてのポートと無効にできるすべてのサービスを閉じるか無効にします。 ポート通信アクセス ポリシーを構成できるファイアウォールを使用します。 システム内のさまざまなプログラムの権限を厳密に制御し、各ディレクトリ内の実行可能スクリプト、ダイナミック リンク ライブラリ、プログラムを作成、変更、削除します。 ウェブサイトのディレクトリの場合、書き込み可能なディレクトリまたはファイルに実行権限を与えることはできず、実行権限を持つディレクトリに書き込み権限を割り当てることはできません。 (これが一番重要です) 2. 導入環境 わずかに サーバーソフトウェア環境:
3. ディスクアレイ構成 具体的な構成については、「RAID 構成中国語マニュアル」を参照してください。リンク アドレス: 4. オペレーティング システムをインストールします<br /> 具体的なインストール手順については、「R820 サーバー インストール ガイド」を参照してください。 5. ソフトウェアをインストールする サーバー関連のファイル、画像、各種ログファイルは絶えず作成および削除されるため、サーバーを長時間稼働させると、ディスク上に多くのファイルフラグメントが発生し、サーバーのパフォーマンスが低下し、ハードディスクの寿命が短くなります。
わずかに サーバー マネージャーを開き、役割を選択 => [役割の追加] をクリックします。 Webサーバー(IIS)を選択 次へをクリックした後、以下のように選択したコンテンツを確認します。
dotNetFx40_Full_x86_x64.exe を実行して .net4 フレームワークをインストールします (これは IIS のインストール後にインストールする必要があります。そうすることで、.net4 フレームワークが IIS の関連プロパティに自動的にバインドされます) 5.5 SQL2008をインストールする SQL2008をインストールする前に、まず.net3.5フレームワークをインストールする必要があります。サーバーマネージャーを開き、機能=》機能の追加=》.NET Framework3.5.1をチェックしてインストールを実行します。 SQL2008のインストールを続行するには、まず管理者として手順6.1でデフォルトのシステムアカウント名を変更し、次の手順に進んでください。 6.1 の手順を実行した後、SQL2008_CHS.iso を仮想 CD にロードし、インストールを実行して、「インストール」=>「新しい SQL Server スタンドアロン インストールまたは既存のインストールへの機能の追加」を選択します。 ここで選択したアカウント名はSYSTEMで、パスワードは空白です このステップでは次の点に注意してください: 最後のステップまで実行すると、インストールが失敗したと表示されることがあります。このとき、再起動後、コントロール パネルに入り、プログラムのアンインストールをクリックして、新しくインストールされた SQL2008 を削除し、コンピューターを再起動してからインストールします。もちろん、一度試して成功し、この操作を 3 回または 4 回試してから成功しました。なぜこのようなことが起こったのかはわかりません。
わずかに 「6.14. McAfee ファイアウォールの設定」の前にすべての手順を完了してから、ウイルス対策ソフトウェアとファイアウォールをインストールすることをお勧めします。そうしないと、ファイアウォールのインストールが成功するとシステム ソフトウェアの動作が妨げられるため、一部の設定や操作が失敗する可能性があります。インストールされている場合は、まずウイルス対策ソフトウェアのコンソールを開き、「アクセス保護」を無効にし、ファイアウォールはまだ有効にしないでください。 詳細は省きますが、以下に示すようにウイルス対策ソフトウェアをインストールするだけです。 ファイアウォールをインストールする McAfeeHIP_ClientSetup.exeを直接実行します(注:正規のインストール方法は以下とは異なります。若干の違いがあります) 実行後、インストールインターフェースは表示されません。以下に示すように、パッチを実行する前にしばらくお待ちください。 マウスの左ボタンをダブルクリックし、以下のパスを入力して、インストールされているファイアウォールプログラムを見つけます。 McAfeeFire.exeを実行してファイアウォールソフトウェアを開きます
システムのデフォルト アカウント名を変更し、トラップ アカウントとして新しい管理者アカウントを作成し、非常に長いパスワードを設定し、すべてのユーザー グループを削除します。 (このアカウントがどのユーザー グループにも属さないように、ユーザー グループで空に設定するだけです)。また、ゲスト ユーザーの名前を変更して無効にします。 まず、元の管理者ユーザーの名前を変更します 自分の好みに合わせて名前を変更してください 次に、新しい管理者詐欺アカウントを作成し、混合した超長いパスワードを設定します 編集する 所属するグループを削除する これは偽装アカウントなので、ネットワークポリシーによるアクセス制御を許可します ゲストの名前も変更 セットアップが完了したら、コンピュータを再起動する必要があります。再起動しないと、SQLのインストールが失敗し、再インストールが必要になる場合があります。
[実行] ウィンドウに gpedit.msc と入力し、Enter キーを押してグループ ポリシー エディターを開きます。[コンピューターの構成] - [Windows の設定] - [セキュリティの設定] - [アカウント ポリシー] - [アカウント ロックアウト ポリシー] を選択し、アカウントを「3 回のログインが無効」、「ロックアウト時間 30 分」、「ロックアウト回数を 30 分にリセット」に設定します。
CREATOR OWNER、administrators、system を除くすべてのディスクのユーザー権限をすべて削除します (Users ユーザーグループは C ドライブに保持する必要があります。理論上は Users ユーザーグループは削除する必要がありますが、多くの友人がここで直接削除すると、操作が適切でない場合、Web サイトにアクセスできなくなる可能性があります。system ディレクトリ以下の多くのディレクトリの権限を再設定するのは非常に面倒なので、この記事では保持することをお勧めします。次の設定が整っている限り、ここでセキュリティ上のリスクはあまりありません)
ウェブサイトのコードと画像を指定されたフォルダにコピーします (このサイトはフロントエンドとバックエンドが分離しており、画像サイトも独立しており、画像の非同期クロスサーバ更新プログラムも作られているため、以下の4つのフォルダがあります) サーバーマネージャーを開き、ローカルユーザーとグループ管理に入り、上記のWebサイトに対応するバインドユーザーを追加し、それぞれ非常に長い混合パスワードを設定し、後で使用するために記録します。 注: その後、同僚から、Win2008 サーバーの IIS アクセスでは、複数の独立したアカウントを作成しなくても、アプリケーション プール名をアカウントとして使用して設定できることを教わりました (http://www.cnblogs.com/yjmyzz/archive/2009/10/26/1590033.html を参照)。ただし、このドキュメントはすでに作成されているため、変更するのは面倒です。アカウントを追加するには、引き続き Win2003 設定モードを使用します。 次に、作成したアカウントが属するデフォルトのグループを削除し、ゲストグループを追加します。 リモコンを取り外す 着信を拒否に設定する IISを開いてデフォルトのサイトを削除する ウェブサイトを右クリックしてウェブサイトを追加します 対応するサイトを作成する [接続]ボタンをクリックし、アクセスアカウントを設定し、パス資格情報を「特定のユーザー」に設定し、作成したユーザー名と対応するパスワードを入力します。 認証の設定 アプリケーション プールをクリックし、新しく作成した Web サイトを対応するアプリケーション プールの .NET Framework バージョンとマネージ パイプライン モードに割り当てます。 .NET Framework のバージョンは .NET Framework v4.0.30319 に設定されています ウェブサイトのデフォルトドキュメントを Index.aspx に設定する ISAPI および CGI 制限の設定 Active Server Pagesを許可しないように設定し、ASP.NET v4.0.30319を許可に設定します C:\Windows\Microsoft.NET\Framework64\v4.0.30319 ディレクトリに移動し、Temporary ASP.NET Files フォルダーのアクセス許可を設定します。 右クリック => プロパティ 赤いボックスにユーザーを追加し、編集可能に設定します C:\Windows\Microsoft.NET\Framework64\v2.0.50727ディレクトリに移動し、Temporary ASP.NET Filesフォルダに対して同じ操作を実行します。 次に、現在作成されているWebサイトの対応するフォルダのアクセス権限を設定します。 作成してバインドしたアカウントをIIS、認証済みユーザー、およびネットワークサービスアカウントに追加します。 権限をデフォルトの権限(読み取りと実行、フォルダーの内容の一覧表示、読み取り)に設定する 親パスを有効にする ASPをダブルクリックしてプロパティエディタを開き、親パスの有効化をTrueに変更します。 データベース操作をアタッチしてSQL2008を開く データベースをアタッチする データベースの保存場所を見つける データベース内の元のバインドされたユーザーを削除します 新しいログイン名を作成する SQLの新しいログイン名に対応するテキストボックスにデータベースリンクのユーザー名とパスワードを入力し、以下のように設定します。 次に、[ユーザー マッピング] をクリックし、データを確認して、データベースに db_owner ロール権限を設定します (注: [OK] をクリックした後、新しく作成したユーザーのプロパティ、ユーザー マッピング項目を再確認し、db_owner ロール権限が正常に割り当てられているかどうかを確認することをお勧めします。作成後に割り当てが成功しないことが多く、手動でリセットする必要があります) ウェブサイトディレクトリを開き、Web.configファイルを見つけてメモ帳で開き、新しく作成したデータベースのユーザー名とパスワードを入力します。 ASP.NET State Serviceを実行し、自動的に実行されるように設定します。 上記の手順と構成に従って他のいくつかの Web サイトを設定した後、ブラウザーを開いて通常どおり質問することができます。 赤いボックス内の2つのアカウントを設定して権限を編集します 書き込み可能なディレクトリの実行権限を無効にします (css、js など、ASPX スクリプトを実行する必要のないすべてのディレクトリの実行権限を無効にすることもできます) 6.5. 画像ウェブサイトを更新するためのサーバー間同期の設定 わずかに 6.6. xplog70.dll の脆弱性のシールド インストールされたSQLディレクトリに移動し、xplog70.dllを検索して見つかったファイルを削除します(この操作によりSQLエージェントサービスが停止するため、エージェント機能を使用している場合は削除しないでください)
[実行] ウィンドウに gpedit.msc と入力し、Enter キーを押してグループ ポリシー エディターを開きます。[コンピューターの構成] - [Windows の設定] - [セキュリティの設定] - [ローカル ポリシー] - [セキュリティ オプション] の順に選択し、[ネットワーク アクセス: 匿名でアクセスできる共有] を設定します。
[実行] ウィンドウに gpedit.msc と入力し、Enter キーを押してグループ ポリシー エディターを開きます。[コンピューターの構成] - [Windows の設定] - [セキュリティの設定] - [ローカル ポリシー] - [ユーザー権利の割り当て] を選択し、[ネットワーク経由でコンピューターへアクセス] ポリシーの [Everyone] を削除します。 「リモートデスクトップサービス経由のログオンを拒否する」ポリシーで、次のユーザーグループとユーザーを追加します。 さらに、新しいサイトを追加する場合は、作成された新しいユーザーもここに追加する必要があります。
レジストリを開く
サーバー マネージャーを開き、「サービス」管理に入り、次のサービスを無効にします (黄色でマークされたサービスは 2008 システムには存在しない可能性があります)
システム ファイアウォールをオンにします (コントロール パネル => システムとセキュリティ => Windows ファイアウォール => Windows ファイアウォールのオン/オフの切り替え)。リモートで操作している場合は、自分の接続を無効にしないように注意してください。 ファイルとプリンタの共有をオフにする 注: セキュリティを強化するには、リモート デスクトップをオフにして、より安全なサードパーティのリモート ログイン プログラムを使用することをお勧めします。または、リモート接続ポートを変更します。一般的に、前の設定を行った後、「ゾンビ」が残っていても、問題は大きくありません。
「マイ コンピュータ」をクリックし、「システム プロパティ」ウィンドウを開きます。 リモート デスクトップ リンク ポートを変更します。[スタート] メニューをクリックし、「regedit」と入力してレジストリを開きます。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp 項目の PortNumber 値を 3389 から、たとえば 12345 (これらのハイエンド ポート) に変更します。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp キーの PortNumber 値を 3389 から 12345 に変更します。 リモート デスクトップ ポートを変更すると、元のファイアウォール リモート デスクトップ ルールは無効になるため、ルールを再作成する必要があります。Windows ファイアウォールを開き、[詳細設定] をクリックします。 設定後、コンピュータを再起動するとすぐに有効になります
VirusScanコンソールを開く アクセス保護を有効にする オープンアクセス保護プロパティ ユーザー定義ルールの追加 除外するプロセス: csc.exe、DTSWizard.exe、Explorer.EXE、FrameworkService.exe、HIPSvc.exe、McScript_InUse.exe、SqlWb.exe、Ssms.exe、vbc.exe、w3wp.exe 除外するプロセス: FrameworkService.exe、mmc.exe、svchost.exe ファイアウォールのブロックルールを有効にする 以下の必要に応じて、除外するプロセスを対応するルールに追加します。
これらのルールを追加するには、「アクセス保護ログ」を頻繁にチェックして、実行を許可しているがファイアウォールによってブロックされているプログラムを確認し、対応する除外プロセスに追加する必要があります(具体的な操作がわからない場合は、Baiduを確認するか、サーバーの日常的なメンテナンス内容を記載した次の記事「サーバーセキュリティ検査ガイド-日常的なメンテナンス手順」を確認してください)。
次のパスに従ってファイアウォールフォルダに入ります McAfeeFire.exeを実行してファイアウォールソフトウェアを開きます クリックしてロックを解除します。デフォルトのパスワードはabcde12345です。 ロック解除後、ファイアウォールの関連オプションを設定します ファイアウォール機能を有効にする - リモート デスクトップ操作の場合、この手順の直後はリモート デスクトップが接続できなくなります。再度接続できるようにするには、サーバー上でローカルに設定する必要があります。 有効にしたら、リモートデスクトップに接続して承認を付与します 「許可」をクリックすると、リモートデスクトップ接続を使用してログインできます。他のポート、ソフトウェア、またはWebサイトへの許可されたアクセスにも同じ操作が適用されます。許可を与えるときは、許可を要求したプログラムがアクセスしているかどうかに十分注意してください。そうでない場合、または確信がない場合は、拒否してください。Webサイトの特定の機能にアクセスできない場合、または拒否後に問題が発生した場合は、ここに来てルールを確認し、修正してサーバーのセキュリティを確保してください。
1. 更新する前に、自己テストおよびテスト部門の担当者によるテストを実施する必要があります。 8. 結論 サーバーのセキュリティは些細なことではなく、何事にも注意が必要で、問題があれば大きな問題となるため、実際に運用する際には細心の注意と用心深さが必要です。 サーバー保守担当者として、日常的な保守作業に加えて、時間があれば、一般的に使用されるさまざまなハッキングツールを学習して習得し、さまざまな攻撃方法に精通し、Wuyun.com などの Web サイトをより頻繁に訪問して他の人がどのように侵入するかを確認し、より優れた保護を提供する必要があります。 同社のウェブサイトの特殊性により、公開されている内容が編集されており、一部の特殊な構成や設定は公開されていません(笑)。ただし、基本的なセキュリティ保護の説明はほぼ完了しています。まだセキュリティ上の問題があるかどうかはわかりません。経験のある友人からアドバイスをいただければ幸いです。 この記事が役に立ったと感じた場合は、ぜひ推薦してください。 著作権に関する通知: この記事はAllEmptyによってBlog Gardenに掲載されました。この記事の著作権は著者とBlog Gardenが共有しています。転載は歓迎しますが、著者の同意なしにこの声明を保持し、元のリンクを記事ページの目立つ位置に表示する必要があります。ご質問がある場合は、 1654937#qq.comまでご連絡ください。ありがとうございます。 このコンテンツを公開する目的は、皆さんと一緒に学び、進歩することです。興味のある友人は、QQグループ:327360708に参加するか、私にメール(1654937#qq.com)して議論することができます。仕事が忙しいため、質問がある場合は、まずメッセージを残してください。返信が遅くなることをお許しください。 以下もご興味があるかもしれません:
|
<<: MySQL で珍しい文字を挿入できないときの対処方法 (文字列値が正しくない)
>>: Vue でのルーティングパラメータの受け渡しとクロスコンポーネントパラメータの受け渡しの詳細な説明
1. 公式サイトからダウンロード: https://dev.mysql.com/downloads/...
ムーアの法則はもはや適用されない2004年にフレックストロニクスがフロッグデザインを買収したのを皮切...
MySQL 結合クエリ1. 基本概念2 つのテーブルの各行をペアで水平に接続して、すべての行の結果を...
Superset は、エレガントなインターフェースとデータ テーブルに基づく動的なデータ生成を主な機...
システムヘルプを表示help contents mysql> ヘルプコンテンツ; ヘルプ カテ...
自動検出を行う際には、ポートなどの情報を取得してjson形式で返すスクリプトが必ず存在します。Red...
ステップ1: Djangoプロジェクトを作成するターミナルを開き、書き込みたいプロジェクトのアドレス...
準備するこの記事の環境情報: ソフトウェアバージョンセントOSセントOS7.4マイグレーション8.0...
META タグは、HTML 言語のヘッダー領域にある補助タグです。作成者、日時、Web ページの説明...
目次背景仮想ファイルのインポート例書類タイプスクリプトのサポート要約する背景新しいプロジェクトで v...
この記事の例では、両端キューを実装するためのJavaScriptの具体的なコードを参考までに共有して...
1. HTML 画像 <img> 1. <img> タグとその src 属性...
docker コンテナを使用する場合、vim がインストールされていないことがあり、vim コマンド...
何が大問題ですか?長時間実行され、長時間コミットされないトランザクションは、大規模トランザクションと...
まずは投稿する前に! 「I Want to Study on My Own!」に改めて感謝します。た...