現在、基本的に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
それを試す前に修正することを忘れないでください;)