使用 Shorewall 路由到輔助 LAN
我正在設置 Shorewall (4.4.26.1),並且在下午的大部分時間裡一直試圖找出兩個 LAN 網段之間的路由。是時候尋求幫助了。
((INTERNET)) | | [shorewall] | | | | (LAN1) (LAN2)
我有三個 NIC:WAN(Internet)、LAN1 和 LAN2。WAN-to-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 範圍提供一個路由。例如:
$ 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 之間不應該有任何偽裝。