Firewall

(Zywall USG 300) 從 LAN 通過域名訪問內部伺服器時繞過 NAT

  • December 14, 2012

我的情況是這樣的;我在我們的聯合網路解決方案中託管了許多網站。在網路上基本上是3類:

  1. 已知公眾,通過 mac 註冊,給定靜態 dhcp 租約
  2. 匿名 lan 連接,給定來自特定 dhcp 範圍的租約
  3. 交換機,unix主機防火牆

現在,考慮關注感興趣的主機

  1. 111.111.111.111(Zywall USG 300 廣域網)
  2. 192.168.1.1 (ZyWall USG 300 LAN) 負載平衡和 bw 監視器以及處理 NAT
  3. 192.168.1.2 (Linux www) 服務於 mydomain1.tld 和 mydomain2.tld
  4. 192.168.123.123(隨機區域網路客戶端)從區域網路訪問mydomain1.tld
  5. 23.234.12.253(隨機外部客戶端)通過 WAN 訪問 mydomain1.tld

設置 DNS A 記錄,以便 mydomain1.tld 和 mydomain2.tld 都指向 111.111.111.111 - Linux www 使用 VirtualHost 配置為 http 部分提供服務,設置文件根 pr ServerName,但這並不是那麼有趣..

NAT 規則將 111.111.111.111:80 轉換為 192.168.1.2:80 (1:1 NAT),如下所示:

  • 類型:虛擬伺服器
  • 介面:廣域網
  • 原IP:任意
  • 映射IP:192.168.1.2
  • 原始埠:80
  • 映射埠:80

當 NAT-Loopback 被啟動時,它會導致設備無法從外部介面訪問(雖然沒有嘗試過,如果它使 LAN -> WAN IP:80 工作)

我們的問題如下;

當從外部(23.234.12.253 範例主機)訪問聯合網路的http://mydomain1.tld時 - 一切正常,zywall 通過埠 80 接收請求並將其映射到 linux 主機的 httpd。但是 - 一旦嘗試從 LAN 端(內部,192.168.123.123 範例主機)通過 NAT,然後一個在 Zywall 埠 80 防火牆中被過濾。

我知道這只是因為埠 443 對管理界面開放,並且https://mydomain1.tld提示 zywall 登錄。

所以我的結論是,訪問 111.111.111.111 的 LAN 實際上被路由到 192.168.1.1,同時繞過了 NAT 表。

我需要知道如何設置 NAT / 策略路由,以便 LAN > WAN > LAN 將在適當的網路轉換下執行,而不是執行“快速名稱伺服器查找”或其他任何可能的操作。

解決方案最終是維護內部 DNS 查找表(很像 /etc/hosts 文件),我在其中放入 mydomainX.tld 並將其映射到其適當的 IP。但我想解決這個問題,並且有賞金對於允許 LAN -> WAN IP 的答案:埠通過 NAT 表

所以我自己為此苦苦掙扎,我想出了答案。要使這項工作使用標準 NAT 規則(允許世界訪問網站的相同規則),只需調整規則,使原始 IP 為 WAN IP。然後您可以啟用 NAT 環回,一切正常。

如果您有更多問題,請告訴我。

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