Netfilterはパケットが関連していることをどのように理解していますか?

Netfilterはパケットが関連していることをどのように理解していますか?

conntrack一致モジュール--ctstateパラメータはパケットステータスをサポートしますRELATED。たとえば、アクティブなFTPを使用している場合、NetfilterはFTPサーバーのデータポート(TCPポート20)からクライアントの以前に指定された許可されていないデータポートへの接続が接続されているかどうかをどうやって知ることができますかRELATED? Netfilterには、サポートされている各プロトコルを説明するモジュールがありますかRELATED?最後に、この状態でサポートされているプロトコルのリストはありますかRELATED

ベストアンサー1

様々なインターネット制御メッセージプロトコル(ICMP)パケットは、接続(または特定のプロトコルへの接続試行)と「関連付け」することができるが、これらのICMPパケットはそれを引き起こしたプロトコルと同じではないので、「関連付け」という概念がある。これは、ホストまたはファイアウォールが宛先に接続できないICMPパケットへのTCPまたはUDP接続の試行を拒否した場合に発生する可能性があります。RELATED接続された ICMP パケットは通過が許可されます。 (TCPにはRSTがあるため、関連するICMP応答を送信したり送信したりすることはできません。ファイアウォール管理者はICMP応答を許可または許可しない可能性があります...)

各アプリケーションレベルのプロトコル(FTPなど)にはカスタムモジュールが必要です。なぜなら、パケットを詳しく見て、それがnetfilterが知っている他のものと関連しているのかどうかを判断するにはカスタムコードが必要です。これらのモジュールはすべてのアプリケーションに対して誰でも書くことができますが、nf_conntrack_*利用可能なファイルをチェックすることはリストを始めるのに最適な場所かもしれません。

% print -l /lib/modules/3.10.0-327.13.1.el7.x86_64/kernel/net/netfilter/nf_conntrack_*(:t)
nf_conntrack_amanda.ko
nf_conntrack_broadcast.ko
nf_conntrack_ftp.ko
...

おすすめ記事