我有两个网络接口 eth0 和一个别名 eth0:1,这是我的内部网络。我想阻止端口 8140,但也有一条规则允许来自 eth0:1 子网 (192.168.1.0/24) 的任何内容
这是我有的规则,但它似乎在所有接口上阻止了 8140
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 8140 -j DROP
Chain INPUT (policy ACCEPT 7 packets, 400 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 192.168.1.0/24 0.0.0.0/0
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8140
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 10 packets, 1400 bytes)
pkts bytes target prot opt in out source destination
答案1
尝试这个:
iptables -A INPUT -p tcp -s \! 192.168.1.0/24 --dport 8140 -j DROP
答案2
请按规则的书写顺序。
首先按照您输入的内容编写第二条规则,然后编写第二条规则。
然后保存iptables并重启iptables服务使之生效,然后进行测试。
它应该可以工作。
答案3
您不清楚自己想要发生什么 - 如果您想阻止 TCP/8140 无论它来自哪里,它应该是第一条规则,否则,您现有的设置就没问题;192.168.1.0/24 可以自由地与 8140 通信,其他一切都不能。