作为一名网络工程师,我经常被客户或团队成员问到:“如何搭建一个既安全又稳定的远程访问通道?”其中最常见的方式就是部署一个基于IPsec协议的虚拟专用网络(VPN),本文将详细讲解如何在一台运行Ubuntu 20.04或更高版本的Linux服务器上,使用StrongSwan这一开源IPsec实现来创建一个基于IP地址认证的VPN服务,该方案适用于企业分支机构互联、远程办公、以及安全数据传输等场景。
确保你的服务器具备公网IP地址,并且防火墙允许以下端口通过:
- UDP 500(IKE协商)
- UDP 4500(NAT-T封装)
- 如果使用UDP转发,还需开放GRE或ESP协议(如需支持隧道模式)
我们分步骤进行配置:
第一步:安装StrongSwan及相关工具
sudo apt update sudo apt install strongswan strongswan-plugin-eap-mschapv2 strongswan-plugin-openssl
第二步:配置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
ike=aes256-sha256-modp2048!
esp=aes256-sha256!
conn my-vpn
left=%any
leftcert=serverCert.pem
leftid=@mycompany.com
right=%any
rightauth=eap-mschapv2
rightdns=8.8.8.8
auto=add
第三步:配置用户认证信息
创建用户数据库文件 /etc/ipsec.secrets,添加用户名和密码(建议使用强密码):
PSK "your_pre_shared_key_here"
user1 : EAP "password123"
第四步:生成证书(可选但推荐)
如果你希望使用证书而非预共享密钥(PSK),可以使用EasyRSA或OpenSSL生成服务器和客户端证书。
openssl req -new -x509 -days 365 -keyout serverKey.pem -out serverCert.pem
第五步:启用IP转发与NAT规则
编辑 /etc/sysctl.conf 启用IP转发:
net.ipv4.ip_forward = 1
然后应用更改:
sudo sysctl -p
接着配置iptables规则,使客户端流量能正确路由:
sudo iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE sudo iptables -A FORWARD -s 192.168.100.0/24 -d 192.168.100.0/24 -i tun0 -o eth0 -j ACCEPT
第六步:启动并测试服务
重启IPsec服务:
sudo systemctl restart strongswan sudo systemctl enable strongswan
在客户端(如Windows、iOS、Android)配置IPsec IKEv2连接,输入服务器IP、用户名、密码及预共享密钥即可连接。
这种基于IP地址的IPsec VPN方案具有高安全性(支持AES加密、EAP身份验证)、易维护性(无需复杂证书管理)和良好的跨平台兼容性,对于需要远程接入内部资源的企业来说,是一个值得推荐的技术方案,实际部署时还需结合日志监控、定期轮换密钥、以及多因素认证进一步提升安全性。

半仙加速器-海外加速器|VPN加速器|vpn翻墙加速器|VPN梯子|VPN外网加速