Ubuntu下搭建StrongSwan IPsec VPN服务的完整指南:从配置到安全优化

在当今企业级网络架构中,虚拟私有网络(VPN)已成为远程办公、站点间互联和安全通信的核心技术之一,StrongSwan 是一个开源的 IPsec 实现,广泛用于 Linux 系统上构建安全可靠的 IPsec 隧道,本文将详细介绍如何在 Ubuntu 系统(以最新 LTS 版本 22.04 或 24.04 为例)上部署 StrongSwan 作为 IPsec 客户端或服务器,并提供完整的配置步骤与常见问题解决方案。

确保你的 Ubuntu 系统已更新至最新状态:

sudo apt update && sudo apt upgrade -y

接下来安装 StrongSwan 及其依赖组件:

sudo apt install strongswan strongswan-libcharon strongswan-plugin-eap-mschapv2 -y

若你计划使用证书认证(推荐用于生产环境),还需安装 OpenSSL 和 CA 工具链:

sudo apt install openssl ca-certificates -y

基础配置文件结构

StrongSwan 的主配置文件位于 /etc/ipsec.conf,定义了连接参数;而密钥和证书配置则放在 /etc/ipsec.secrets 中。

示例 /etc/ipsec.conf(用于站点到站点 IPsec 隧道):

config setup
    charonstart=yes
    plutostart=yes
    strictcrlpolicy=no
    cachecrl=yes
conn %default
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev2
    ike=aes256-sha256-modp2048!
    esp=aes256-sha256!
conn my-vpn
    left=YOUR_SERVER_PUBLIC_IP
    leftid=@server.example.com
    leftcert=serverCert.pem
    leftsendcert=always
    right=REMOTE_CLIENT_IP
    rightid=@client.example.com
    rightcert=clientCert.pem
    auto=start

注意:leftright 分别代表本地和远程端点的 IP 地址;leftidrightid 是 X.509 证书中的标识符,必须唯一且匹配证书内容。

生成证书(自签名示例)

使用 OpenSSL 创建自签名 CA 和服务器/客户端证书:

# 生成服务器证书
openssl req -new -keyout server.key -out server.csr -subj "/CN=server.example.com"
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out serverCert.pem -days 3650
# 生成客户端证书(同理)
openssl req -new -keyout client.key -out client.csr -subj "/CN=client.example.com"
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out clientCert.pem -days 3650

将这些证书放入 /etc/ipsec.d/certs/ 目录,并设置正确权限:

sudo cp ca.crt serverCert.pem clientCert.pem /etc/ipsec.d/certs/
sudo chown root:root /etc/ipsec.d/certs/*
sudo chmod 600 /etc/ipsec.d/certs/*.key

配置 secrets 文件

编辑 /etc/ipsec.secrets,添加私钥信息(如果是预共享密钥,则在此处配置 PSK):

# Server private key
: RSA server.key
# Client private key
: RSA client.key

启动服务并验证

sudo ipsec start
sudo ipsec status

查看当前连接状态:

ipsec statusall

如果一切正常,你会看到连接处于“established”状态,可通过以下命令测试数据传输:

ping -I <tunnel_interface> remote_host_ip

安全建议与优化

  • 使用强加密套件(如 AES-256 + SHA-256)
  • 启用 IKEv2 而非旧版 IKEv1
  • 定期轮换证书(可结合 cron 自动化)
  • 配置防火墙规则允许 UDP 500 和 4500 端口
  • 使用 fail2ban 或日志监控防止暴力破解尝试

通过上述步骤,你可以在 Ubuntu 上成功部署一个稳定、安全的 StrongSwan IPsec VPN 网络,该方案适用于企业分支机构互联、远程员工接入等场景,具备良好的可扩展性和安全性,建议在正式上线前进行充分测试,并根据实际需求调整策略与性能参数。

生成 CA 私钥和证书  第1张

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