用 OpenVPN 提供 IPv6 服务

• 本文约 557 字,阅读大致需要 2 分钟 | Security

有时,会有需要接入远程的 IPv6 网络。例如,办公或网吧等环境可能不提供 IPv6 接入的条件,或者需要接入更高安全级别的网络等等。

使用 OpenVPN 提供 IPv6 服务需要的条件包括:

一些关键的配置

在 tap0 上配置一个固定的 IPv6 地址。例如,你的 IPv6前缀::1/64。

在 /etc/rtadvd.conf 中配置:

tap0:\
        :addr="你的IPv6前缀::":prefixlen#64:

此处64为用于VPN的前缀长度。

OpenVPN配置为使用tap设备。

OpenVPN需要有一个 up 脚本,类似这样:

#!/bin/sh
/sbin/ifconfig tap0 内网IPv4地址/掩码
/sbin/ifconfig tap0 inet6 IPv6地址 prefixlen 64

这个配置主要是为了避免在重启OpenVPN时丢掉网卡的IPv6配置。

客户端的连接后脚本大致如此:

#!/bin/sh
/sbin/ifconfig tap0 inet6 accept_rtadv auto_linklocal
/usr/sbin/rtsold tap0

安全考虑

需要适当配置防火墙以防止来自IPv6的攻击。许多系统的防火墙并没有针对 IPv6 进行必要的配置。