応答エラー コードなしで Web サーバーへの直接 IP アクセスをブロックするにはどうすればよいですか?

応答エラー コードなしで Web サーバーへの直接 IP アクセスをブロックするにはどうすればよいですか?

この質問について皆さんが助けてくれることを願っています。

例:

私のドメイン名はexample.comです

私のIPアドレスは103.103.103.103です

誰かがポート 80 で私の IP に接続しようとしても、いかなる要求にも応答しません。

次のように表示されます: 接続中(ブラウザ上)... 応答なし。(接続できないように見えます)

httpd.conf を変更しようとしましたが (Apache 2.4 を使用しています)、まだ成功していません。

グーグルで検索してみましたが、私の質問に対する結果は見つかりませんでした。

ありがとう

答え1

リクエストをhttp://example.comウェブサイトの配信、リクエストの送信http://103.103.103.103明示的に削除するには、私が知っている 2 つの主なオプションがあります。

1) は、mod_securityモジュールとdropターゲット。構成は次のようになります。

    <VirtualHost *:80>
        ServerName default.only
        SecRuleEngine On
        SecRule REMOTE_ADDR "^\d" id:'1234',drop,phase:1
    </VirtualHost>

    <Directory /var/www/example.com >
      Options FollowSymLinks
      AllowOverride FileInfo Options
      Order allow,deny
      Allow from all
    </Directory>

    <VirtualHost *:80>
        ServerName example.com
        DocumentRoot /var/www/example.com
    </VirtualHost>

ウェブサイトに戻ると、http://example.com

# wget -O-  http://example.com
--2018-03-09 15:35:35--  http://example.com/
Resolving example.com (example.com)... 127.0.0.1
Connecting to example.com (example.com)|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 24 [text/html]
Saving to: ‘STDOUT’

IP経由でデフォルトのサイトにアクセスしようとするとhttp://127.0.0.1

# wget -O-  http://127.0.0.1
--2018-03-09 15:35:28--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... No data received.

接続が切断されました

2) 2番目のオプションは、stringモジュールを使用することです。iptablesヘッダーに一致する接続をドロップしますHost: 103.103.103.103

iptables -A INPUT -m string --string "Host: 103.103.103.103" -j DROP

(私はiptablesルールをテストしていません...正しい呪文についてはドキュメントを確認する必要があります...)ただし、mod_securityオプションの方が簡単だと思います

関連情報