阻止 iptables 中除少数端口之外的所有端口

阻止 iptables 中除少数端口之外的所有端口

我正在尝试DROP除 iptables 中的一个端口之外的所有端口。

运行以下命令后:

iptables -N WHITELIST
iptables -A INPUT --jump WHITELIST
iptables -A WHITELIST --protocol tcp --match tcp --dport 4444 --jump DROP
iptables -A WHITELIST --jump ACCEPT

我可以在端口 4444 和另一个任意端口上启动 netcat 监听器,并且可以确认我无法连接到端口 4444,但可以连接到另一个端口。

然而,尝试像这样翻转这些命令:

iptables -N WHITELIST
iptables -A INPUT -j WHITELIST
iptables -A WHITELIST --protocol tcp --match tcp --dport 4444 --jump ACCEPT
iptables -A WHITELIST --jump DROP

即使在端口 4444 上,也不接受入站连接。我可以确认指令的顺序正确,如上所示,并且我刷新并删除每个测试之间的每个链和相关指令。

如何阻止 iptables 中除少数端口之外的所有端口? TIA。

编辑:

当在没有人建议的情况下运行测试时,我最终得到如下日志dmesg

[ 1962.379494] IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=4444 DPT=57378 WINDOW=65483 RES=0x00 ACK SYN URGP=0 
[ 1962.379503] IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=4444 DPT=57378 WINDOW=65483 RES=0x00 ACK SYN URGP=0 

另一个有趣的事情是,这似乎也阻止了出站流量,使我无法从 Firefox 访问网站。

答案1

只需指定一个网络接口,如下所示:

iptables -N WHITELIST
iptables -A INPUT -j WHITELIST
iptables -i wlan0 -A WHITELIST --protocol tcp --match tcp --dport 4444 --jump ACCEPT
iptables -i wlan0 -A WHITELIST --jump DROP

解决入站连接问题以及允许出站连接问题。

相关内容