HCRM博客

如何在CentOS上配置L2TP VPN?

CentOS L2TP 配置指南

L2TP(Layer 2 Tunneling Protocol)是一种广泛使用的 VPN 协议,通常与 IPsec 结合使用以提供安全的远程访问,以下是如何在 CentOS 系统中配置 L2TP/IPSec 服务器的详细步骤:

如何在CentOS上配置L2TP VPN?-图1
(图片来源网络,侵权删除)

1. 前置条件检查和环境配置

在开始之前,确保你的 CentOS 系统已更新到最新版本,可以使用以下命令更新系统:

sudo yum y update

2. 安装必要的软件包

需要安装的软件包包括xl2tpdstrongSwan 以及一些依赖工具,具体命令如下:

sudo yum install y epelrelease
sudo yum install y make gcc gmpdevel xmlto bison flex libpcap lsof vim man xl2tpd libreswan

3. 配置 IPsec

修改/etc/ipsec.conf 文件,允许通过 NAT 建立 L2TP 连接:

如何在CentOS上配置L2TP VPN?-图2
(图片来源网络,侵权删除)
sudo vim /etc/ipsec.conf

添加如下内容到文件中:

nat_traversal=yes
include /etc/ipsec.d/*.conf

创建并编辑/etc/ipsec.d/l2tp_psk.conf 文件,设置连接参数:

sudo vim /etc/ipsec.d/l2tp_psk.conf

添加如下内容,并将left 参数设置为公网网卡的 IP 地址:

conn L2TPPSKNAT
    rightsubnet=vhost:%priv
    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=<your_public_IP>
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any

/etc/ipsec.d/ 目录下创建保存预共享密钥的文件ipsec.secrets,格式如下:

<your_public_IP> %any: PSK "test123"

重启 IPsec 服务并验证配置:

sudo systemctl restart ipsec
sudo ipsec verify

4. 配置 L2TP

如何在CentOS上配置L2TP VPN?-图3
(图片来源网络,侵权删除)

修改/etc/sysctl.conf 文件,启用内核转发和其他网络配置:

sudo vim /etc/sysctl.conf

添加到文件中:

net.ipv4.ip_forward = 1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.default.arp_announce=2
net.ipv4.conf.all.promote_secondaries = 1
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.lo.arp_announce=2
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.default.disable_ipv6=0
net.ipv6.conf.lo.disable_ipv6=0

执行以下命令使更改生效:

sudo sysctl p

修改/etc/xl2tpd/xl2tpd.conf 文件,设置监听地址和分配给客户端的 IP 地址范围:

sudo vim /etc/xl2tpd/xl2tpd.conf

主要修改以下部分:

[global]
listenaddr <your_public_IP>
ipsec saref = yes
[lns default]
ip_range = 192.168.1.128192.168.1.254
local ip = 192.168.1.99

修改/etc/ppp/options.xl2tpd 文件,设置安全选项和 DNS 服务器:

sudo vim /etc/ppp/options.xl2tpd

主要修改如下:

requiremschapv2
msdns 8.8.8.8
msdns 8.8.4.4

5. 配置用户认证信息

/etc/ppp/chapsecrets 文件中添加 L2TP 服务器的账户和密码:

sudo vim /etc/ppp/chapsecrets

添加如下内容:

用户名 * 密码 * IP地址
user * password

6. 启动并配置服务

启动并启用xl2tpd 服务:

sudo systemctl start xl2tpd
sudo systemctl enable xl2tpd

检查服务状态以确保其正常运行:

sudo systemctl status xl2tpd

7. 配置防火墙规则

确保防火墙允许 L2TP 流量通过:

sudo firewallcmd permanent direct addrule ipv4 filter INPUT 0 p gre j ACCEPT
sudo firewallcmd permanent zone=public addmasquerade
sudo firewallcmd reload

FAQs

Q1: 如何验证 L2TP/IPsec VPN 是否成功连接?

A1: 你可以通过以下步骤来验证 VPN 连接:尝试从客户端连接到新配置的 VPN 服务器,连接成功后,使用ipsec verify 命令检查 IPsec 连接状态,确认加密通道已建立,可以查看/var/log/xl2tpd.log 日志文件,确认是否有任何错误信息,如果一切正常,你应该能够看到客户端获取了正确的 IP 地址,并能成功访问受保护的网络资源。

Q2: 如果遇到连接问题,应如何排查和解决?

A2: 如果遇到连接问题,可以从以下几个方面进行排查:确认客户端的 VPN 配置是否正确,特别是预共享密钥和用户名密码是否匹配,检查服务器上的防火墙规则,确保允许 L2TP 流量通过,查看/var/log/xl2tpd.log/var/log/messages 日志文件,查找可能的错误信息或警告,使用ipsec verify 命令检查 IPsec 连接状态,确保加密通道已正确建立,如果问题仍未解决,可以尝试重启相关服务或者重新加载配置文件,确保所有更改已生效。

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