私のアプリケーションでは、NFQUEU を使用して netfilter からユーザー空間にパケットを取得し、基準と比較して、nfq_set_verdict2 関数の NF_DROP または NF_ACCEPT を介してパケットをドロップまたは受け入れます。ドロップされたパケットを通常の iptables ログ形式でログに記録したいです。これを達成できますか?
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 チェーンに到達したすべてのパケットをドロップします。つまり、実際に着信パケットをドロップします。