在Ubuntu Server中搭建 IPSec VPN Server

iOS升级到iOS10后,就不支持原来的PPTP协议的VPN,需要升级vpn server为IPSec。

安装使用这个项目提供的脚本:

https://github.com/hwdsl2/setup-ipsec-vpn

wget https://git.io/vpnsetup -O vpnsetup.sh
vim vpnsetup.sh
# 修改 YOUR_IPSEC_PSK  YOUR_USERNAME  YOUR_PASSWORD 三个参数
sudo sh vpnsetup.sh

这样就好了,然后去手机设置,服务器填你服务器的ip地址,密钥填之前设置的 YOUR_IPSEC_PSK 参数值,类型选择IPSec。

VPN 默认使用了google的dns服务器,8.8.8.8和8.8.4.4,如果你想换其它的,就修改相应两个配置文件:

/etc/ppp/options.xl2tpd
/etc/ipsec.conf

然后重启服务:

service ipsec restart
service xl2tpd restart

VPN服务需要开户 UDP 500 4500 端口,以及TCP 22端口,如何有防火墙,需要配置开放这几个端口。

VPN提供的网段为 192.168.42.1。

修改密钥

直接修改文件:

/etc/ipsec.secrets

<VPN Server IP>  %any  : PSK "<VPN IPsec PSK>"

添加新用户

直接修改配置:

/etc/ppp/chap-secrets

"<VPN User 1>"  l2tpd  "<VPN Password 1>"  *
"<VPN User 2>"  l2tpd  "<VPN Password 2>"  *
... ...

如果是iOS设备,使用的是 IPsec/XAuth (“Cisco IPsec”),增加用户需要修改文件 /etc/ipsec.d/passwd:

<VPN User 1>:<VPN Password 1 (hashed)>:xauth-psk
<VPN User 2>:<VPN Password 2 (hashed)>:xauth-psk
... ...

其中密码是加过密的,加密后的密码可以用命令行来得到:

# The output will be <VPN Password 1 (hashed)>
openssl passwd -1 "<VPN Password 1>"

参考:

https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/manage-users.md