[toc]

由于阿里云上有一些限制,在阿里云ECS上部署待见IPSec和普通服务器有不一样的地方。

安装strongswan

添加strongswan,常规的校验支持,windows下的校验支持

apt-get update
apt-get install strongswan strongswan-plugin-xauth-generic strongswan-plugin-eap-mschapv2

编辑/etc/ipsec.secrets

vi /etc/ipsec.secrets

增加:

: PSK "pskpassword"
username : XAUTH "password"

其中PSK是预共享密钥,是用于验证 L2TP/IPSec 连接的 Unicode 字符串。username为用户名, password是密码。

编辑 /etc/strongswan.conf

配置dns

charon {
        load_modular = yes
        plugins {
                include strongswan.d/charon/*.conf
        }
        dns1 = 8.8.8.8
        dns2 = 8.8.4.4
        ndns1 = 8.8.8.8
        ndns2 = 8.8.4.4
}

include strongswan.d/*.conf

编辑 /etc/ipsec.conf

config setup
    cachecrls=yes
    uniqueids=never

# supports iOS PSK and Shrew on Windows
conn xauth_psk
    keyexchange=ikev1
    left=%defaultroute
    leftauth=psk
    leftsubnet=0.0.0.0/0
    right=%any
    rightauth=psk
    rightauth2=xauth
    rightsourceip=192.168.1.0/24
    auto=add

此处搭建PPTP服务器的时候已经占用了192.168.0.x的网段,所以使用192.168.1.x的网段。

注意使用192.168网段而不是10.0.0.1网段,不要和专有网络地址相冲突。

重启 strongswan

ipsec restart

修改阿里云服务器对应安全组规则

增加 公网入网 UDP 500和 UDP 4500两个端口

打开IPv4转发,设置NAT规则

sysctl net.ipv4.ip_forward=1

sudo iptables -A INPUT -p udp --dport 500 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 4500 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth0 -j MASQUERADE

配置开机自动启动

编辑/etc/rc.local文件,在exit 0 以前新增以下代码:

sudo iptables -A INPUT -p udp --dport 500 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 4500 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth0 -j MASQUERADE
sudo ipsec start

安卓配置IPsec连接注意事项

通过以上配置以后,一定要选择IPsec Xauth PSK的连接类型,否则无法连接成功。

参考