ルールのどの部分がそのエラー メッセージを引き起こしているのかを突き止める必要があります。おそらく -m state
です 一部ですが、必ずしもそうではありません。 iptables と netfilter のさまざまな拡張機能は、iptables ユーザー空間バイナリと Linux カーネルの netfilter にコンパイルする必要があります。テストしている拡張機能のヘルプ情報を iptables に問い合わせることで、不足している部分を特定できます。さまざまな拡張機能をテストするいくつかの方法を次に示します。
$ iptables -m state -h
$ iptables -p icmp -h
$ iptables -j DROP -h
出力の一番下に拡張機能に関する情報を含むヘルプ出力が表示された場合、それはユーザー空間バイナリにコンパイルされています。そうでない場合は、iptables を再コンパイルする必要があります。それが機能する場合は、最も単純なルールを試して、拡張機能がカーネル空間に含まれているかどうかを確認してください:
$ iptables -A INPUT -m state --state NEW
$ iptables -A INPUT -p icmp
$ iptables -A INPUT -j DROP
(これらのルールには注意してください。最後に削除するルールは、必要以上にドロップする可能性があるためです!) エラー メッセージ No chain/target/match by that name
が再度表示された場合:特定の拡張機能がカーネルにコンパイルされていないことがわかります。カーネルを再コンパイルする必要があります。
linux/net/ipv6/netfilter
の make ファイルに目を通します。 、 linux/net/ipv4/netfilter
、および linux/net/netfilter
カーネルのさまざまな拡張機能を有効にするオプションについては。ユーザー空間については、問題のメイクファイルは iptables/extensions
にあると思います しかし、最近のバージョンではフォルダ構造が少し変わっていると思います.