基于亚马逊Ubuntu服务器搭建IPSec/IKEV2协议VPN

服务端篇

(一)、安装以及编译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




你可能感兴趣的:(基于亚马逊Ubuntu服务器搭建IPSec/IKEV2协议VPN)