我正在更改 iptables 设置以应对新上行链路的添加,该上行链路现在通过 DHCP 接收其配置。我目前直接在规则中列出接口的 IP 地址,这些地址保存在 /etc 中的文件中,并由 iptables-restore 恢复。例如,以下规则允许访问我的 Web 服务器:
* filter
# ...
-A INPUT -i ethX -d XXX.XXX.XXX.XXX -m tcp -p tcp --dport 80
我想知道是否可以删除 -d XXX.XXX.XXX.XXX 部分而不产生任何重大的额外风险,将上述内容更改为简单:
-A INPUT -i ethX -m tcp -p tcp --dport 80
这样就无需在 DHCP 提供的地址发生变化时更新我的规则文件。这似乎在实践中是等效的,因为我相信到达该接口的唯一数据包(定义了该目标端口)将是我将直接接收的数据包。但由于此接口连接到一个相当嘈杂的有线连接提供商,我怀疑到达的数据包实际上设置为其他目标地址。
答案1
我建议重构您的规则以使用接口标识符而不是单个 IP。这样管理起来更容易。
为给定的网络接口分配多个 IP 正变得越来越普遍,并且随着在具有多个 ISP 上行链路的环境中 IPv6 的实施不断增加,这种情况可能会变得相当普遍。
虽然您的设备似乎可以作为路由器运行,但在正确的 IPv6 实施下不存在 NAT。这需要在每个上行链路网络的所有连接接口上分配 IP。
现在是做好准备的最佳时机。