回答:
サーバー上に存在するすべてのアプリ、すべてのバイナリ、すべてのパッケージには責任があります。「最少」の原則に同意してください。インストールされていない場合、侵害されることはありません。
Tripwireなどの侵入検知を実装し、頻繁にスキャンします。
ハードウェアファイアウォールに投資し、アプリケーションに必要なポートのみを開きます。管理ポート(ssh、rdpなど)を公開しないでください。承認された管理IPアドレスに制限します。
本番環境への移行時にファイアウォール/スイッチ/ルーター構成のバックアップを作成します。これらのデバイスの1つが危険にさらされている場合、クロックが刻々と変化するときに構成の行ごとの監査を実行するよりも、デバイスの頭を拭いて構成をリロードすることで回復する方がはるかに高速です。
外部から環境を頻繁にnmapして、新しいポートが開かれていないことを確認します。
インターネットを信頼しないでください。ネットに提供しているものが安全であることを確認してください(たとえば、サーバー側の入力検証とサニタイズを実行して、SQLインジェクション攻撃を停止します)。
パッチを適用してください。
感染した場合は、新しくダウンロードしたメディアを使用して、最初から再構築します。バックアップが安全で信頼性がなく、不活性で実行不可能なデータ以外に対しても(tripwireはこれに役立ちますが)危険にさらされていません。
これは少し逆ですが、セキュリティに関しては、内部サーバーと外部サーバーを区別しません。遅かれ早かれ誰かがファイアウォールで間違いを犯し、重要なクライアントが原因でサーバーが公開されると管理者が主張し、アカウンティングのベティが感染した自宅のマシンに何らかの形でvpnクライアントを取得するなどします。
とはいえ、レイヤーはあなたの友達であり、デフォルトでブラックリストに登録する必要があります。
層-複数のセキュリティ層が必要です。たとえば、ハードウェアファイアウォールとソフトウェアファイアウォール。これらは理論的には同じ目的を果たしますが、複数のレイヤーを使用することで、ミスから保護し、単一のレイヤーが悪用されることによる影響を軽減します。
階層化のもう1つの側面は「ホーミーコーム」です。これは基本的に複数のDMZです。ある時点で、あなたのマシンとあなたのアカウントにアクセスしている人々との間にある程度の信頼がなければなりません。これらの相互作用ポイントを狭めることができれば、どの時点でも信頼できるトラフィックの種類を厳密に制御できます。たとえば、インターフェイス/アプリサーバーをデータベースサーバーから分離すると、信頼のレベルが狭まります。アプリサーバーが危険にさらされると、それらの攻撃者はインフラストラクチャへの最小限の足場を獲得します(つまり、攻撃を継続して他のサーバーを悪用しようとするために、確立された信頼ポイントしか使用できません)。
デフォルトでのブラックリストに関しては、基本的にすべてをシャットダウンし、開くすべてのポート、アクセスを許可するユーザー名、インストールするアプリなどの正当化を要求します(たとえそれが自分だけであっても)。
スイッチがハッキングされ、誰かがデータを改ざんする可能性があります。スイッチを所有していない場合は、VPNをセットアップします。IPごとのファイアウォールアクセス制限では不十分な場合があるためです。
ポートを開いたままにしないでください。ポートは、ユーザーやハッカーにアクセスを許可するポートです。毎月、他のサイトから自分のサーバーをスキャンします。
sshのデフォルトのポートをハッカーのために開いたままにしないでください。