烽火光貓不要超密不改橋接的前提下關閉 ipv6 防火牆

Libitum發表於2024-10-29

背景

  • 眾所周知,運營商給的光貓預設都是帶 ipv6 的防火牆的,會導致所有預設的入站流量都被丟棄;
  • 網上能找到的關閉 ipv6 防火牆的方法,主要有兩種:
    1. 獲取超級管理員許可權,然後在光貓後臺中關閉 ipv6 防火牆;
    2. 光貓改橋接,由路由器撥號,然後在路由器中關閉防火牆。

然而,這兩種方法隨著光貓硬體和韌體的升級,都逐漸變得比較困難。網上能找到的所有相關的方法,在我的光貓上都失效了。

於是,經過一通折騰,我找到了一種不需要超級管理員許可權,也不需要改橋接的方法,實現關閉 ipv6 防火牆的目的。

相關資訊

以下是我的裝置相關資訊,我只測試了這個硬體和韌體版本是沒問題的,不過理論上烽火比較新的光貓應該都可以這麼做。

類別 資訊
運營商 聯通
光貓廠家 FiberHome
光貓型號 HG6145D2
硬體版本號 WKE2.094.443
軟體版本號 RP0302

設定方法

防火牆設定

如圖所示:

  1. 在 安全 -> 埠過濾 -> 接入控制(WAN-LAN) 中,選擇 “啟用IP地址過濾”,並選擇 “白名單模式”。
  2. 在新增的過濾器中,“啟用” 選中,“協議” 選擇 ALL,“目的埠(最小值)” 填 80,“目的埠(最大值)” 填 65535。然後點選新增。(埠範圍可根據需要調整)
  3. 注意:白名單的防火牆是對 ipv4 也生效的。如果只針對 ipv6 設定了某些規則,那麼也要加一些 ipv4 的規則,避免影響 ipv4 的相關流量。

原理分析

1. 為什麼設定 “埠過濾” 能關閉 ipv6 防火牆呢?

多數光貓和路由器的防火牆,本質上應該都是基於 iptables 或者 nftables 實現的。iptables 或者 nftables 都是基於鏈的實現。因此,理論上,可以透過設定白名單,讓匹配的流量能夠透過防火牆,進而實現間接關閉防火牆的目的。

2. 為什麼需要用 “白名單” 而不是 “黑名單”?

我測試了一下,由於光貓預設的策略是 ipv6 的入站流量 drop,因此再額外新增一個黑名單沒有意義,反正都是 drop,匹配到的包是 drop,沒有匹配到的包也是 drop。

3. 為什麼使用埠範圍而不是 ip 範圍?

我試了一下,用 ip 也是 ok 的。事實上,安全起見,只設定指定 ip 的白名單會更加安全,可以只允許特定的裝置的公網訪問。

但由於 ipv6 是會經常變的,這樣就會導致 ip 每變化一次,就需要在這裡更新一下配置。所以用埠最簡單。

另外,我的這個裝置並不支援 ipv6 的字首表達法和字尾表達法,所以如果用 ip 來設定的話,可能要設定一個非常大的範圍。

4. 其他

在這個韌體版本下,由於存在 bug,埠的設定並不需要一個完全正確的有效的範圍,而是隨便設一個範圍,即可以全部生效。

相關文章