我是 iptables 新手,我创建了几条规则,我需要知道其中哪条阻止了我的流量,换句话说,我需要知道其中哪条匹配
答案1
为每种情况插入日志记录规则,为每个日志条目使用唯一的注释。有时这会导致大量日志记录,在这种情况下,只需在调试时启用它进行测试即可。
我的规则集中的示例:
# The location of the iptables program
#
IPTABLES=/sbin/iptables
#Setting the EXTERNAL and INTERNAL interfaces and addresses for the network
#
EXTIF="enp4s0"
INTIF="enp2s0"
EXTIP="XXX.XXX.YYY.YYYY"
INTNET="192.168.111.0/24"
INTIP="192.168.111.1/32"
UNIVERSE="0.0.0.0/0"
... [snip] ...
$IPTABLES -A INPUT -i $INTIF -p tcp -m state --state INVALID -j LOG --log-prefix "IINVALID:" --log-level info
#$IPTABLES -A INPUT -i $INTIF -p tcp -m state --state INVALID -j DROP
# A NEW TCP connection requires SYN bit set and FIN,RST,ACK reset.
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "NEW TCP no SYN:" --log-level info
#$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j REJECT
您还可以查看数据包计数器,观察自上次计数器重置以来每条路径被采用的次数。示例:
$ sudo iptables -v -x -n -L
[sudo] password for doug:
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
...[snip]...
1700 68318 DROP all -- enp4s0 * 205.206.120.226/31 0.0.0.0/0
0 0 DROP all -- enp4s0 * 212.32.255.151 0.0.0.0/0
17 696 DROP all -- enp4s0 * 218.0.0.0/12 0.0.0.0/0
4 164 DROP all -- enp4s0 * 218.56.0.0/13 0.0.0.0/0
21 916 DROP all -- enp4s0 * 218.64.0.0/11 0.0.0.0/0
193 9376 DROP all -- enp4s0 * 220.160.0.0/11 0.0.0.0/0
18 886 DROP all -- enp4s0 * 221.224.0.0/12 0.0.0.0/0
17 760 DROP all -- enp4s0 * 222.64.0.0/11 0.0.0.0/0
36 1448 DROP all -- enp4s0 * 222.160.0.0/11 0.0.0.0/0
1135 52212 DROP all -- enp4s0 * 0.0.0.0/0 0.0.0.0/0 u32 "0x6&0xff=0x1&&0x0>>0x16&0x3c@0x0>>0x18=0x8&&0x0&0xff00=0x0"
39 1560 DROP all -- enp4s0 * 0.0.0.0/0 0.0.0.0/0 u32 "0x6&0xff=0x1&&0x0>>0x16&0x3c@0x0>>0x18=0xd"