iptables阻止端口80和25上的一些请求

时间:2015-02-01 18:06:40

标签: linux unix iptables

我有这个iptables规则:

    # iptables -n -L -v --line-numbers
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     7392 4841K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
2     250K  531M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
3        0     0 ACCEPT     all  --  *      *       192.168.0.0/24       0.0.0.0/0
4        0     0 ACCEPT     all  --  *      *       80.1.1.69            0.0.0.0/0
5     6929  360K ACCEPT     all  --  *      *       110.50.200.145       0.0.0.0/0
6       23  1404 ACCEPT     all  --  *      *       100.40.30.0/24       0.0.0.0/0
7      781 46428 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 state NEW,ESTABLISHED
8      101  5928 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25 state NEW,ESTABLISHED
9     5664  338K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 state NEW,ESTABLISHED
10     846 65748 LOGGING    all  --  *      *       0.0.0.0/0            0.0.0.0/0
11       0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 147K packets, 381M bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain LOGGING (1 references)
num   pkts bytes target     prot opt in     out     source               destination
1      734 46882 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 6/min burst 5 LOG flags 0 level 7 prefix `iptables: '
2      846 65748 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0

事情是日志文件显示如下行:

Jan 28 17:31:30 myhostname kernel: iptables: IN=eth0 OUT= MAC=78:24:ff:3a:3b:0e:00:09:0f:09:3b:06:08:00 SRC=188.85.58.233 DST=210.6.60.254 LEN=40 TOS=0x00 PREC=0x00 TTL=54 ID=40229 DF PROTO=TCP SPT=56131 DPT=80 WINDOW=0 RES=0x00 RST URGP=0

Jan 21 22:54:03 myhostname kernel: iptables: IN=eth0 OUT= MAC=78:24:af:3a:3b:0c:00:09:0f:09:3b:06:08:00 SRC=217.12.26.61 DST=210.6.60.254 LEN=40 TOS=0x00 PREC=0x00 TTL=41 ID=0 DF PROTO=TCP SPT=35401 DPT=25 WINDOW=0 RES=0x00 RST URGP=0

请注意,我打开了端口80和25。

为什么某些连接会在80和25上被iptables阻塞?我通过这两种服务来获取流量,但我不明白为什么ip表会阻止某些连接。

谢谢

1 个答案:

答案 0 :(得分:0)

您将在这些日志行的末尾注意到,数据包设置了tcp重置标志:

...WINDOW=0 RES=0x00 RST URGP=0

可能conntrack认为连接不是一个接收敏感数据包的状态,而conntrack会将它们标记为INVALID。这意味着它们不会被规则#2选中。当你的链中的规则#7-9被击中时,它们也不算作NEWESTABLISHED

因此,他们点击你的日志规则#10并被规则#11拒绝。

您可以忽略此问题,或在日志行之前的某处添加规则以处理INVALID数据包:

-m conntrack --ctstate INVALID -j DROP