我遵循了《Unix 和 Linux 系统管理手册》第 5 版中有关 iptables 的完整示例。状态数据包过滤允许我在 MakerBot 上进行远程打印,但今天我无法通过 SSH 连接到我的家庭服务器。《系统管理员手册》说,状态数据包过滤是 Netfilter 为防火墙带来的最强大的功能,但它可能会给网络增加不必要的复杂性。因此,除非有人能解决这个难题,否则我可能会使用状态数据包过滤来减少损失。
IPtables -L -v 输出:
0 0 ACCEPT tcp -- any any anywhere icarus.lan tcp dpt:ssh
0 0 ACCEPT tcp -- any any anywhere icarus.lan tcp dpt:www
0 0 ACCEPT tcp -- any any anywhere icarus.lan tcp dpt:https
23M 21G 接受全部 -- 任何任何地方任何地点状态相关,已建立
出于某种原因,即使我将默认 INPUT 策略设置为 DROP,Open-WRT/LEDE 也会将其重置为接受。但是,该规则似乎与任何内容都不匹配,所以我并不太担心。您可以看到,我已为 SSH 设置了数据包转发,但该规则与任何内容都不匹配。感谢您的时间和意见。
答案1
今天早上经过一些故障排除后,我设法打开了端口 22,但有一个警告,我的默认策略是“接受”。我只能通过 SSH 进入我的路由器,而不能进入我的服务器 (Icarus)。显然,使用 IPv6,我可以直接连接到 Icarus,但镇上只有一家咖啡店使用 IPv6。从长远来看,这两种情况都不可接受,所以我仍然欢迎建议,但就短期而言,我的配置是可以接受的。
答案2
我的移动热点之所以从 LAN 内连接到我的服务器,是因为我忘记关闭智能手机上的 WiFi。我意识到,与其试图直接操作 iptables,不如在浏览器中设置端口转发,然后通过 SSH 进入路由器并运行 iptables -L -v 来查看后端发生了什么变化。由于更改发生在路由前和路由后,上述命令之后没有显示任何更改,所以我不得不运行 iptables -t nat -L 来查看发生了什么变化。