iptables
ログ出力を他のシステムログと混在させたくありません。iptables
LOGチェーン出力用の専用ログファイルを指定するには?
答え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メッセージをリダイレクトするよりも優れたソリューションです。この場合、必要な情報だけでなく他の情報もリダイレクトできるからです。