在现代企业网络架构中,虚拟私人网络(VPN)是实现跨地域安全通信的核心技术之一,尤其是在云环境和混合办公日益普及的今天,如何高效、稳定地搭建一个符合安全标准的IPsec隧道显得尤为重要,Libreswan是一款开源的IPsec实现工具,基于StrongSwan和Openswan的改进,支持IKEv1和IKEv2协议,广泛应用于Linux系统中,特别适合用于构建站点到站点(Site-to-Site)或远程访问(Remote Access)类型的IPsec连接。

本文将详细介绍如何使用Libreswan配置一个站点到站点的IPsec隧道,确保两个不同地理位置的网络能够通过加密通道安全通信。

准备工作
确保两台服务器(我们称为“网关A”和“网关B”)都安装了Libreswan,以Ubuntu/Debian为例,可通过以下命令安装:

sudo apt update
sudo apt install libreswan

安装完成后,检查服务状态:

sudo systemctl status ipsec

若未运行,启动并设置开机自启:

sudo systemctl enable ipsec
sudo systemctl start ipsec

配置主文件 /etc/ipsec.conf
该文件定义了全局参数和连接策略,以下是一个典型站点到站点配置示例:

config setup
    protostack=netkey
    plutodebug=all
    uniqueids=yes
conn site-to-site
    left=192.168.1.100          # 网关A公网IP
    leftsubnet=192.168.1.0/24   # 网关A内网子网
    right=203.0.113.50          # 网关B公网IP
    rightsubnet=192.168.2.0/24  # 网关B内网子网
    authby=secret               # 使用预共享密钥(PSK)
    type=tunnel
    auto=start                  # 启动时自动建立连接
    keyexchange=ikev2           # 推荐使用IKEv2,安全性更高
    ike=aes256-sha2_256-modp2048
    esp=aes256-sha2_256-modp2048

配置预共享密钥(PSK)
编辑 /etc/ipsec.secrets 文件,添加如下内容:

168.1.100 203.0.113.50 : PSK "your_strong_pre_shared_key_here"

注意:建议使用强随机字符串作为PSK,避免使用简单密码,提高安全性。

防火墙与路由配置
确保两端网关的防火墙允许IPsec相关端口通行(UDP 500和4500),

sudo ufw allow 500/udp
sudo ufw allow 4500/udp

在每台网关上启用IP转发功能(在 /etc/sysctl.conf 中设置):

net.ipv4.ip_forward=1

然后应用更改:

sudo sysctl -p

测试与验证
配置完成后,重启IPsec服务:

sudo systemctl restart ipsec

查看连接状态:

ipsec status

如果显示“connected”,说明隧道已成功建立,可以进一步ping通对端内网地址(如从网关A ping 192.168.2.1),验证数据是否通过加密隧道传输。

常见问题排查

  • 若连接失败,请检查日志:journalctl -u ipsec
  • 确认两端时间同步(NTP),否则IKE协商可能失败。
  • 检查是否启用了正确的协议版本(IKEv1 vs IKEv2),部分旧设备可能不兼容。
  • 使用 tcpdump 抓包分析流量是否正常到达对方网关。


Libreswan凭借其稳定性、灵活性和强大的社区支持,成为企业级IPsec部署的理想选择,通过本文所述步骤,用户可以快速完成站点到站点的IPsec隧道配置,为跨网络通信提供安全、可靠的数据通道,建议在生产环境中结合证书认证(而非仅PSK)进一步提升安全性,并定期更新配置与固件,防范潜在风险。

Libreswan VPN配置详解,构建安全可靠的IPsec站点到站点连接  第1张

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