在企业网络和远程办公场景中,虚拟专用网络(VPN)是保障数据传输安全的关键技术之一,对于仍在使用 CentOS 6 系统的老旧环境(尽管该版本已于2024年停止维护),搭建 IPsec 型的站点到站点或远程访问型 VPN 依然具有实际意义,本文将详细介绍如何在 CentOS 6 上基于 openswan 和 strongSwan 搭建一个稳定、安全的 IPsec VPN 服务,涵盖安装、配置、测试及常见问题排查。

确保系统已更新至最新补丁(建议升级到 EOL 后的最小安全版本,如 CentOS 6.10),并安装必要的依赖包:

yum update -y
yum install -y openswan xl2tpd iptables-services

openswan 是 CentOS 6 默认支持的 IPsec 实现,适合大多数标准场景,接下来编辑 /etc/ipsec.conf 文件,配置主站点(网关)与远程客户端的连接参数:

config setup
    plutostart=yes
    protostack=netkey
    nat_traversal=yes
    interfaces=%defaultroute
conn my-vpn
    left=YOUR_PUBLIC_IP
    leftsubnet=192.168.1.0/24
    right=%any
    rightsubnet=192.168.2.0/24
    authby=secret
    pfs=yes
    auto=add
    type=tunnel
    ike=aes256-sha1-modp1024
    phase2alg=aes256-sha1

然后配置预共享密钥(PSK),在 /etc/ipsec.secrets 中添加:

YOUR_PUBLIC_IP %any : PSK "your_strong_pre_shared_key"

重启服务并启用自动启动:

service ipsec start
chkconfig ipsec on

若需支持 L2TP/IPsec 客户端(如 Windows 或 iOS 设备),还需配置 xl2tpd:

编辑 /etc/xl2tpd/xl2tpd.conf

[lns default]
ip range = 192.168.2.100-192.168.2.200
local ip = 192.168.2.1
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tpd
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd

同时配置 /etc/ppp/options.xl2tpd 以启用 PAP/CHAP 认证,并设置 DNS 和路由:

ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
lock
noauth
require-chap

开启内核转发并配置防火墙规则(iptables):

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
service iptables save

完成以上步骤后,即可在客户端通过 L2TP/IPsec 连接服务器,验证连接是否成功,若出现“failed to establish tunnel”错误,请检查日志 /var/log/messagesipsec status 输出,确认 PSK 是否正确、端口(UDP 500/4500)是否开放、以及 NAT 穿透是否启用。

虽然 CentOS 6 已不再受官方支持,但上述配置在低风险、隔离环境中仍可作为临时方案使用,建议尽快迁移至 CentOS Stream 或 RHEL 8+ 等现代发行版,以获得持续的安全更新和更好的性能。

CentOS 6下搭建IPsec VPN服务的完整指南,从配置到安全优化  第1张

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