Ubuntu系统下配置IPsec VPN的完整指南,从安装到实战部署

dfbn6 2026-04-05 VPN翻墙 5 0

在现代网络环境中,安全远程访问已成为企业与个人用户的核心需求,IPsec(Internet Protocol Security)作为一种广泛采用的网络安全协议,能够为IP通信提供加密、认证和完整性保护,对于使用Ubuntu系统的网络管理员或开发者而言,掌握在Ubuntu上搭建IPsec VPN的方法至关重要,本文将详细介绍如何在Ubuntu 20.04/22.04等主流版本中,通过StrongSwan这一开源IPsec实现,完成IPsec站点到站点(Site-to-Site)或远程访问(Remote Access)模式的配置。

确保你的Ubuntu服务器具备公网IP地址,并开放必要的端口:UDP 500(IKE)、UDP 4500(NAT-T),以及可选的TCP 1723(如果需要兼容PPTP),登录服务器后,执行以下命令更新系统并安装StrongSwan:

sudo apt update && sudo apt upgrade -y
sudo apt install strongswan strongswan-pki -y

生成CA证书和服务器证书是关键步骤,运行以下命令创建PKI结构:

sudo ipsec pki --gen --outform pem > ca-key.pem
sudo ipsec pki --self --ca --in ca-key.pem --dn "CN=MyCA" --outform pem > ca-cert.pem
sudo ipsec pki --gen --outform pem > server-key.pem
sudo ipsec pki --pub --in server-key.pem | ipsec pki --issue --ca ca-cert.pem --lifetime 3650 --in server-key.pem --dn "CN=server.example.com" --outform pem > server-cert.pem

将证书复制到StrongSwan配置目录:

sudo cp ca-cert.pem /etc/ipsec.d/certs/
sudo cp server-cert.pem /etc/ipsec.d/certs/
sudo cp server-key.pem /etc/ipsec.d/private/

然后编辑 /etc/ipsec.conf 文件,配置IPsec策略,以站点到站点为例,假设本地网段为192.168.1.0/24,远程网段为192.168.2.0/24:

config setup
    charondebug="ike 1, knl 1, cfg 1"
    uniqueids=no
conn my-vpn
    keyexchange=ikev2
    ike=aes256-sha256-modp2048!
    esp=aes256-sha256!
    left=your_public_ip
    leftid=@server.example.com
    leftcert=server-cert.pem
    leftsubnet=192.168.1.0/24
    right=remote_public_ip
    rightid=@client.example.com
    rightcert=client-cert.pem
    rightsubnet=192.168.2.0/24
    auto=start

/etc/ipsec.secrets 中添加私钥密码(如使用密钥文件无需此步):

 RSA server-key.pem

重启服务并检查状态:

sudo systemctl restart strongswan
sudo ipsec status

若一切正常,你将看到“established”状态表示隧道已建立,可通过 ipsec statusall 查看详细连接信息,建议配置日志监控(如rsyslog)以追踪连接异常。

本方案不仅适用于企业内部网络互联,还可扩展为远程办公场景——只需为客户端生成证书并配置StrongSwan客户端即可,虽然初期配置略复杂,但一旦掌握其原理与流程,便能灵活应对多种IPsec应用场景,显著提升Ubuntu环境下的网络安全能力。

Ubuntu系统下配置IPsec VPN的完整指南,从安装到实战部署

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