在企业网络和远程办公场景中,虚拟专用网络(VPN)是保障数据传输安全的重要手段,L2TP(Layer 2 Tunneling Protocol)结合IPsec(Internet Protocol Security)是一种广泛使用的协议组合,尤其适用于Linux服务器环境,本文将详细介绍如何在CentOS 7系统上部署并配置L2TP/IPsec类型的VPN服务,包括软件安装、参数设置、用户管理以及常见问题排查。

确保你的CentOS 7系统已更新至最新状态,并具备公网IP地址(或可被外部访问的内网IP),建议使用最小化安装版本以减少潜在攻击面,登录系统后,执行以下命令更新系统:

sudo yum update -y

安装必要的软件包,L2TP/IPsec通常依赖于xl2tpd(L2TP守护进程)和strongSwan(IPsec实现),运行以下命令安装它们:

sudo yum install -y xl2tpd strongswan ipsec-tools

安装完成后,配置IPsec主配置文件 /etc/ipsec.conf,该文件定义了IKE(Internet Key Exchange)协商参数和连接策略,示例如下:

config setup
    plutostart=no
    protostack=netkey
    nat_traversal=yes
    interfaces=%defaultroute
conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev1
    ike=aes256-sha1-modp1024!
    esp=aes256-sha1!
    auto=start
conn l2tp-psk
    left=%any
    leftid=@your-vpn-server.com
    right=%any
    rightsubnet=192.168.100.0/24
    authby=secret
    pfs=yes
    type=transport
    modecfgdns=8.8.8.8,8.8.4.4
    compress=yes
    ikev1sendcert=never
    also=l2tp-psk

注意:leftid应替换为你的服务器域名或IP地址,rightsubnet指定分配给客户端的私有IP段(如192.168.100.0/24)。

编辑密钥文件 /etc/ipsec.secrets,添加预共享密钥(PSK):

%any %any : PSK "your_strong_pre_shared_key"

然后配置xl2tpd服务,编辑 /etc/xl2tpd/xl2tpd.conf如下:

[global]
port = 1701
ipsec saref = 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.l2tpd
length bit = yes

创建PPP选项文件 /etc/ppp/options.l2tpd,用于控制拨号行为:

ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8
ms-dns 8.8.4.4
noccp
auth
crtscts
idle 1800
mtu 1400
mru 1400
lock
modem
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

完成配置后,启用并启动服务:

sudo systemctl enable ipsec xl2tpd
sudo systemctl start ipsec xl2tpd

若需允许IPv4转发,编辑 /etc/sysctl.conf 添加:

net.ipv4.ip_forward = 1

然后执行 sysctl -p 生效。

添加防火墙规则(假设使用firewalld):

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

至此,L2TP/IPsec服务基本可用,测试时,可在Windows或Android设备上配置L2TP连接,输入服务器IP、用户名密码及PSK即可成功拨号,若遇到连接失败,请检查日志:journalctl -u ipsecjournalctl -u xl2tpd,重点排查证书、IP冲突或端口阻塞问题。

通过以上步骤,你可以在CentOS 7上搭建一个稳定、安全的L2TP/IPsec VPN服务,满足中小型企业或个人用户的远程接入需求。

CentOS 7下配置L2TP/IPsec VPN服务详解,从安装到安全优化  第1张

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