iptablesログチェーンのログ出力を別のログファイルにリダイレクトできますか?

iptablesログチェーンのログ出力を別のログファイルにリダイレクトできますか?

iptablesログ出力を他のシステムログと混在させたくありません。iptablesLOGチェーン出力用の専用ログファイルを指定するには?

答え1

これを行う方法は、使用するロギングデーモンsyslogまたはsyslog-ng

そしてシステムログ、メッセージのみを含めるように特定のログレベルを調整するだけ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); }

答え2

次のように使用できます。

: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
...

LOGターゲットに設定したとおりにIPTABLES:変更します。を使用しない場合、& stopメッセージは標準/var/log/syslogファイルと/var/log/iptables

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

関連情報