web-dev-qa-db-ja.com

iptablesのLOGチェーンのログ出力を別のログファイルにリダイレクトすることは可能ですか?

iptablesのログ出力を他のシステムログと混合したくありません。 iptables LOGチェーン出力専用のログファイルを指定するにはどうすればよいですか?

6
mbaitoff

これをどのように行うかは、使用するログデーモン、syslogまたはsyslog-ngによって異なります。

syslogを使用すると、特定のログレベルを調整して、iptablesメッセージのみを含めることができます。

/etc/syslog.conf

kern.warning     /var/log/iptables

そのログレベルを使用するためのセットiptables

iptables -A INPUT -j LOG --log-level 4

syslog-ngを使用すると、少し凝ったものを手に入れることができるはずです。ログレベルをハッキングする代わりに、コンテンツをフィルタリングして、そのコンテンツを特定のログファイルに送信できます。

/etc/syslog-ng/syslog-ng.conf

destination d_iptables { file("/var/log/iptables"); };
filter f_iptables { match("IN=[A-Za-z0-9\.]* OUT=[A-Za-z0-9\.]*" value("MESSAGE")); };
log { source(s_sys); filter(f_iptables); destination(d_iptables); }
5
Caleb

次のようなものを使用できます。

:msg,contains,"IPTABLES:" /var/log/iptables
& stop

たとえば、他のルールの前に追加する必要があります。

:msg,contains,"IPTABLES:" /var/log/iptables
& stop

auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
cron.*              /var/log/cron.log
daemon.*            -/var/log/daemon.log
kern.*              -/var/log/kern.log
...

IPTABLES:をLOGターゲットに設定したものに変更するだけです。 & stopを使用しない場合、メッセージは標準の/var/log/syslogファイルと/var/log/iptablesの両方のファイルに記録されます。

これは、すべてのkern.warningメッセージをリダイレクトするよりも優れたソリューションです。その場合、必要な情報だけでなく、他の情報もリダイレクトできるためです。

1