IPtablesにはルールのリストがあり、各パケットについて、ルールのリストを順番にチェックします。パケットに一致し、ポリシー(ACCEPT、REJECT、DROP)を指定するルールが見つかると、一致するパケットの運命が決定されます。これ以上のルールは検査されません。
これは、コマンドを実行する順序が重要であることを意味します。を使用する場合iptables -A
、ルールのリストの最後にルールを追加するので、次のようなルールリストが作成されます。
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
ACCEPT all -- anywhere anywhere
REJECT
ルールはルールの前にあるため、ACCEPT
最初にトリガーされ、転送は行われません。
したがって、REJECT
ルールを追加する代わりに、ルールを削除する必要がありますACCEPT
。REJECTルールを削除するには、次を実行します。
iptables -D FORWARD -j REJECT
詳細については、iptablesのマンページを参照してください。
-A
、多分あなたは、使用したい-P
設定するPの olicy(チェーン内の他のルールが適用されないデフォルトアクション)。たとえば、iptables -P FORWARD DROP
(にすることはできませんREJECT
)。