我有一台带有 4 个以太网端口的 PCEngines 微型电脑,其目的就是用它来取代我即将报废的 WatchGuard 盒子。我对 Linux 防火墙并不陌生,但这是我第一次尝试这样的事情,通常我只关心具有 1 或 2 个 NIC 的单个系统。
当前设置是
ISP Box >(enp1s0)> Linux Box >(enp2s0)> Switch > Server
> Wifi AP
设置 IPTables 后:
[root@Firewall ~]# cat /etc/sysconfig/iptables
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i enp1s0 -p tcp -m multiport --dports 80,443,8096,8920 -j ACCEPT
-A INPUT -i enp2s0 -j ACCEPT
-A INPUT -i wlp5s0 -j ACCEPT
-A INPUT -i enp2s0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i wlp5s0 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i enp2s0 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i enp1s0 -o wlp5s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlp5s0 -o enp1s0 -j ACCEPT
-A FORWARD -i enp1s0 -o enp2s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i enp2s0 -o enp1s0 -j ACCEPT
COMMIT
它可以工作,除了我在从服务器到 wifi 的流量方面遇到一些问题,并且我需要从服务器打开 80 和 8096(当我设置 SSL 时很快就会变成 443 和 8920)到互联网,我不知道如何在开关后面处理它。 (PCEngines 盒子的 WiFi 速度低于标准,所以我暂时禁用了它)。
如果我将所有内容连接到固件并桥接 enp2s0、enp3s0 和 enp4s0 是我对更好设置的想法,因为我尝试过的转发规则似乎无法按照我的交换机设置方式工作(同时更改 IPTables 似乎会锁定它完全需要重新加载而不是重新启动,有时甚至需要重新启动,我不确定那里发生了什么)所以我一直不愿意一遍又一遍地进行实验,因为它每次都会让我离线。
桥梁是做到这一点的正确方法吗?我应该像许多随机指南建议的那样使用 nmcli 来创建网桥或网桥实用程序吗?我知道有更好的方法来完成我为 IPTables 所做的事情,但是如果我做桥接,我需要在那里做什么?