1

私のアプリケーションでは、NFQUEU を使用して netfilter からユーザー空間にパケットを取得し、基準と比較して、nfq_set_verdict2 関数の NF_DROP または NF_ACCEPT を介してパケットをドロップまたは受け入れます。ドロップされたパケットを通常の iptables ログ形式でログに記録したいです。これを達成できますか?

4

1 に答える 1

1

ドロップされたパケットをログに記録するために、受信したすべてのパケットをドロップする新しいチェーンを作成します。ドロップするすべてのパケットを新しいチェーンにリダイレクトし、新しいチェーンの宣言中にログ構文を使用します

iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP

行番号 3: -m limit: limit matching モジュールを使用します。これを使用すると、–limit オプションを使用してロギングを制限できます。

–limit 2/min:ロギングの最大平均一致率を示します。この例では、同様のパケットの場合、ロギングを 1 分あたり 2 に制限します。を指定することもできます2/second, 2/minute, 2/hour, 2/day。これは、同じドロップされたパケットの繰り返しメッセージでログ メッセージを混乱させたくない場合に役立ちます。

-j LOG: これは、このパケットのターゲットが LOG であることを示します。つまり、ログ ファイルに書き込みます。

–log-prefix “IPTables-Dropped: ” /var/log/messages ファイルに書き込まれるログ メッセージに追加される任意のログ プレフィックスを指定できます。

–log-level 4これは標準の syslog レベルです。4は警告です。0 ~ 7 の範囲の番号を使用できます。0 は緊急、7 はデバッグです。

iptables -A LOGGING -j DROP: 最後に、LOGGING チェーンに到達したすべてのパケットをドロップします。つまり、実際に着信パケットをドロップします。

于 2012-10-31T12:22:38.507 に答える