IPtableのログを取得する方法を調べたのでまとめてみた。設定は、CentOS6でSSHだけを通す設定をした場合を例にして説明をします。
# vi /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state state –state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -j LOG –log-prefix “Rejected LOG IPv4 (INPUT) :”
-A INPUT -j REJECT –reject–with icmp-host-prohibited
-A FORWARD -j REJECT –reject–with icmp-host-prohibited
上記の設定例のように、下記の行をREJECTの前に入れることで、REJECTされたパケットのログを取得することができます。
-A INPUT -j LOG –log-prefix “Rejected LOG IPv4 (INPUT) :”
ログの出力は、syslogを介して行われるので、CentOSの標準の設定では、下記のファイルにログの出力がされます。
/var/log/messages
このままの設定だと、ほかのログと混ざってしまうのでsyslogの設定を変更してログの出力先を分けたい場合の設定を次のページで説明します。