FORWARD 表中的“DROP all anywhere”为何不会使我的路由器变得无用?

FORWARD 表中的“DROP all anywhere”为何不会使我的路由器变得无用?

我最近学习了 IPTables 和 IP 路由,以便配置单板计算机将特定机器与我的网络的其余部分隔离,同时仍然允许它访问互联网,还有一些其他规则。

我决定利用这些新知识来增强嵌入式媒体设备的安全性(也许可以防止它们显示广告和报告遥测数据)。我有一个装有 Merlin 固件的旧华硕路由器,所以我设置了它并让 SSH 正常工作。

与我之前的基于 SBC 的防火墙不同,该防火墙全新安装了 Ubuntu,iptables 是空白的,而华硕路由器自带了几条开箱即用的规则,FORWARD 表让我有点困惑:

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
DROP       all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere            state INVALID
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere            ctstate DNAT
ACCEPT     all  --  anywhere             anywhere

据我所知,这将阻止路由器正常工作。例如,如果电视想要向 Netflix 发起请求,路由器应该看到数据包来自 NIC #2 并且目的地是 WAN NIC - 而不是任何内部进程 - 因此应该通过 FORWARD 表。第一条规则不应该适用,因为数据包是新的 - 还没有任何回复给它 RELATED 或 ESTABLISHED 状态。下一条规则...应该放弃它。所以数据包没有到达 Netflix,什么也没有发生。

事实上,在我看来,这应该可以阻止路由器本身(例如管理界面)之间不直接通信的任何事情。但事实并非如此,因为连接的设备可以毫无问题地访问互联网。所以,显然我遗漏了一些东西。华硕路由器不使用 FORWARD 表吗?还是规则不是自上而下评估的? 为什么没有上述 FORWARD 表防止我的路由器无法正常作为交换机运行?

答案1

您的 IPTables 规则列表缺少每条规则的接口信息。DROP 规则很可能针对通过 WAN 接口传入的流量。

iptables-save或者iptables -S可用于显示创建规则的完整命令。

相关内容