在现代网络环境中,安全远程访问已成为企业与个人用户的核心需求,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环境下的网络安全能力。

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






