在现代企业网络架构中,远程办公和跨地域通信变得越来越普遍,为了确保数据传输的安全性,IPSec(Internet Protocol Security)VPN 成为许多组织首选的加密隧道解决方案,它通过在网络层对数据包进行加密与认证,有效防止窃听、篡改和伪造攻击,是构建企业级安全远程接入的核心技术之一。
本文将详细介绍如何在Linux服务器(以Ubuntu 20.04为例)上使用StrongSwan搭建一个基于预共享密钥(PSK)的IPSec IKEv2 VPN服务,帮助你快速实现安全的远程访问功能。
第一步:准备环境
确保你的服务器具备公网IP地址,并已安装Ubuntu 20.04或更高版本系统,建议关闭防火墙或配置相应的端口规则(如UDP 500和4500用于IKE协议,ESP协议使用协议号50),执行以下命令更新系统并安装StrongSwan:
sudo apt update && sudo apt upgrade -y sudo apt install strongswan strongswan-pki -y
第二步:生成证书(可选但推荐)
虽然可以使用预共享密钥(PSK),但使用X.509证书能提供更强的身份验证机制,这里我们用strongswan-pki工具生成自签名CA证书和服务器证书:
sudo ipsec pki --gen --outform pem > caKey.pem sudo ipsec pki --self --in caKey.pem --dn "CN=My CA" --ca --outform pem > caCert.pem sudo ipsec pki --gen --outform pem > serverKey.pem sudo ipsec pki --pub --in serverKey.pem | ipsec pki --issue --ca caCert.pem --dn "CN=server.example.com" --outform pem > serverCert.pem
第三步:配置IPSec主文件
编辑 /etc/ipsec.conf 文件,定义连接参数:
config setup
charondebug="ike 1, knl 1, cfg 1"
uniqueids=yes
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev2
authby=secret
ike=aes256-sha256-modp2048!
esp=aes256-sha256!
conn my-vpn
left=%any
leftcert=serverCert.pem
leftid=@server.example.com
right=%any
rightauth=pubkey
rightauth2=pubkey
rightsourceip=10.10.10.0/24
auto=add
第四步:设置预共享密钥(PSK)
若不使用证书,需在 /etc/ipsec.secrets 中添加PSK:
%any %any : PSK "your_strong_pre_shared_key_here"
第五步:启动服务并测试
重启IPSec服务并启用开机自启:
sudo systemctl enable strongswan sudo systemctl start strongswan sudo ipsec status
客户端(如Windows、iOS或Android)可通过IKEv2协议连接到你的服务器IP,输入用户名(可选)、密码或证书(根据配置决定),即可建立安全隧道。
注意事项:
- 确保NAT穿透正确配置(通常无需额外操作)
- 客户端必须支持IKEv2协议
- 生产环境中建议使用证书而非PSK,提高安全性
- 定期轮换密钥和证书,避免长期暴露风险
通过以上步骤,你就可以成功搭建一个稳定、安全的IPSec VPN服务,满足远程办公、分支机构互联等需求,掌握这项技能,不仅提升个人网络运维能力,也为企业的网络安全打下坚实基础。

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






