环境
centos7
计数器跟踪
观察iptables -nvL INPUT
返回的第一列pkts是否增长了,可以简单的判断规则被匹配
# 添加一个规则允许ping通本机,如果有ping主机发生,则这条规则被匹配,这条规则计数器为增加
iptables -A INPUT -p icmp -j ACCEPT
#查看
iptables -nvL INPUT
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
#他机ping一下服务器,再观察pkts是否增长
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1 84 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
#清空计数器可以更加方便查看
iptables -Z INPUT
iptables -nvL INPUT
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
日志跟踪
可以在iptables规则前后添加日志,通过观察日志来跟踪规则
#添加日志记录在INPUT第一个规则,并且设置日志前缀为 IPTABLES LOG:
iptables -I INPUT -j LOG --log-prefix "IPTABLES LOG: "
#查看iptables规则
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
15 1635 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4
4 216 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
# ping服务器
#查看日志,可见这条ping操作的日志,并且可以查看包的基本信息
dmesg|grep "IPTABLES LOG:"
#会看到很多日志,因为这个日志设置在INPUT的第一条,所有发向本机的数据包都要经过这个日志,所以一般会再加一些过滤以便查看
....
[176965.486502] IPTABLES LOG: IN=eno16777736 OUT= MAC=00:0c:29:38:86:2c:00:0c:29:ce:5c:6c:08:00 SRC=192.168.14.175 DST=192.168.14.176 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=63680 DF PROTO=ICMP TYPE=8 CODE=0 ID=26418 SEQ=1