私は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
トラブルシューティング手順:
マルチポートiptablesモジュールがロードされていることを確認してください。
lsmod | grep multiport # Should see something like xt_multiport or ipt_multiport in the output
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.