いくつかの「不良」パケットを検出し、ルーターでパケットの過負荷が発生したときにそれらを適切にドロップすることで、パケット フィルタリング メカニズムを実装しています。私は Linux Network Stack を使用しており、実装に netfilter フックを使用しています。これに関して、パケット受信キューを操作してパケットを「マーク」し、場合によってはそれらの不良パケットをドロップしたいと考えています。パケット受信キューを操作するにはどうすればよいですか。基本的に、受信キュー内のすべての「不良」パケットをドロップしたいと考えています。libnetfilter_queue api のヘルプを使用しますか?
1 に答える
1
私の知る限り、現在、カーネルによって既にキューに入れられているパケットをドロップする (簡単な) 方法はありません。あなたと同じようなものが必要になったとき、私は 2 つの方法のうちの 1 つを選びました。
1) 可能な限り早い時期にパケットをマークし (たとえば、テーブル トーで、次に PREROUTING で)、後のテーブルを通過したときにパケットをドロップしました。マークを検出するには、"-m mark --mark YOUR MARK HERE" を DROP ルールに追加します。
2) NFQUEUE ターゲットを使用してパケットをユーザー空間 (または関連情報) に送信し、そこでフィルタリングを行います。ユーザー空間でパケットを処理するには、libnetfilter_queueをお勧めします
于 2012-11-11T21:59:14.550 に答える