在当今远程办公和跨地域访问日益普遍的背景下,构建一个安全、稳定且易于管理的虚拟私人网络(VPN)服务变得尤为重要,CentOS作为一款广泛应用于企业服务器环境的Linux发行版,因其稳定性、安全性以及良好的社区支持,成为部署VPN服务器的理想选择之一,本文将详细介绍如何在CentOS 7或CentOS 8系统中搭建基于IPsec/L2TP协议的VPN服务器,适用于需要远程接入内网资源的企业用户或对安全性有较高要求的个人用户。

确保你的CentOS服务器已安装并更新至最新版本,同时具备公网IP地址(用于外网访问),建议使用SSH连接进行远程配置,并启用防火墙(firewalld)以增强安全性,我们需要安装必要的软件包,包括Openswan(用于IPsec)、xl2tpd(L2TP守护进程)以及PPP(点对点协议)模块:

sudo yum update -y
sudo yum install -y openswan xl2tpd ppp

安装完成后,配置IPsec主配置文件 /etc/ipsec.conf,该文件定义了加密算法、认证方式及密钥交换参数,示例配置如下(可根据实际需求调整):

config setup
    protostack=netkey
    plutodebug=none
    dumpdir=/var/lib/openswan/
    nat_traversal=yes
    interfaces=%defaultroute
conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT
    left=%defaultroute
    leftid=@yourserver.com
    right=%any
    rightauth=secret
    rightmodecfg=%any
    auto=add
    pfs=yes
    type=transport
    authby=secret

配置共享密钥文件 /etc/ipsec.secrets,其中包含客户端与服务器之间用于身份验证的预共享密钥(PSK):

%any %any : PSK "your_strong_pre_shared_key"

然后编辑 xl2tpd 配置文件 /etc/xl2tpd/xl2tpd.conf,设置监听端口、日志路径及拨号选项:

[global]
port = 1701
listen-addr = your_server_ip
[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

创建PPPoE选项文件 /etc/ppp/options.xl2tpd,指定DNS服务器和IP分配策略:

ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
modem
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

完成上述步骤后,重启相关服务并启用开机自启:

sudo systemctl restart ipsec xl2tpd
sudo systemctl enable ipsec xl2tpd

为了使流量正常转发,还需开启IP伪装(NAT)功能,在/etc/sysctl.conf中添加:

net.ipv4.ip_forward = 1

执行 sysctl -p 生效,根据你的防火墙规则开放UDP端口500(ISAKMP)和4500(NAT-T),以及L2TP使用的UDP 1701端口。

至此,一个功能完整的IPsec/L2TP VPN服务器已在CentOS上成功搭建,客户端可通过Windows、iOS或Android等设备连接,输入服务器IP、用户名和密码即可安全访问内网资源,此方案兼顾安全性与兼容性,适合中小型组织快速部署私有网络通道。

CentOS系统下搭建IPsec/L2TP VPN服务器完整指南(适用于企业与个人用户)  第1张

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