次のような動作を望みます:
すべての外部コンピュータは、サーバーのポート 22 (ssh)、80 (http)、および 443 (https) にのみバインドできます。
ただし、すべての localhost アプリは任意のポートにバインドできます。
検索してみたところ、次のような結果になりました:
iptables -A INPUT -p tcp -m tcp -m multiport ! --dports 22,80,443 -j DROP
希望どおりに動作しますが、すべての localhost アプリもブロックされます。localhost アプリが任意のポートにバインドできるようにするには、何を変更すればよいでしょうか?
では、どうすればそのルールを永続的にできるのでしょうか?
ありがとう!
答え1
ルールは順番に照合されます。localhost を許可するルールを、拒否するルールよりも先に作成します。
iptables -A 入力 -p tcp -s localhost -m tcp -m マルチポート ! --dports 22,80,443 -j 受け入れる
iptables -A 入力 -p tcp -m tcp -m マルチポート ! --dports 22,80,443 -j ドロップ
OS に応じて保存する方法については、ここをお読みください。 https://www.thomas-krenn.com/en/wiki/Saving_Iptables_Firewall_Rules_Permanently