在企业网络环境中,安全可靠的远程访问是保障业务连续性的关键,IPSec(Internet Protocol Security)作为一种成熟、标准化的网络安全协议,广泛用于构建虚拟专用网络(VPN),实现数据加密传输和身份验证,对于运行CentOS操作系统的服务器或边缘设备,配置IPSec VPN是一项常见但需谨慎执行的任务,本文将详细介绍如何在CentOS 7/8系统中使用strongSwan开源项目搭建IPSec IKEv2协议的站点到站点(Site-to-Site)或远程访问(Remote Access)型VPN服务。

确保你的CentOS主机具备以下前提条件:

  • 系统版本为CentOS 7或8(推荐使用8以获得更好的安全性支持)
  • 已安装并配置好静态IP地址(192.168.1.100)
  • 开放必要的端口(UDP 500、UDP 4500,以及ESP协议50和AH协议51)
  • 拥有合法的SSL/TLS证书(若使用IKEv2认证)

第一步:安装strongSwan

sudo yum install -y strongswan

此命令会安装IPSec核心组件与常用插件,包括IKEv2、EAP、XAuth等认证机制。

第二步:配置strongSwan主文件 /etc/strongswan.conf 该文件定义了全局参数和加载模块,示例配置如下:

charon {
    load_modular = yes
    duplicar_detect = no
    compress = yes
    plugins {
        attr {
            default = yes
        }
    }
}

第三步:配置IPSec策略(/etc/ipsec.conf) 这是最关键的部分,定义连接规则和加密算法,以下是一个站点到站点示例:

conn my-vpn
    left=192.168.1.100
    leftid=@myserver.example.com
    leftsubnet=192.168.1.0/24
    right=203.0.113.50
    rightid=@remote-server.example.com
    rightsubnet=192.168.2.0/24
    ike=aes256-sha256-modp2048!
    esp=aes256-sha256!
    keyexchange=ikev2
    auto=start

注意:leftidrightid 应使用FQDN或IP地址,用于证书匹配;auto=start 表示启动时自动连接。

第四步:设置预共享密钥(PSK)或证书认证 若使用PSK,编辑 /etc/ipsec.secrets

%any %any : PSK "your-strong-pre-shared-key"

若使用证书,则需配置CA、服务器证书和客户端证书路径,并启用certload选项。

第五步:启动服务并测试

sudo systemctl enable strongswan
sudo systemctl start strongswan
sudo ipsec status

输出应显示“installed”状态表示连接已建立,可使用ipsec up my-vpn手动触发连接。

第六步:防火墙与路由配置 确保iptables或firewalld允许IPSec流量:

sudo firewall-cmd --permanent --add-port={500,4500}/udp
sudo firewall-cmd --reload

在路由表中添加目标子网的静态路由(如:ip route add 192.168.2.0/24 via 192.168.1.1)。

建议定期检查日志(journalctl -u strongswan)以排查连接失败问题,生产环境中应使用证书而非PSK,并启用审计功能,通过上述步骤,你可以在CentOS上成功部署一个稳定、安全的IPSec VPN解决方案,满足跨地域办公、云环境互联等多种场景需求。

CentOS系统下配置IPSec VPN,从基础到实战详解  第1张

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