iptables 不会丢弃精确 IP 地址的 UDP 端口

iptables 不会丢弃精确 IP 地址的 UDP 端口

我的iptables规则如下:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N f2b
-A INPUT -p tcp -m multiport --dports 80,443 -j f2b
-A INPUT -d (my public facing ip)/32 -p udp -m udp --dport 10000 -j DROP
-A f2b -s 1.1.1.1/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b -j RETURN

所有其他表也都使每个链处于 ACCEPT 状态。
为什么 1.1.1.1 无法访问 tcp 端口 80 和 443,但每个人仍然能够访问我的公共 IP 上的端口 10000?

答案1

-A INPUT -p tcp -m multiport --dports 80,443 -j f2b

说如果转到一个名为的链f2b

-A f2b -s 1.1.1.1/32 -j REJECT --reject-with icmp-port-unreachable

链中的第一条规则名为f2b说拒绝 1.1.1.1/32

至于 8.8.8.8,我看不到流量,也许它使用的是 TCP 而不是 UDP。8.8.8.8 是目的地,因此如果源是 8.8.8.8 而目的地是其他地址,那么它就不符合规则。

尝试这个:

-I FORWARD 1 -d 8.8.8.8/32 -p udp -m udp --dport 10000 -j DROP

答案2

如果你想阻止来自8.8.8.8 到达你的端口,你使用-s(源地址)而不是-d(目标地址)

答案3

我通过用 REJECT 替换 DROP 解决了这个问题,我不知道为什么这样做有效,但结果如下:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N f2b
-A INPUT -p tcp -m multiport --dports 80,443 -j f2b
-A INPUT -d (my public facing ip)/32 -p udp -m udp --dport 10000 -j REJECT --reject-with icmp-port-unreachable
-A f2b -s 1.1.1.1/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b -j RETURN

编辑:我发现 DROP 工作得很好,我使用 nmap 查看端口是否打开,但忘记了 nmap 只有在被拒绝时才会说端口已关闭。

相关内容