ip6tables 允許來自 OpenVPN 的 IPv6 流量通過我的 VPS
我已經建立了一個完全可用的 IPv4 OpenVPN 設置,並想更進一步並嘗試設置 IPv6。我的 VPS 伺服器沒有獲得原生 IPv6 塊,但有一個 6 合 4 隧道介面設置,由 Hurricane Electric 提供。VPS盒子本身的IPv6連接都沒有問題。
使用 Hurricane Electric 提供的 /48 我創建了一個 /64 子網,OpenVPN 伺服器實例可以毫無問題地使用它。
我設置了正確的 server-ipv6 和 route-ipv6 指令,以通過我的 VPS 路由所有 IPv6 流量,與處理 IPv4 客戶端的方式相同。在進行跟踪路由時,它以 server-ipv6 地址作為第一跳進行響應,顯示 IPv6 網關現在是 VPS,但在第一跳之後一切都超時。
問題是外部 IPv6 流量被阻止。我已經確認它的防火牆相關,因為刪除防火牆允許跟踪路由完成。我正在使用啟用了 IPv4 和 IPv6 部分的 ConfigServer 安全和防火牆。
我不是 iptables 專家,但我在 csfpre.sh 中嘗試了這些規則但沒有成功。
ip6tables -A FORWARD -s ROUTED/64 -i tun+ -o sit1 -j ACCEPT ip6tables -A FORWARD -s ROUTED/48 -i tun+ -o sit1 -j ACCEPT
ROUTED 佔位符是我的 Hurricane Electric 隧道提供的子網。
我已經啟用了 IPv6 轉發:
net.ipv6.conf.all.forwarding = 1
VPS詳細資訊:
- CentOS 6.6(KVM 虛擬化)
- 2.6.32 Linux核心
- 防火牆:CSF(最新版本)
tun 介面已通過 ETH_DEVICE_SKIP 從 CSF 中排除
網路介面:
- OpenVPN:tun0(路由)
- IPv6 隧道:sit1(所有設置和工作)
- WAN:eth0(網關,外部介面)
任何人都可以幫助提供允許來自 OpenVPN 的 IPv6 流量流過的 ip6tables 規則嗎?
我想出了一套有效的防火牆規則,我走在正確的軌道上,但他們需要稍微調整一下。
使用 SixXS 提供的範例防火牆作為指南:
https://www.sixxs.net/wiki/IPv6_Firewalling#A_more_sophisticated_script_for_IPv6_stateful_firewall
我能夠制定這些有效的規則並允許 IPv6 流量通過。我將這些添加到我的 csfpre.sh 文件中
ip6tables -A FORWARD -m state --state NEW -i tun+ -o sit1 -s ROUTED/64 -j ACCEPT ip6tables -A FORWARD -m state --state NEW -i tun+ -o sit1 -s ROUTED/48 -j ACCEPT ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
再次,ROUTED/64 和 ROUTED/48 是颶風電氣提供的我的實際塊的佔位符
(tun+會覆蓋伺服器上的多個tun設備)