私が理解したところ、iptablesはトランスポート層(レイヤ4)で動作し、発生するすべてのパケットフィルタリングはtcpやudpなどのレイヤ4 IPプロトコルに基づいています。したがって、esp、gre、l2tpなどのプロトコルを入力すると、iptables-pオプション、言いますか? iptablesを使用してレイヤ2/3プロトコルに基づいてパケットをフィルタリングできますか?それ以外の場合、iptablesはicmpプロトコルに従ってパケットをどのようにフィルタリングしますか?
iptablesに初めて触れ、まだ学んでいます。ありがとうございます!
答え1
iptables
データリンク、ネットワーク、トランスポート層のフィルタリングをサポートします。
(protocol -p
)オプションは特にレイヤ4プロトコルに限定されません。これマニュアルページicmpとespは特に言及されています。 greもサポートされていることを知っています(「gre」またはプロトコル「47」)。指定されたプロトコルは、名前またはで指定された整数でこのオプションに渡すことができます/etc/protocols
。 iptablesがこのリストのすべてのプロトコルをサポートしているかどうかはわかりません。
-p または --protocol が指定され、不明なオプションが見つかった場合にのみ、iptables はオプションを使用可能にするためにプロトコルと同じ名前の一致するモジュールをロードしようとします。
この「一致モジュール」構文は、optionsを使用して指定された拡張パケット一致モジュールです-m --match
。
サポートされている拡張リストは、以下で確認できます。iptables 拡張。利用可能なnetfilterカーネルモジュールのリストはにあります/lib/modules/$(uname -r)/kernel/net/netfilter
。