Iptables

如何在沒有靜態分配的情況下使用 iptables 設置 IPv6 DMZ?

  • October 10, 2020

我在康卡斯特的住宅網路上有幾個網路。我需要通過其中一台主機上的 SSH 代理從各種環境訪問這些網路。

(碰巧我正在使用 OpenWRT,所以一個特定的解決方案會有幫助;但我通常也很好奇如何使用任何基於 Linux 或 BSD 的邊緣路由解決方案來做到這一點。)

使用 IPv4,這相對簡單:因為我所有的內部 IP 都分配有 DHCP,所以我可以簡單地設置一個轉發規則,將外部介面上的埠 22 移動到特定 IP 上的埠 22。

由於我的 IPv6 地址都是使用 SLAAC 分配的,因此我沒有可以在 ip6tables-land 中使用的靜態地址來轉發內容。

如何檢測前綴分配的變化,以便建立新的 iptables 規則?或者有沒有辦法設置一個規則,根據從它的 MAC 地址或類似的東西發現它的 IP 地址來轉發到一個特定的主機?(這些主機都在一個網段上,因此多播等應該可以工作。)

我認為在您的情況下,您可以使用動態前綴轉發,我的規則範例如下/etc/config/firewall

config rule
   option name 'HTTP-SSH-IPv6-myserver01'
   option src 'wan'
   option proto 'tcp'
   option dest 'lan'
   option dest_ip '::2c18:81a2:3422:f690/-64'
   option dest_port '22 80 443'
   option family 'ipv6'
   option target 'ACCEPT'

它創建這樣的 iptables 規則:

-A zone_wan_forward -d ::2c18:81a2:3422:f690/::ffff:ffff:ffff:ffff -p tcp -m tcp --dport 80 -m comment --comment "!fw3: HTTP-IPv6-myserver01" -j zone_lan_dest_ACCEPT

這裡也描述了相同的情況:Dynamic IPv6 Subnet & ip6tables

所以它比 IPv4 更容易——您不需要在 DHCP 伺服器上配置靜態 IP 地址。

PS:標題中的“DMZ”在第一次閱讀問題時讓我感到困惑。

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