我已经建立了一个完全可用的 IPv4 OpenVPN 设置,并想更进一步尝试设置 IPv6。我的 VPS 服务器没有本地 IPv6 块,但有 6in4 隧道接口设置,由 Hurricane Electric 提供。 VPS 盒子本身的 IPv6 连接一切正常。
使用 Hurricane Electric 提供的 /48,我创建了一个 /64 子网,OpenVPN 服务器实例可以毫无问题地使用该子网。
我设置了正确的 server-ipv6 和 Route-ipv6 指令,以通过我的 VPS 路由所有 IPv6 流量,就像对待 IPv4 客户端一样。执行跟踪路由后,它以服务器 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(网关、外部接口)
任何人都可以帮助提供 ip6tables 规则,以允许源自 OpenVPN 的 IPv6 流量流过吗?
答案1
我找到了一套有效的防火墙规则,我走在正确的轨道上,但他们需要稍微调整一下。
使用 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设备)