Q1:なぜブロックされていないのですか?

Q1:なぜブロックされていないのですか?

私はiptablesの専門家ではなく、修正する必要がある2つの奇妙な動作があります!

Q1:なぜブロックされていないのですか?

f2b-nginx-naxsi次のようなiptableルールを持つカスタムチェーンがあります。

$ sudo iptables -S f2b-nginx-naxsi
-N f2b-nginx-naxsi
-A f2b-nginx-naxsi -s 81.250.100.81/32 -j REJECT --reject-with icmp-port-unreachable #<== Here
-A f2b-nginx-naxsi -j RETURN

81.250.100.81私はパブリックIPなのでブロックする必要があります。

動作しません。ルールが間違っています!

チェーンからチェーンをロードする方法はINPUT次のとおりです。

sudo iptables -S INPUT
-P INPUT ACCEPT
-A INPUT -p tcp -m multiport --dports 80,443 -j f2b-nginx-naxsi    #<== Here
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j INPUT_direct
-A INPUT -j INPUT_ZONES_SOURCE
-A INPUT -j INPUT_ZONES
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited

Q2::80の代わりにSSHを使用するのがブロックされるのはなぜですか?

修理するため質問1私は前のルールを取り、INPUTチェーンの中に設定しました。
-I INPUT -s 81.250.100.81/32 -j REJECT --reject-with icmp-port-unreachable

Enterを押した後、機械の接続が切断されました。ハハ。
しかし、何らかの理由でブラウザでnginxをpingすることができます。
SSH(22)は終了しますが、標準のhttp接続(80)は終了しません。

よろしくお願いします。
;-)

ベストアンサー1

トラブルシューティング手順:

  1. マルチポートiptablesモジュールがロードされていることを確認してください。

     lsmod | grep multiport
     # Should see something like xt_multiport or ipt_multiport in the output
    
  2. nginxサーバーが実際にポート80および/または443でリッスンしていることを確認してください。これはプロキシの背後に設定できます。

     sudo ss -tlnp | grep nginx
     # Should see nginx listed listening on one of those two ports
    

(修正済み)

2b。 Dockerホストのどのポートがnginxコンテナにマップされていることを確認してください。

    docker port <container_name>

This command should show which port(s) you need to use in your custom IPtables chain running on the container host.

おすすめ記事