如何在不同的日志文件中记录iptables消息

通常,所有信息到错误级别的消息都记录在/var/log/messages中,但很难区分消息中的长日志列表。

为了分离不同文件中与iptables相关的日志,请遵循以下步骤

注意:对于RHEL 6,日志文件名为rsyslog.conf

记录所有与 iptables 相关的消息

# vi /etc/syslog.conf
# Log all kernel messages to firewall.log.     
kern.*                                                          /var/log/frewall.log
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
# Don't log kernel related any messages
*.info;mail.none;authpriv.none;cron.none;kern.none                /var/log/messages

仅记录警告级别的 iptables 消息

# Log all kernel messages to firewall.log.
kern.warn                                                 /var/log/frewall-warn.log

将信息级别的所有消息记录到错误级别

kern.info;kern.!crit          /var/log/firewall.log

根据不同文件中的严重性级别记录消息

kern.*                       /var/log/iptables.log
kern.crit                    /var/log/iptables-crit.log
kern.info                    /var/log/iptables-info.log

完成后重启 syslog服务

如果是 CentOS/RHEL 6,执行

# service rsyslog restart

如果是 CentOS/RHEL 5,执行

# service syslog restart

示例

创建一个规则来监控从 192.168.1.10 到 localhost 的 ping 日志

# iptables -I INPUT -s 192.168.1.10 -p icmp -j LOG --log-prefix "PING TEST "

现在让我们在日志文件中检验它

尝试从 192.168.1.10 ping 并观察日志文件

# cat /var/log/iptables.log
Mar  6 11:22:36 test1 kernel: PING TEST IN=eth3 OUT= MAC=00:0c:29:51:aa:e1:00:0c:29:a3:f5:fa:08:00 SRC=192.168.1.10 DST=192.168.1.6 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=1037 SEQ=2
Mar  6 11:23:03 test1 kernel: PING TEST IN=eth3 OUT= MAC=00:0c:29:51:aa:e1:00:0c:29:a3:f5:fa:08:00 SRC=192.168.1.10 DST=192.168.1.6 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=3341 SEQ=1
Mar  6 11:23:04 test1 kernel: PING TEST IN=eth3 OUT= MAC=00:0c:29:51:aa:e1:00:0c:29:a3:f5:fa:08:00 SRC=192.168.1.10 DST=192.168.1.6 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=3341 SEQ=2
日期:2020-06-02 22:17:01 来源:oir作者:oir