我正在设置 Shorewall (4.4.26.1),并且在下午的大部分时间里一直在尝试找出两个 LAN 网段之间的路由。是时候寻求帮助了。
((INTERNET))
|
|
[shorewall]
| |
| |
(LAN1) (LAN2)
我有三个 NIC:WAN(Internet)、LAN1 和 LAN2。WAN 到 LAN 通过 NAT 入站,通过 DNAT(在 masq 中设置)出站。LAN2 不应该(目前没有)访问 Internet,但它应该可以从 LAN1 访问。我目前可以从防火墙访问 LAN2,但不能从 LAN1 中的服务器访问(这是问题所在)。必要的规则已经到位,但显然路由不起作用(当我禁用防火墙规则时,我在 LAN1 中的服务器的 SSH 连接上立即“连接被拒绝”;当规则被启用时,SSH 只是挂起而 traceroute 没有'超越防火墙)。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不应该访问互联网或 LAN1)。
感谢您的任何建议!
看起来你有路由问题,这与 Shorewall 无关。禁用 Shorewall 并首先获得正确的路由。
网关应该在每个 LAN 网段上都有一个 IP 地址,并在该接口上有一个 LAN 范围的路由。例如:
LAN1 和 LAN2 中的客户端应将网关上的相应 IP 设置为其默认网关(LAN1 中的客户端为 172.16.0.1,LAN2 中的客户端为 10.0.0.1)。检查两个 LAN 中的客户端是否可以 ping通网关上的两个IP。然后尝试在不同 LAN 中的客户端之间进行 ping。
一旦路由正常,您就可以设置 Shorewall。您希望将两个 LAN 放在不同的区域中(例如
lan1
包含 eth0 和lan2
包含 eth1)。然后配置适当的策略:LAN1 和 LAN2 之间不应该有任何伪装。
我意识到这不是 Ville 的问题,但三接口示例配置(包含在 Shorewall 发行版中)可能是您问题的规范答案。它将 lan 和 dmz 设置为区域名称,但您可以将它们设置为您想要的任何名称(在本例中为 lan 和 lan2)。