我有 2 个 IP 地址,1 个绑定到 eth0,另一个绑定到别名接口 eth0:1,这两个接口都可以正常工作。
但是,在 iptables 中我有以下一组规则:
-A INPUT -i eth0 -d 174.143.246.30 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -d 174.143.241.61 -p tcp -m tcp --dport 80 -j ACCEPT
iptables 显示它们正在加载
target prot opt source destination
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere loopback/8 reject-with icmp-port-unreachable
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
LOG all -- anywhere anywhere limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: '
ACCEPT tcp -- anywhere eurus.iamkura.com tcp dpt:www
ACCEPT tcp -- anywhere eurus.iamkura.com tcp dpt:www
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
但是当我查看日志时,我可以看到 iptables 声称阻止了第二个 IP 上的端口 80 的访问。
Feb 11 21:54:31 eurus kernel: [ 8212.861011] iptables denied: IN=eth0 OUT= MAC=40:40:f2:77:69:a8:00:1e:f7:19:b0:7f:08:00 SRC=<MY.IP.HERE> DST=174.143.241.61 LEN=52 TOS=0x00 PREC=0x00 TTL=116 ID=26993 DF PROTO=TCP SPT=51690 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
实际上,我可以毫无问题地连接到该 IP 上的端口 80,即使 iptables 在日志中大喊大叫。
有任何想法吗?
答案1
IPTABLES
不会阻止对该端口的访问,但会限制速率:
limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: '
当你接受输出消息的内容为真(或源代码注释)时,请务必小心。通常当你盯着它看太久时,就会发生这种情况,至少对我来说是这样 :)