我创建了这样的 iptables 规则:
iptables --flush
iptables --delete-chain
iptables -t nat --flush
iptables -t nat --delete-chain
iptables -P OUTPUT DROP
在这种情况下互联网可以工作吗?我想不应该。
但最近我在我的镇上发现了一家不错的咖啡馆并使用了他们的 WiFi。令我惊讶的是,通过他们的 WiFi,即使遵守上述规则,我也能连接到互联网。
这怎么可能?
谢谢您的回答。
PS 我尝试连接到许多其他热点,但除了这家咖啡馆的 WiFi 之外,没有任何地方出现该问题。
答案1
我怀疑有其他东西在连接后运行脚本来修改防火墙规则。您可以用来sudo iptables -L -v
找出当前应用的规则是什么。话虽这么说,我使用了几种不同的方法来连接到互联网(首先是网络管理器,然后是 Wicd,现在是直接使用 systemd-networkd 和 wpa_supplicant),并且我从未让它们中的任何一个在连接后修改防火墙规则,所以我不知道为什么会发生这种情况。最坏的情况是,您可以启动一个与操作文件一起运行的系统服务wpa_cli
,该操作文件在连接时重新应用您所需的防火墙规则(有关更多信息和示例操作文件,请参阅 wpa_supplicant 文档)。
答案2
显然,之后又进行了其他iptables
调用,可能是由配置 WiFi 连接的组件进行的。