web-dev-qa-db-ja.com

ローカルホストを除くすべての着信トラフィックに対して、22,80,443を除くすべてのポートをブロックするにはどうすればよいですか?

私はこの振る舞いが欲しい:

すべての外部コンピューターは、サーバーのポート22(ssh)、80(http)、および443(https)にのみバインドできます。

ただし、すべてのローカルホストアプリは、必要な任意のポートにバインドできます。

私は検索をしていて、これが私が思いついたものです:

iptables -A INPUT -p tcp -m tcp -m multiport ! --dports 22,80,443 -j DROP

それは私が望むことをしますが、すべてのローカルホストアプリもブロックします。ローカルホストアプリが任意のポートにバインドできるようにするには、そこで何を変更する必要がありますか?

そして、どうすればルールを永続的にすることができますか?

ありがとう!

1
PedroD

ルールは順番に一致します。拒否する前にローカルホストを許可するように作成します。

iptables -A INPUT -p tcp -s localhost -m tcp -m multiport! --dports 22,80,443 -j ACCEPT

iptables -A INPUT -p tcp -m tcp -m multiport! --dports 22,80,443 -j DROP

お使いのOSに応じて保存する方法については、こちらをお読みください。 https://www.thomas-krenn.com/en/wiki/Saving_Iptables_Firewall_Rules_Permanently

1
Timmy Browne