在CentOS系统上快速配置L2TP
L2TP(Layer 2 Tunneling Protocol)是一种广泛使用的协议,通过结合IPsec实现数据加密和隧道封装,确保数据在公共网络上传输的安全性,实现异地组网。本文将详细介绍如何在CentOS系统上一键安装L2TP/IPSec服务,并进行异地组网,让位于两地的子网络能够实现互访,包括必要的软件包安装、配置步骤以及常见问题的解决方案。
一、准备工作
(一)操作系统
CentOS 7及以上版本
(二)内存要求
≥128MB
(三)网络环境
服务器需要具备公网IP地址
(四)依赖库
EPEL库
(五)虚拟化技术
建议使用KVM或Xen,OpenVZ虚拟化技术可能不支持
二、安装步骤
(一)安装EPEL库
EPEL库提供了一些额外的软件包,这些包在标准的CentOS仓库中不可用,执行以下命令安装EPEL库。
sudo yum install epelrelease y
(二)下载并运行一键安装脚本
下载由秋水逸冰提供的L2TP/IPSec一键安装脚本,并赋予其执行权限。
wget nocheckcertificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh
chmod +x l2tp.sh
(三)执行安装脚本
以root用户身份运行安装脚本。
sudo ./l2tp.sh
(四)交互式配置
脚本执行后会进入交互模式,按提示输入以下信息:
本地IP段范围:默认值为192.168.18
,可以直接回车使用默认值,如:10.10.1。
PSK(预共享密钥):用于加密连接的密钥,默认值为teddysun.com
,如:12345678。
用户名:默认为teddysun
,可以直接回车使用默认值,如:admin。
用户密码:默认会自动生成一个随机密码,也可以自行设置,如:123456。
若要多个帐号密码,可以在/etc/ppp/chap-secrets中进行添加:
client是用户名 secret是密码
(五)检查并确认安装
脚本安装完成后,会自动执行ipsec verify
命令,如果输出中没有[FAILED]
字样,说明安装成功。
(六)启动L2TP服务
安装完成后,L2TP服务会自动启动,并将进程加入开机自启动项,可以使用以下命令检查服务状态。
systemctl status xl2tpd
systemctl status ipsec
(七) 开放防火墙端口
L2TP连接需要使用UDP协议的1701端口,因此需要在防火墙中开放该端口。
firewall-cmd --zone=public --add-port=1701/udp --permanent
firewall-cmd --reload
(八)写入路由
1.服务端配置
例:L2TP VPN服务器的网段为10.10.1.0/24,子网络A的内网网段为192.168.0.0/24,子网络B的内网网段为192.168.28.0/24,要使两个子网络使用互相的内网ip地址实现互访,要在/etc/rc.local新增一个启动脚本,通常在系统启动时执行。你可以将路由命令写入这个文件,以便在服务器重启后自动应用路由配置。
(1)编辑 /etc/rc.local
文件
sudo nano /etc/rc.local
或者
sudo vim /etc/rc.local
(2)在文件末尾添加路由配置
ip route add 192.168.0.0/24 dev ppp0 #192.168.0.0/24为子网络A的网段,ppp0为子网络A在L2TP VPN服务器中的网络接口
ip route add 192.168.1.0/24 dev ppp1 #192.168.28.0/24为子网络B的网段,ppp1为子网络B在L2TP VPN服务器中的网络接口
(3)保存并退出
(4)确保 /etc/rc.local
文件具有可执行权限
sudo chmod +x /etc/rc.local
(5)测试重启后是否生效
sudo reboot
ip route show
注意:在 CentOS 7 和 CentOS 8 上,/etc/rc.local
默认可能不会执行,需要手动启用。你可以通过以下命令确保它被正确执行。
systemctl start rc-local
systemctl enable rc-local
2.客户端配置
这里以ikuai路由器(内网网段为192.168.0.0/24)作为客户端A进行举例。
(1)进入路由器后台
(2)点击网络设置
(3)点击NAT规则
(4)点击添加
(5)选择目的地址NAT,接进口选择创建的L2TP接口,原地址ip填写自身内网网段(192.168.0.0/24),目的地址ip填写路由器B内网网段(192.168.28.0/24)和L2TP服务端创建的网段(10.10.1.0/24),NAT地址填写自身内网网段
(6)路由器B参照填写即可