CentOS7.2 安装L2TP/IPSec 服务端/客户端 和部分心得 ( libreswan+xl2tpd )

时间:2022-06-26 09:17:18

整体基于CentOS7.2实现。方案为“使用预共享密钥的L2TP/IPSec”

下载地址:http://download.csdn.net/download/gogoytgo/10266198
参考资料:https://teddysun.com/448.html

在此一键安装脚本上,删除了部分功能:
1)不配置防火墙,因为我们的业务不需要也不希望通过VPN直接转接到其他网络,而是通过程序实现。
2)仅保留CentOS相关的配置修改。

1.基本安装组件方法 :

 yum -y install ppp libreswan 
rpm -i xl2tpd-1.3.8-2.el7.x86_64.rpm

同时,建议不使用原装的libreswan, 新版本的兼容性更好,如果是CentOS7,可以直接使用我的编译结果
否则请按下面的方法自行编译

yum install nss-devel libevent-devel unbound unbound-devel systemd-devel libcap-ng-devel
make base USE_DNSSEC=false
#如果想要直接安装,make install
make install USE_DNSSEC=false
#如果想要移植,make tarpkg
make tarpkg USE_DNSSEC=false

2.关于Android设备的兼容问题 :

在测试时,发现华为手机无法接入,而使用IOS/PC/其他安卓手机均能接入。
查询了网络资料,看到了是Android 6.0和早期Linux内核的程序,使用了一个坏的SHA2-256算法。

有很多资料会建议你(上面的脚本也是)在/etc/ipsec.conf 中增加

sha2-truncbug=yes

这句话的意思就是让你使用坏的SHA2-256算法。那么,当正确的SHA2-256(例如华为手机)来连接时,就挂了。因此需要根据实际情况取舍。
IOS和WIN不使用SHA2-256,所以没影响。

3.日志诊断 :

1)服务端的鉴权日志在 /var/log/secure
2)客户端连接的日志在 /var/log/messages

4.文件说明 :

config_vpn_server.sh

#服务端配置脚本,配置完毕后自动启动
config_vpn_server.sh [你的公网IP] [PSK] [用户名] [密码]

config_vpn_client.sh

#服务端客户端配置脚本
config_vpn_client.sh [对端的公网IP] [PSK] [用户名] [密码]
#客户端配置完毕后,通过start_vpn.sh和stop_vpn.sh 启动/停止

start_vpn.sh

客户端启动脚本

stop_vpn.sh

客户端停止脚本

libreswan_src-3.23.tar.gz

libreswan最新版本源码

libreswan_dst-3.23.tgz

libreswan我基于CentOS7.2的编译结果包

部署方法:

cd /
tar xvf libreswan-3.23.tgz
systemctl enable ipsec.service

xl2tpd-1.3.8-2.el7.x86_64

前面提到的安装文件