現在、基本的にOUTPUTデフォルトポリシーACCEPTを使用しています。
Netfilterはステートフルな接続の追跡を開始するための特別なルールを必要としないため、OUTPUTにはこれで十分です。
ただし、「デフォルトの拒否」ポリシーに従ってインバウンドトラフィックを除外したい場合は、INPUT-chain to をswitchで実行できますDROP。iptables -P INPUT DROP
その後、すべてが2つのルールで設定されます。
iptables -A INPUT -j ACCEPT -i lo
iptables -A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
ループバックインターフェイスでの入力トラフィックを許可するルールに注意してください。ブログの「エンドユーザー向けの最小ファイアウォール」で指摘したように、明示的に許可しない限り、ループバックトラフィックは「確立された」状態チェックでは処理されません。たとえば、トラフィックeth0。
この最小限のルールセットが「そのまま」ロードされることを保証するには、すでにそこにあるかもしれないルールに干渉せずにiptables-restore、SHELLセッションで利用すると便利です。
lptables-restore <<__EOF__
-P INPUT DROP
-A INPUT -j ACCEPT -i lo
-A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
__EOF__
これを行う前に、自分のネットワーク接続を切断しないようにしてください1。すでに開いているSSHセッションは引き続き正常に機能するはずですが、新しいセッションを開こうとしても機能しません。
__
- もちろん、他のルールを追加して、そのような接続を許可することができます。単純なこともあるので
-A INPUT -j ACCEPT -p tcp --dport 22、-m stateここをいじる必要はありません。またlptables-restore、iptables-restoreそれを試す前に修正することを忘れないでください;)