Linux

使用 Shorewall 路由到輔助 LAN

  • June 17, 2013

我正在設置 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 之間不應該有任何偽裝。

引用自:https://serverfault.com/questions/473310