
の機能で TCP パケットをキャプチャしnetif_receive_skb
、TCP パケットのプレイロードを保存したいと考えています。カーネル モジュールでファイルを読み書きできないため、ディスクに直接保存する方法があるでしょうか。
これは良い方法でしょうか、それとも他の提案がありますか。
答え1
異なる角度から要件にアプローチすると、ニーズが満たされる場合があります。
iptables
には、ユーザー空間用に選択したパケットをキューに入れるオプションがあります-j NFQUEUE
(を参照man iptables
)。ユーザー空間プログラムでは、パケットをディスクに書き込むのは簡単です。
見るhttps://home.regit.org/netfilter-en/using-nfqueue-and-libnetfilter_queue/非常に興味深い詳細がいくつかありますが、私はざっと目を通しただけであることを指摘しておきます。