随着远程办公和移动办公需求的日益增长,企业对安全、稳定、易用的虚拟私人网络(VPN)解决方案提出了更高要求,L2TP(Layer 2 Tunneling Protocol)与IPsec(Internet Protocol Security)结合的方案因其兼容性强、安全性高、配置灵活等特点,成为许多Linux服务器管理员的首选,本文将以CentOS操作系统为例,详细讲解如何在CentOS 7或8环境下搭建一个基于L2TP/IPsec协议的VPN服务,适用于个人用户或小型企业部署。

准备工作
确保你已准备好一台运行CentOS的物理机或云服务器(推荐使用CentOS 7或8),并具备root权限,同时需要保证服务器有公网IP地址,并开放以下端口:

  • UDP 500(用于IPsec IKE协商)
  • UDP 4500(用于NAT穿越)
  • UDP 1701(L2TP数据通道)

建议通过SSH连接到服务器进行操作,确保网络环境稳定。

安装必要软件包
首先更新系统并安装必要的软件包:

yum update -y
yum install -y xl2tpd iptables-services ipsec-tools libreswan
  • xl2tpd 是L2TP守护进程;
  • ipsec-toolslibreswan 提供IPsec功能;
  • iptables-services 用于管理防火墙规则。

配置IPsec
编辑 /etc/ipsec.conf 文件,添加如下内容:

config setup
    plutostart=yes
    protostack=netkey
    dumpdir=/var/run/pluto/
    nat_traversal=yes
    interfaces=%defaultroute
conn l2tp-psk
    authby=secret
    pfs=yes
    type=transport
    left=%defaultroute
    leftprotoport=17/udp
    right=%any
    rightprotoport=17/udp
    auto=add

接着编辑 /etc/ipsec.secrets 文件,添加预共享密钥:

%any %any : PSK "your_strong_pre_shared_key"

请将 "your_strong_pre_shared_key" 替换为高强度密码(如包含大小写字母、数字和特殊字符的组合)。

配置L2TP
编辑 /etc/xl2tpd/xl2tpd.conf

[global]
listen-addr = your_server_ip
debug tunnel = yes
debug network = yes
[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 = l2tp-server
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

设置PPP认证
创建 /etc/ppp/options.xl2tpd 文件:

ipcp-accept-local
ipcp-accept-remote
noauth
require-chap
refuse-pap
asyncmap 0
maxfail 0
mtu 1400
mru 1400
lock
modem
noipx
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

添加用户账户
编辑 /etc/ppp/chap-secrets 文件,格式为:

username * password *
john * mysecurepass123 *

启动服务并配置防火墙
启用并启动IPsec和L2TP服务:

systemctl enable ipsec xl2tpd
systemctl start ipsec xl2tpd

配置iptables防火墙规则:

iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -A INPUT -p udp --dport 1701 -j ACCEPT
iptables -A FORWARD -s 192.168.100.0/24 -d 192.168.100.0/24 -j ACCEPT
iptables -A POSTROUTING -t nat -s 192.168.100.0/24 -o eth0 -j MASQUERADE
service iptables save

测试连接
在客户端(Windows、iOS、Android等)配置L2TP/IPsec连接时,输入服务器IP、用户名和密码,预共享密钥填写前面设定的值,若一切正常,即可建立安全隧道,实现远程访问内网资源。


通过上述步骤,你可以在CentOS系统上成功搭建一个功能完整的L2TP/IPsec VPN服务,此方案不仅适合家庭用户远程访问NAS或路由器,也适用于中小企业构建安全的远程办公通道,注意定期更新软件版本、加强日志监控和密钥管理,可进一步提升系统安全性。

在CentOS系统上搭建L2TP/IPsec VPN服务详解  第1张

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