HCRM博客

如何一键配置CentOS系统中的L2TP VPN?

CentOS 7 一键部署 L2TP/IPSec VPN

L2TP(Layer 2 Tunneling Protocol)是一种广泛使用的 VPN 协议,它结合了 IPSec 用于提供加密和身份验证,本文将详细介绍如何在 CentOS 7 上一键部署 L2TP/IPSec VPN,包括安装步骤、配置说明以及常见问题解答。

如何一键配置CentOS系统中的L2TP VPN?-图1
(图片来源网络,侵权删除)

一、安装前准备

1、系统要求

CentOS 7 及以上版本

内存至少 128MB

具备 root 权限或使用 sudo 提权

2、更新系统

如何一键配置CentOS系统中的L2TP VPN?-图2
(图片来源网络,侵权删除)
   yum update y

3、安装 EPEL(Extra Packages for Enterprise Linux)库

EPEL 库提供了额外的软件包,对于安装一些必要的软件非常重要。

   yum install epelrelease y

二、安装 L2TP 和 IPSec

1、安装相关软件包

使用以下命令安装 L2TP 和 IPSec 所需的软件包:

   yum install xl2tpd ppp ipsecmodxfrm y

2、修改 PSK(PreShared Key)文件

如何一键配置CentOS系统中的L2TP VPN?-图3
(图片来源网络,侵权删除)

编辑/etc/sysconfig/ipsec 文件,添加或修改预共享密钥:

   vim /etc/sysconfig/ipsec

添加或修改以下行:

   PSK="your_psk_here"

保存并退出。

3、配置 IPSec

编辑/etc/ipsec.conf 文件,添加以下内容以启用 NAT 遍历:

   vim /etc/ipsec.conf

config setup 部分添加:

   nat_traversal=yes

并在文件末尾添加:

   include /etc/ipsec.d/*.conf

4、创建 IPSec 配置文件

/etc/ipsec.d/ 目录下创建一个新的配置文件l2tp_psk.conf

   vim /etc/ipsec.d/l2tp_psk.conf

添加以下内容(根据实际情况修改 IP 地址):

   conn L2TPPSKNAT
   rightsubnet=vhost:%priv,vhost%home,!0.0.0.0/0
   also=L2TPPSKnoNAT
   conn L2TPPSKnoNAT
   authby=secret
   pfs=no
   auto=add
   keyingtries=3
   dpddelay=30
   dpdtimeout=120
   dpdaction=clear
   rekey=no
   ikelifetime=8h
   keylife=1h
   type=transport
   left=10.0.8.12
   leftprotoport=17/1701
   right=%any
   rightprotoport=17/%any

5、创建预共享密钥文件

/etc/ipsec.d/ 目录下创建一个新的密钥文件ipsec.secrets

   vim /etc/ipsec.d/ipsec.secrets

添加以下内容(根据实际情况修改 IP 地址和 PSK):

   10.0.8.12 %any: PSK "your_psk_here"

6、调整内核参数

编辑/etc/sysctl.conf 文件,确保以下参数被正确设置:

   vim /etc/sysctl.conf

添加或修改以下行:

   vm.swappiness = 0
   net.ipv4.ip_forward = 1
   net.ipv4.conf.all.arp_announce = 2
   net.ipv4.conf.all.promote_secondaries = 1
   net.ipv4.conf.all.rp_filter=0
   net.ipv4.conf.default.accept_redirects = 0
   net.ipv4.conf.default.accept_source_route = 0
   net.ipv4.conf.default.arp_announce = 2
   net.ipv4.conf.default.promote_secondaries = 1
   net.ipv4.conf.default.rp_filter=0
   net.ipv4.conf.default.send_redirects = 0
   net.ipv4.conf.lo.arp_announce = 2
   net.ipv4.neigh.default.gc_thresh3 = 4096
   net.ipv6.neigh.default.gc_thresh3 = 4096
   net.ipv4.neigh.default.gc_stale_time=120
   net.ipv4.tcp_max_syn_backlog = 1024
   net.ipv4.tcp_max_tw_buckets = 5000
   net.ipv4.tcp_synack_retries = 2
   net.ipv4.tcp_syncookies = 1
   net.ipv6.conf.all.disable_ipv6 = 0
   net.ipv6.conf.default.disable_ipv6 = 0
   net.ipv6.conf.lo.disable_ipv6 = 0

7、重启服务并应用配置

重启 IPSec 和 L2TP 服务,并使 sysctl 配置生效:

   systemctl restart ipsec
   systemctl restart xl2tpd
   sysctl p

三、配置防火墙

1、开放 UDP 1701 端口

为了使 L2TP 正常工作,需要开放 UDP 1701 端口:

   firewallcmd permanent zone=public addport=1701/udp
   firewallcmd reload

四、测试连接

1、查看 IPSec 状态

确保 IPSec 运行正常:

   ipsec status

2、查看 IPSec 验证结果

检查 IPSec 配置是否正确:

   ipsec verify

3、连接测试

使用支持 L2TP/IPSec 的客户端(如 Windows、macOS)连接到 VPN,使用默认的用户名和密码进行测试,如果一切配置正确,应该能够成功连接。

五、常见问题解答(FAQs)

问题1:无法连接到 L2TP VPN,提示认证失败

解答:检查/etc/ppp/chapsecrets 文件中的用户名和密码是否正确,确保客户端使用的用户名和密码与服务器上的一致,确认 PSK 是否匹配。

问题2:连接后无法访问网络

解答:首先检查服务器端的防火墙设置,确保允许转发和相关的端口,确认/etc/sysctl.conf 中的路由相关参数已正确设置,尤其是net.ipv4.ip_forward,检查客户端的网络设置,确保其网关指向 VPN 服务器。

问题3:重启后 VPN 服务无法启动

解答:检查系统日志(如/var/log/messages)中的错误信息,通常可以提供有关服务无法启动的原因,常见的问题包括配置文件错误、端口被占用或依赖的服务未启动,根据错误信息进行相应的修复。

通过上述步骤,您应该能够在 CentOS 7 上成功部署 L2TP/IPSec VPN,如果在部署过程中遇到任何问题,建议查阅相关的日志文件或寻求社区的帮助。

分享:
扫描分享到社交APP
上一篇
下一篇