使用 Shorewall 路由至辅助 LAN

使用 Shorewall 路由至辅助 LAN

我正在设置 Shorewall (4.4.26.1),并花了大半个下午的时间试图找出两个 LAN 段之间的路由。是时候寻求帮助了。

 ((INTERNET))
      |
      |
 [shorewall]
   |     |
   |     |
(LAN1) (LAN2)

我有三个网卡:WAN(Internet)、LAN1 和 LAN2。WAN-to-LAN 通过 NAT 入站,通过 DNAT 出站(在 masq 中设置)工作。LAN2 不应(目前也不应)访问 Internet,但应该可以从 LAN1 访问。我目前能够从防火墙访问 LAN2,但不能从 LAN1 中的服务器访问(这就是问题所在)。必要的规则已到位,但显然路由不起作用(当我禁用防火墙规则时,我在从 LAN1 中的服务器进行 SSH 连接时立即收到“连接被拒绝”的提示;当启用规则时,SSH 只是挂起,跟踪路由不会超出防火墙)。LAN1 位于 172.0.0.0 地址空间,LAN2 位于 10.0.0.0 地址空间。

我目前有:

$LAN2_IF                 10.0.0.0/24

..在 masq 中,但那不起作用($LAN2_IF 解析为 eth2,即 LAN2 接口)。

我的问题是:用于在连接到单独 NIC 的两个不同地址的 LAN 段之间转发流量的最简单的 Shorewall 配置是什么?指向文档或其他参考资料的指针会有所帮助,一个简单的配置示例会更好。我一直在仔细阅读有关路由的 Shorewall 文档,但尚未找到匹配的描述(例如,我宁愿不必桥接 LAN 接口,因为它们需要保持分离:LAN2 应该不是可以访问 Internet 或 LAN1)。

谢谢您的任何建议!

答案1

看起来您遇到了路由问题,这与 Shorewall 无关。请先禁用 Shorewall 并正确设置路由。

网关应在每个 LAN 段上都有一个 IP 地址,并且该接口上应有一个 LAN 范围的路由。例如:

$ ip -one addr
2: eth0    inet 172.16.0.1/24
3: eth1    inet 10.0.0.1/24
$ ip route
172.16.0.0/24 dev eth0
10.0.0.0/24 dev eth1

LAN1 和 LAN2 中的客户端应将网关上的相应 IP 设置为其默认网关(LAN1 中的客户端为 172.16.0.1,LAN2 中的客户端为 10.0.0.1)。检查两个 LAN 中的客户端是否都可以 ping 通两个都网关上的 IP。然后尝试在不同的 LAN 中的客户端之间进行 ping 操作。

一旦路由工作正常,您就可以设置 Shorewall。您需要将两个 LAN 放在不同的区域中(例如lan1包含 eth0 和lan2包含 eth1)。然后配置适当的策略:

fw      all     ACCEPT
lan1    all     ACCEPT
lan2    fw      ACCEPT
lan2    lan1    ACCEPT
all     all     REJECT

LAN1 和 LAN2 之间不应存在任何伪装。

答案2

我意识到这不是 Ville 的问题,但三接口示例配置(包含在 Shorewall 发行版中)可能是您问题的典型答案。它将 lan 和 dmz 设置为区域名称,但您可以将其设置为您想要的任何名称(在本例中为 lan 和 lan2)。

相关内容