lala.im:CentOS7部署IKEv2/L2TP/IPsec服务端

VPN代理·lala.im · 2019-06-10 · 112 人浏览

原文地址:https://lala.im/5839.html,請支持原作者!該處僅作轉載。

这两天属实有点难受,机器都被封完了,前两天套了个CF也只能电脑上用用,我手机已经快1个星期无法扶墙了,socks5一类的proxy完全不敢用,前两天拿了台玩具机搭了没几个小时就给我咔嚓了。。
所以手机这边我决定用IKEv2了,L2TP只是我顺带配置一下,反正我也不会去用的。主要让我没想到的是联通4G网连Linode的Tokyo2速度竟然出奇的快,也不知道是本身线路就这样还是有别的原因。。总之现在手机挺爽的,而且还特稳定,除了不能分流以外。。
以下部署过程均是在KVM虚拟机上完成的,OpenVZ应该是不行,估计要搞什么TUN/TAP啥的,反正我从来不用OVZ,就不折腾了,所以你如果按照这篇文章来部署,切记机器要么是独立服务器要么是KVM或者XEN-HVM这种全虚拟化的。如何确定自己的机器是什么虚拟化?安装这个包:

yum -y install virt-what

执行:

virt-what

看回显即可。
现在部署IPsec最佳的方案就是使用strongswan了,然后又是IKEv2需要用到证书,都9102年了,签个Let’s Encrypt简直就跟玩一样,也没啥必要去用自签证书了,所以这里直接用cerbot去申请SSL证书。

yum -y install epel-release
yum -y install strongswan certbot net-tools nano

开IPv4转发:

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p

开防火墙:

systemctl start firewalld
systemctl enable firewalld

把80/443放行一下,待会申请SSL证书需要用到这两个端口:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

签RSA证书,这个兼容性好点:

certbot certonly --standalone --agree-tos --rsa-key-size 4096 \
--no-eff-email --email [email protected] -d ikev2.koko.cat

将签好的证书复制到strongswan的目录:

cp /etc/letsencrypt/live/ikev2.koko.cat/cert.pem /etc/strongswan/ipsec.d/certs
cp /etc/letsencrypt/live/ikev2.koko.cat/privkey.pem /etc/strongswan/ipsec.d/private
cp /etc/letsencrypt/live/ikev2.koko.cat/chain.pem /etc/strongswan/ipsec.d/cacerts

注意这里别复制fullchain.pem这种做过拼接的有完整证书链的证书,在某些IKEv2客户端下有可能会因为这个导致无法连接。
将默认的ipsec配置文件做个备份,并编辑,直接清空里面的内容:

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.bak
nano /etc/strongswan/ipsec.conf

然后使用下面我给出的配置:

config setup
  charondebug="ike 1, knl 1, tls 1, cfg 1"
  uniqueids=no

conn imlala-ikev2
  auto=add
  keyexchange=ikev2
  rekey=no
  ike=aes256-sha1-modp1024,aes256-sha256-modp2048,3des-sha1-modp2048,aes256-sha1-modp2048!
  dpddelay=300s
  dpdaction=clear
  left=%any
  [email protected]
  leftauth=pubkey
  leftcert=cert.pem
  leftsendcert=always
  leftsubnet=0.0.0.0/0
  right=%any
  rightid=%any
  rightauth=eap-mschapv2
  rightsendcert=never
  rightsourceip=192.168.4.0/24
  rightdns=1.0.0.1,9.9.9.9
  eap_identity=%identity

上面这个配置你只需要改一下leftid=后面的域名就行了。如果要增加或者删除配置,建以看看这两个文档:
https://wiki.strongswan.org/projects/strongswan/wiki/Connsection\nhttps://wiki.strongswan.org/projects/strongswan/wiki/ConfigSetupSection
编辑密钥配置文件:

nano /etc/strongswan/ipsec.secrets

写入如下配置,其中域名换成你自己的,后面就是VPN的用户账号和密码了,要添加几个用户就在这里写上(一行一个。):

ikev2.koko.cat : RSA "/etc/strongswan/ipsec.d/private/privkey.pem"
imlala %any% : EAP "你的VPN密码"
moon23 %any% : EAP "你的VPN密码"

这样IKEv2就配置完成了,使用下面的命令启动或者管理strongswan:

systemctl start strongswan
systemctl enable strongswan
systemctl restart strongswan

配置Firewalld:

firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --zone=public --permanent --add-service="ipsec"
firewall-cmd --zone=public --permanent --add-rich-rule='rule protocol value="esp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule protocol value="ah" accept'
firewall-cmd --reload

IKEv2就配置好了。接下来配置L2TP/IPsec。
首先安装需要用到的包:

yum -y install xl2tpd ppp

然后直接打开之前的ipsec配置文件:

nano /etc/strongswan/ipsec.conf

在里面加上如下配置:

conn imlala-l2tp
  auto=add
  authby=secret
  keyexchange=ikev1
  type=transport
  dpddelay=300s
  dpdaction=clear
  left=%any
  leftprotoport=17/1701
  right=%any
  rightprotoport=17/%any

还是打开之前的密钥配置文件:

nano /etc/strongswan/ipsec.secrets

加入一行:

%any : PSK "你的密钥"

接着备份一下xl2tpd的配置文件,然后编辑清空里面所有的配置:

cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.bak
nano /etc/xl2tpd/xl2tpd.conf

使用下面我给出的配置:

[global]
ipsec saref = yes
saref refinfo = 30

[lns default]
ip range = 192.168.5.2 - 192.168.5.254
local ip = 192.168.5.1
require chap = yes
refuse pap = yes
require authentication = yes
name = imlala-l2tp
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

备份options.xl2tpd文件,清空里面的内容:

cp /etc/ppp/options.xl2tpd /etc/ppp/options.xl2tpd.bak
nano /etc/ppp/options.xl2tpd

使用我下面我给出的配置:

name l2tpd
require-mschap-v2
ms-dns 1.0.0.1
ms-dns 9.9.9.9
mtu 1500
mru 1500
auth
crtscts
hide-password
modem
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

编辑L2TP账号配置文件:

nano /etc/ppp/chap-secrets

在里面加入你的VPN账号密码,有多少个用户就加多少个(一行一个)例如:

imlala l2tpd 你的密码 *
moon23 l2tpd 你的密码 *

重启strongswan:

systemctl restart strongswan

启动xl2tpd:

systemctl start xl2tpd
systemctl enable xl2tpd

最后放行1701端口完成部署:

firewall-cmd --zone=public --permanent --add-port=1701/udp
firewall-cmd --reload

手机端配置,这边我用iOS演示,IKEv2的:

範例
L2TP:

範例
连不上?看日志:

tail -f /var/log/messages

然后Google吧。
我这边测试了iOS的联通4G/电信WiFi能连,电脑和WiFi同一网络环境开虚拟机Win7也能连,但是宿主机Win10死活连不上,应该和ISP干扰有关系。不过无所谓,我反正就是拿来给手机4G网用的,这个iKEv2+LinodeTokyo2+联通4G真的速度非常快。
最后搞两个VPN账号出来,看你们用Win10能连上不。。估计电信有点难。。

IKEv2:

服务器地址:ikev2.koko.cat
账号:null
密码:boom
L2TP/IPsec:

服务器地址:139.162.100.234
账号:null
密码:boom
密钥:lala.im
VPN代理 lala.im
Theme Jasmine by Kent Liao