Apache2仮想ホストを使用してサーバーのベアIPに*サービスなし*を提供する方法は?

Apache2仮想ホストを使用してサーバーのベアIPに*サービスなし*を提供する方法は?

Apacheを実行しているコンピュータで複数のプロジェクトサイトをホストします。もちろん、私は仮想ホストを使用しており、期待どおりに動作します。ただし、現在マシンにアクセスしているネイキッドIPは(予想どおり)アルファベット順に最初の仮想ホストを作成します。悪意のある行為者が自分のコンピュータのIPにランダムに(おそらく繰り返し)ログインページにスパムを送信したり、問題を引き起こそうとする問題が発生しました。私はコンピュータのIPに接続したい人にサービスを提供したくありません。

私はポート80に空のindex.htmlを持つディレクトリを提供する「000-nodomain.conf」という仮想ホストを試しました。しかし、サーバーが応答せずにディスクから読み取るのを心配する必要がないように、そのディレクトリを削除したいと思います。最善のシナリオでは、サーバーがドメイン名のない要求を完全に拒否したいのですが、これが可能かどうかはわかりません。
追加の質問として、私のIPにSSL証明書がない場合(高価です!)、ポート443を介してベアIPにアクセスしようとしている人は、ポート443と一致する最初の仮想ホストであるため、まだ実際のサイトでサービスを受けることになります。ポート443で「一般」http仮想ホストを実行できますか? Naked IPを介して接続しているすべてのユーザーのエンドユーザーエクスペリエンスには興味がありませんが、他のサイトには影響しません。

ベストアンサー1

追加の仮想ホストをプライマリサイトとして追加できます。これは正しいことです。安全を維持するには、この仮想ホストのすべてを例外なく拒否する必要があります。

<directory "/">
  Require all denied
</directory>

403 Access Deniedこれにより、クライアントが試みたすべてが失敗します。

ドキュメントルートを存在しないようにしても問題はありません。

DocumentRoot "/does_not_exist"

Aapcheはそれを見つける必要があるため、まだ少量のディスクアクセスが許可されていますが、/does_not_existDOS攻撃が発生するとアクセスがキャッシュされ、システムのパフォーマンスに影響を与えません。

いかなる情報もシステムから出ることを許可してはいけません。


調査失敗2禁止。特に、別のアクセスログファイルを作成するには、デフォルトの仮想ホストを設定する必要があります。その後、これを監視し、潜在的な攻撃者がファイアウォールを通過するのを防ぐようにFail2banを設定できます。これにより、プライマリIPへの最初の数回の要求以外に他の操作を試みることができなくなります。


「ネイキッドIP」仮想ホストのポート443に対して実行する作業理論的には、ポート443を含むすべてのポートを介して一般的なHTTPを提供できます。ただし、これにより多くのHTTPクライアントでエラーが発生します。むしろこれが良いと思います。自己署名証明書の生成(あなたが好きなテーマでもあなたのIPも関係ありません)。これにより、SSLを介したHTTPサーバーが正常に機能することを期待するクライアントが可能になります。

実際のサイトに対して証明書を再利用することはありません。これは、攻撃者(ボット)に、あなたがホストしているサイトに関する追加情報を提供し、「正しい」ドメイン名で再試行させるために使用することができます。

おすすめ記事