如何使用 ArchLinux 设置透明防火墙

如何使用 ArchLinux 设置透明防火墙

我正在尝试使用 ArchLinux 设置透明防火墙。

我的设置如下所示:

(ISP, IP: 10.90.10.254)
\
 \
  \ (eth0-> ip: 10.90.10.1 gateway: 10.90.10.254)
   +-----------+
   |           |
   |    PC     |
   |(as server)|
   +-----------+
                \ (eth1-> ip: 10.90.10.100)
                 \
                  \
     (10.90.10.101)\        | (wireless-> ip-range: 10.90.10.102-)
                    +-------+
                    |Router |
                    +-------+

我的路由器没有防火墙功能,因此我需要在路由器和 ISP 之间设置防火墙。

答案1

为此,您需要在 PC 上将 eth0 和 eth1 置于桥接模式,并为桥接接口提供 1 个 IP(而不是在单个 eth 上)

以下是有关 Linux 上桥接的基础知识,请开始使用 http://www.tldp.org/HOWTO/BRIDGE-STP-HOWTO/index.html

根据您的发行版,可能有更快/更好的方法来进行桥接。

现在,您提到的无线IP范围无法通过某些配置来指定。将哪些 IP 分配到哪里由您决定。

也许您可以通过 DHCP 进行控制,但这取决于您的整体设置和需求。

答案2

首先,您应该启用网络地址转换:
插入此行

net.ipv4.ip_forward = 1

/etc/sysctl.conf

(插入线路后立即生效)并添加防火墙规则:

iptables -t NAT -A POSTROUTING -!o lo -j MASQUERADE

现在无线网络可以通过服务器 PC 向 ISP 发送数据包
还有一个建议:禁用对服务器的“所有”访问,仅启用您真正需要的:

iptables -P 输入下降
iptables -A 输入 -m 状态 --state 相关,已建立 -j 接受
iptables -A 输入 -i eth1 -m 状态 --state 新 -j ACCPET

此设置禁用默认的“所有允许”数据包流,禁用从 ISP(和 WAN)连接到服务器端口,启用来自无线网络的传出连接。
如果需要在防火墙中打开服务器端口:

iptables -A 输入 -p tcp -m tcp --dport 22 -j 接受

如果需要,将 tcp 替换为 udp,端口范围可以使用 from:to 模式添加。
如果出现问题并关闭自己,您可以重置防火墙规则:

iptables-F

最简单的方法是,如果您将 webmin 安装到您的服务器系统中,它就会有很棒的防火墙配置器 GUI。但如果你自己关闭并且无法访问 webmin,请永远记住“iptables -F”命令

答案3

如果您将 eth0(也许还有 eth1)定义为点对点接口(请参阅 参考资料、参考资料),那么这应该是可能的(从服务器的角度来看man ip-addresspeer

从我看来,地址选择从各个方面来说都是一个坏主意。 eth1 和 WLAN 的网络不能重叠。如果 eth1 不是点对点接口并且 WLAN 从 102 开始,则这是不可能的。

路由器上更糟糕的是:它的 LAN IP 是 WLAN 网络的一部分,因此它也必须是 p2p(可以在路由器上配置吗?)。

相关内容