デスクトップに適した iptables 構成とは何ですか?

デスクトップに適した iptables 構成とは何ですか?

デスクトップでは、iptables をかなり厳密に設定したいと思っています。自分が開始したインターネット トラフィック以外を許可する理由は見当たりません。また、そのトラフィックもいくつかのポートだけに制限できるかもしれません。デスクトップを閉鎖できる基本的なルールは何でしょうか。必要なのは次の 2 つだけです。

  • インターネットを閲覧するには
  • メールをダウンロード

推奨されるルールセットはありますか?

答え1

次のルールは、すべての送信接続を許可しますが、受信接続はすべてブロックします。INPUT チェーンと FORWARD チェーンはデフォルトでパケットを拒否するように設定され、OUTPUT チェーンはデフォルトでパケットを受け入れるように設定され、最後のルールは既存の接続の一部である受信パケットを許可します (この場合は送信接続のみになります)。

iptables --policy INPUT DROP
iptables --policy FORWARD DROP
iptables --policy OUTPUT ACCEPT
iptables --append INPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT
iptables --append INPUT --jump REJECT
iptables --append FORWARD --jump REJECT

送信トラフィックを制限する場合は、OUTPUT ポリシーを拒否に変更し、特定のポートでトラフィックを受け入れるルールを追加します。例:

iptables --policy OUTPUT DROP
iptables --append OUTPUT --protocol udp --match multiport --dports domain,bootps --jump ACCEPT
iptables --append OUTPUT --protocol tcp --match multiport --dports domain,http,https,ssh,pop3s,imaps,submission --jump ACCEPT
iptables --append OUTPUT --jump REJECT

答え2

次のiptables-restoreスクリプトはあなたのニーズを満たすはずです:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state ! --state NEW -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT

ICMP ping を許可するルールを削除することでスクリプトをさらに短くすることができますが、そうすることはお勧めしません。私の意見では、ping に応答してもセキュリティにそれほど悪影響はなく (まったく悪影響がないとしても)、ネットワークのトラブルシューティングに役立ちます。

特定の TCP ポートで着信接続を許可する場合 (たとえば、ssh接続を許可する場合)、ステートメントのすぐ上に次のようなルールをスクリプトに追加できますCOMMIT

-A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT

関連情報