1. 安装 strongswan 5.5.1
./configure --enable-dnscert --enable-ccm --enable-chapoly --enable-ctr --enable-gcm --enable-rdrand --enable-aesni --enable-vici --enable-swanctl --disable-ikev1 --enable-newhope --enable-mgf1 --enable-sha3 --enable-eap-identity --enable-eap-mschapv2 --enable-md4
make
make install
2. letsencypt
使用acme.sh 来获取letsencypt 的证书
# ./acme.sh --issue --standalone -d vpn.mydomain.com --keylength 4096
会在当前目录下生成目录 vpn.mydomain.com ,有几个重要的文件
1. ca.cer LetsEncypt中间证书
2. fullchain.cer 签发的域名证书
3. vpn.mydomain.com.key 跟域名证书对应的密钥文件
安装相关文件到对应目录
# cp ca.cert /etc/ipsec.d/cacerts/acme.ca.cer
# cp fullchain.cer /etc/ipsec.d/certs/
# cp vpn.mydomain.com.key /etc/ipsec.d/private/
3. 配置strongswan
1. /etc/ipsec.conf
config setup
uniqueids=never
conn myvpn
keyexchange=ikev2
left=%defaultroute
leftauth=pubkey
leftsubnet=0.0.0.0/0
leftfirewall=yes
leftcert=fullchain.cer
leftid=vpn.mydomain.com
leftsendcert=always
right=%any
rightauth=eap-mschapv2
rightsourceip=10.8.0.0/24
rightsendcert=never
eap_identity=%any
mobike=yes
compress=yes
auto=add
2. /etc/ipsec.secrets
: RSA vpn.mydomain.com.key
user : EAP "userpasswd"
3. /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
4. 启用strongswan
应用sysctl 规则
# sysctl -p
启动strongswan
# ipsec start
5. 配置VPN 客户端
android 版本的strongswan
新建一个Profile
Server: vpn.mydomain.com
VPN Type: IKEv2 EAP(Username / Password)
Username 和 Password 填 ipsec.secrets里的内容
测试下,能否正常
NOTE: 必须保证对应的服务器上打开了 500 和 4500 UDP 端口
还需要应用以下iptable 规则
iptables -A INPUT -p udp --dport 500 --j ACCEPT
iptables -A INPUT -p udp --dport 4500 --j ACCEPT
iptables -A INPUT -p esp -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
还需要应用以下iptable 规则
iptables -A INPUT -p udp --dport 500 --j ACCEPT
iptables -A INPUT -p udp --dport 4500 --j ACCEPT
iptables -A INPUT -p esp -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
没有评论:
发表评论