CentOS下搭建L2TP/IPsec VPN服务详解:从环境准备到安全配置全攻略

在企业网络或远程办公场景中,建立一个稳定、安全的虚拟私有网络(VPN)至关重要,L2TP(Layer 2 Tunneling Protocol)结合IPsec加密机制,成为Linux系统上构建可靠远程访问解决方案的经典组合,本文将以CentOS 7/8为例,详细讲解如何在该操作系统上搭建L2TP/IPsec VPN服务,涵盖环境准备、软件安装、配置文件修改、防火墙设置及客户端连接测试全过程。

确保你拥有一个运行CentOS的服务器(建议使用最小化安装版本),并具备root权限,通过SSH登录后,更新系统包列表:

yum update -y

接下来安装必要的软件包,L2TP/IPsec依赖多个组件:ipsec-tools用于IPsec协议栈,xl2tpd负责L2TP隧道管理,以及pam和radius支持用户认证,执行以下命令安装:

yum install -y ipsec-tools xl2tpd pam-devel radiusclient

安装完成后,进入核心配置环节,首先编辑 /etc/ipsec.conf 文件,定义IPsec策略:

config setup
    plutodebug=none
    protostack=netkey
    nat_traversal=yes
    interfaces=%defaultroute
conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    auto=add
    keylife=20m
    rekey=yes
    ike=aes256-sha1-modp1024!
    phase2alg=aes256-sha1!
    pfs=yes
    left=%any
    leftid=@yourserver.com
    right=%any
    rightid=@client
    also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
    also=L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    dpddelay=30
    dpdtimeout=120
    dpdaction=clear

leftidrightid 应替换为实际域名或IP地址,便于证书管理和身份验证。

随后配置共享密钥,编辑 /etc/ipsec.secrets

%any %any : PSK "your_strong_pre_shared_key"

请务必使用高强度密钥(建议16位以上随机字符),避免弱口令攻击。

接着配置xl2tpd服务,编辑 /etc/xl2tpd/xl2tpd.conf

[lns default]
ip range = 192.168.100.100-192.168.100.200
local ip = 192.168.100.1
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tpd
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

创建PPP选项文件 /etc/ppp/options.xl2tpd

ipcp-accept-local
ipcp-accept-remote
noauth
refuse-pap
refuse-chap
refuse-mschap
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
modem
debug
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

现在添加用户账号,编辑 /etc/ppp/chap-secrets


usernamepassword 替换为你希望使用的凭据。

启动服务前,开启内核IP转发功能:

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

然后启动并启用服务:

systemctl start ipsec xl2tpd
systemctl enable ipsec xl2tpd

配置防火墙允许相关端口(如未启用firewalld,请先安装):

firewall-cmd --add-port=500/udp --permanent
firewall-cmd --add-port=4500/udp --permanent
firewall-cmd --add-port=1701/tcp --permanent
firewall-cmd --reload

完成上述步骤后,即可在Windows、macOS或Android设备上配置L2TP/IPsec连接,输入服务器IP、用户名密码及预共享密钥即可成功接入,此方案不仅满足基本远程访问需求,还通过IPsec加密保障数据传输安全,是中小型企业和个人用户的理想选择。

Secrets for authentication using CHAP  第1张

VPN加速器|半仙VPN加速器-免费VPN梯子首选半仙VPN