質問

iには、一致する文字列を持つudp / tcpパケットをドロップするようにルールが設定されています。ただし、libpcapを使用してパケットをキャプチャする私のプログラムは、このパケットを表示できます。

これはなぜですか、libpcapで認識される前にパケットをドロップするiptableルールはどうあるべきですか?

とにかく、おそらくiptablesルール以外に、このパケットをlibpcap / tcpdumpで見る前にドロップすることはありますか?

役に立ちましたか?

解決

はい、libpcapはすべてのパケットを表示します。。 これらは、netfilterによって処理される前にキャプチャされています。

他のヒント

使用するnetfilterフックの優先度を変更しようとしましたか?着信パケットに対して最高の優先度でフックしようとすると、パケットソケットカーネルコードの前にパケットを取得します。これは、libpcapがパケットをキャプチャするために使用する方法です。

* Linuxを使用していると仮定します*

編集: Libpcapは、OSに応じて、さまざまな方法でパケットをキャプチャします。 Linuxでは、netfilterフレームワークを使用してカーネルコードに実装されるパケットソケットを使用します。

libpcapがnetfilterの前にパケットを見る方法はありません。netfilterはカーネルモジュールであり、ユーザーモードに到達する前にすべてのパケットを処理します。カーネルが見る前にパケットを見ることができます。 さらに説明してもらえますか? libpcapは、iptables内のフックを上書きするフックをnetfilterに設定している可能性もあります。本当の問題は、netfilterで見るフックと設定するフックは簡単なことではなく、カーネルモードでしか実行できないことです。 libpcapがパケットを取得する方法を調査します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top