服务端篇
(一)、安装以及编译StrongSwan
1、sudo wget https://download.strongswan.org/strongswan-5.8.4.tar.gz
2、sudo yum install -y gmp-devel xl2tpd module-init-tools gcc openssl-devel
3、sudo tar -zxvf strongswan-5.8.4.tar.gz
4、cd strongswan-5.8.4(根据自己的目录情况,cd到目录底下)
5、sudo ./configure --enable-eap-identity --enable-eap-md5 --enable-eap-mschapv2 --enable-eap-tls --enable-eap-ttls --enable-eap-peap --enable-eap-tnc --enable-eap-dynamic --enable-eap-radius --enable-xauth-eap --enable-xauth-pam --enable-dhcp --enable-openssl --enable-addrblock --enable-unity --enable-certexpire --enable-radattr --enable-tools --enable-openssl --disable-gmp
6、sudo make
7、sudo make install
(二)、创建证书
1、ipsec pki --gen --outform pem > ca.pem
2、ipsec pki --self --in ca.pem --dn "C=com, O=myvpn, CN=VPN CA" --ca --outform pem >ca.cert.pem
3、ipsec pki --gen --outform pem > server.pem
4、ipsec pki --pub --in server.pem | ipsec pki --issue --cacert ca.cert.pem --cakey ca.pem --dn "C=com, O=myvpn, CN=你的服务器IP" --san="你的服务器IP" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem
5、ipsec pki --gen --outform pem > client.pem
6、ipsec pki --pub --in client.pem | ipsec pki --issue --cacert ca.cert.pem --cakey ca.pem --dn "C=com, O=myvpn, CN=VPN Client" --outform pem > client.cert.pem
7、openssl pkcs12 -export -inkey client.pem -in client.cert.pem -name "client" -certfile ca.cert.pem -caname "VPN CA" -out client.cert.p12
(特别注意:以上指令除了修改服务器IP,其他字符串字段com, myvpn,VPN CA,VPN Client都可以不用改)
(三)安装证书
sudo cp -r ca.cert.pem /usr/local/etc/ipsec.d/cacerts/
sudo cp -r server.cert.pem /usr/local/etc/ipsec.d/certs/
sudo cp -r server.pem /usr/local/etc/ipsec.d/private/
sudo cp -r client.cert.pem /usr/local/etc/ipsec.d/certs/
sudo cp -r client.pem /usr/local/etc/ipsec.d/private/
(特别注意:ca.cert.pem证书需通过邮箱发送到客户端进行安装,不然IKEv2方式登录不了,因为,我这是自签证书,如果采用CA签发的服务端证书客户端可免证书账号密码登录)
(四)设置VPN登录密码
sudo vim /etc/ipsec.secrets 文件
: RSA server.key
: PSK "123456a"
test : XAUTH "123456"
test : EAP "123456"
账号:test
密码:123456
共享秘钥:123456a
(五)设置防火墙
1、 sudo vim /usr/local/etc/sysctl.conf
将"net.ipv4.ip_forward = 0"改为"net.ipv4.ip_forward = 1"
:wq 保存退出
执行
sudo sysctl -p
2、
sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 10.31.0.0/24 -j ACCEPT
sudo iptables -A FORWARD -s 10.31.1.0/24 -j ACCEPT
sudo iptables -A FORWARD -s 10.31.2.0/24 -j ACCEPT
sudo iptables -A INPUT -i venet0 -p esp -j ACCEPT
sudo iptables -A INPUT -i venet0 -p udp --dport 500 -j ACCEPT
sudo iptables -A INPUT -i venet0 -p tcp --dport 500 -j ACCEPT
sudo iptables -A INPUT -i venet0 -p udp --dport 4500 -j ACCEPT
sudo iptables -A INPUT -i venet0 -p udp --dport 1701 -j ACCEPT
sudo iptables -A INPUT -i venet0 -p tcp --dport 1723 -j ACCEPT
sudo iptables -A FORWARD -j REJECT
sudo iptables -t nat -A POSTROUTING -s 10.31.0.0/24 -o venet0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 10.31.1.0/24 -o venet0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 10.31.2.0/24 -o venet0 -j MASQUERADE
注意项:
ifconfig,查看自己客户端连接的相应网卡.
ens5为虚拟机网卡,改为自己虚拟机的网卡
sudo iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE
(六)设置VPN配置
sudo vim /usr/local/etc/ipsec.config
config setup
uniqueids=never
conn IOS-IPSec
keyexchange=ikev1
left=%defaultroute
leftauth=psk
leftsubnet=0.0.0.0/0
right=%any
rightauth=psk
rightauth2=xauth
rightsourceip=10.31.2.0/24
auto=add
conn IOS-IKEV2
auto=add
compress=no
type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
ike=aes256-sha1-modp1024,3des-sha1-modp1024!
esp=aes256-sha256!
dpdaction=clear
dpddelay=300s
rekey=no
left=%any
leftid=你的服务器IP
leftcert=/usr/local/etc/ipsec.d/certs/server.cert.pem
leftsendcert=always
leftsubnet=0.0.0.0/0
right=%any
rightid=%any
rightauth=eap-mschapv2
rightdns=8.8.8.8,8.8.4.4
rightsourceip=10.31.2.0/24
rightsendcert=never
eap_identity=%identity
(七)开启VPN服务常用指令
sudo ipsec start
关闭vpn服务
sudo ipsec stop
以日志形式开启vpn服务
sudo ipsec start --nofork
客户端篇
苹果手机添加VPN配置
(一)类型IKEv2
描述 必填项 (任意填写)
服务器 必填项 (服务器IP)
远程ID 必填 (服务器IP)
用户名 必填 根据服务器配置来写
密码 密码 根据服务器配置来写
(二)类型IPsec
描述 必填项 (任意填写)
服务器 必填项 (服务器IP)
帐户 必填 根据服务器配置来写
密码 必填 根据服务器配置来写
密钥 必填 根据服务器配置来写
(注意:以上提到的均进行配置,其他的可不进行配置)
参考链接
http://blog.vinqon.com/2017/02/23/strongswan_ikev2/
http://www.voidcn.com/article/p-vovtgimx-bpq.html
https://www.iteye.com/blog/haohetao-2369757
https://www.helplib.cn/yangchunyan110/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-16-04
http://doc.okbase.net/yanzi1225627/archive/210085.html
https://blog.fish2bird.com/?p=793
https://blog.csdn.net/lllkey/article/details/80068461
https://www.jianshu.com/p/a69dfc984025
https://blog.51cto.com/wzlinux/1683915
http://www.voidcn.com/article/p-uxdiehcv-zg.html
https://quericy.me/blog/512/
https://blog.51cto.com/wzlinux/1683915
结束篇
如果有问题,如果我刚好有空,可进行交流解决,QQ:1367712978