搭建了多次vpn服务,从最早的使用pptp到现在的strongswan。从安全角度上来看,strongswan更安全,且目前的设备基本都已支持。关于strongswan更多的信息请参考官方网站。
注意:此方法基于Ubuntu版本16.0.4(<= 16.0.4)及以下
部署及安装步骤:
1. 安装strongswan及相关组件
1.1 apt-get install -y strongswan
1.2 apt-get install -y strongswan-plugin-xauth-*
2. 配置strongswan服务
2.1 配置/etc/ipsec.secrets文件
# This file holds shared secrets or RSA private keys for authentication.
# RSA private key for this host, authenticating it to any other host
# which knows the public part.
x.x.x.x %any : PSK "ps-key"
user1 : XAUTH "password1"
user2 : XAUTH "password2"
注:其中x.x.x.x你服务器的公网IP地址;ps-key为共享密码;user1,user2分别为vpn登陆用户名;password1,password2分别为vpn登陆密码;以上信息请修改为你想设置的用户名及密码即可。
2.2 配置/etc/ipsec.conf文件
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
cachecrls=yes
uniqueids=yes
conn ios
keyexchange=ikev1
authby=xauthpsk
xauth=server
left=%defaultroute
leftsubnet=0.0.0.0/0
leftfirewall=yes
right=%any
rightsubnet=192.168.5.0/24
rightsourceip=192.168.5.1/24
rightdns=8.8.8.8
auto=add
3. 配置网络
3.1 网络转发(iptables)
iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o eth0 -j MASQUERADE
3.2 将如下命令写入/etc/rc.local
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 8192 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 40000 > /proc/sys/net/ipv4/tcp_max_tw_buckets
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
4. 重启服务器即可
PS:如果不方便重启服务器,也可以使用如下命令:
sysctl net.ipv4.ip_forward=1
重启strongswan服务:service strongswan stop && service strongswan start