トップ  »  Tech  »  Linux

iptablesのログを/var/log/messagesに出していると邪魔なので、専用のファイル/var/log/iptablesとかに出したい。

man iptablesによると。

 --log-level level
   Level of logging (numeric or see syslog.conf(5)).

iptablesはファシリティkernで出すようでして、levelでしか指定できない。カーネルレベルでパケットを落とすという仕様のため!?そこで、syslogでdebugに指定すれば良いみたいです。


iptablesのLOGGINGオプションは次のようにします。

IPTABLES='/sbin/iptables'
${IPTABLES} -A LOGGING -j LOG --log-level debug --log-prefix "DROP:" -m limit

syslogの設定はkern.debugを別ファイルに落とせばよいので、「/etc/syslog.conf」を次のように変更します。

*.info;mail.none;authpriv.none;cron.none  /var/log/messages

# Log iptables drop
kern.debug                                /var/log/iptables.log

info以上が/var/log/messagesに入る。kern.debugを/var/log/iptables.logに記録。


logroateでsyslogの部分にiptables.logを追加しておく。そうするとiptablesのログを分離しつつ保存することが可能に。


あとはlogwatchなどでiptablesのログ解析をさせて日々の傾向を掴みましょう。


なお、iptablesで「ログに残すもの」と「残さないもの」を決めておいた方が良いですね。何でも全部残すとログが溢れるばかりの量になってしまいます。