导读 | 当你的iptables规则无法正常工作时,可能希望记录iptables的数据包以进行故障排除。本文介绍了如何使用iptables的日志记录模块。 |
首先,我们需要了解如何将所有的iptables的INPUT链数据包记录到
/var/log/messages
中。如果你已经有一些iptables规则了,那么将记录日志的规则放在这些规则的顶部,如果放在规则的后面,将不会记录日志。
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 4/min -j LOG --log-prefix "Iptables-SSH-IN: " --log-level 4 iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -P INPUT DROP
在上面的示例中,它执行以下操作:
上面第一条规则解释:
/var/log/messages
日志文件中。默认情况下,iptables将使用
/var/log/messages
记录所有消息。如果要将其更改为自己的定制日志文件,将下面
添加到
/etc/rsyslog.conf
中。前提需要安装rsyslog服务:
# 安装rsyslog服务 [root@localhost ~]# yum -y install rsyslog # 设置开机启动、并立即启动 [root@localhost ~]# systemctl enable rsyslog --now # 编辑/etc/rsyslog.conf文件,添加下面内容到文件底部 [root@localhost ~]# vim /etc/rsyslog.conf kern.warning /var/log/iptables.log
查看刚才设置的日志文件:
[root@localhost ~]# ll -h /var/log/iptables.log -rw-------. 1 root root 2.0K Feb 9 10:46 /var/log/iptables.log [root@localhost ~]# tail -f /var/log/iptables.log
[root@localhost ~]# cat /var/log/iptables.log Feb 9 10:46:20 localhost kernel: Iptables-SSH-IN: IN=ens160 OUT= MAC=00:0c:29:ae:7d:09:00:50:56:c0:00:08:08:00 SRC=192.168.43.1 DST=192.168.43.137 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=49928 DF PROTO=TCP SPT=16512 DPT=22 WINDOW=64240 RES=0x00 SYN URGP=0
当你的iptables规则无法正常工作时,可能希望记录iptables的数据包以进行故障排除。本文介绍了如何使用iptables的日志记录模块。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69955379/viewspace-2760460/,如需转载,请注明出处,否则将追究法律责任。