strongswan:完全虚拟子网

strongswan:完全虚拟子网

我最近设置了一个 strongswan IPSec VPN,以便从我的 Android 智能手机访问我家庭服务器的一些非公开服务。我在其他一些设备上使用 OpenVPN 执行相同的任务,但为手机选择了 strongswan,因为 IKEv2 被认为(如果我错了请纠正我)在移动设备上非常节省资源。

当前 (openvpn) 设置由一台服务器(虚拟 IP:10.0.0.2)和多台客户端(全部位于 10.0.0.0/24 子网中)组成。所有方的路由都设置为仅通过 vpn 路由专用于此子网的数据包。(我想要从客户端访问我的服务器的本地子网,并且我也想要将我客户端的所有流量都路由到服务器)

现在我设法让 strongswan 运行起来(服务器:5.0.4,客户端:官方 strongswan android 应用程序 1.3.0),但还没有完全完成。首先,服务器配置:

config setup

conn %default
  keyexchange=ikev2

conn android
  left=%any
  leftauth=pubkey
  leftcert=serverCert.pem
  leftid=vpn.mydomain.com
  leftsourceip=10.10.10.128
  leftfirewall=yes
  right=%any
  rightsourceip=10.10.10.0/24
  rightauth=pubkey
  rightcert=clientCert_mymobilephone.pem
  rightauth2=eap-mschapv2
  auto=start

这会将 IP 10.10.10.1 分配给我的手机,但不会在其任何接口上为服务器分配 IP,这正是我想要的。我仍然可以通过 VPN 使用其本地 IP(192.168.1.2)访问我的服务器,但这并不是我真正想要的 ;)

我想将所有客户端(主要是笔记本)从 OpenVPN 迁移到 strongswan,但上述问题阻止我进行切换。我尝试了许多不同的 strongswan 配置,但没有一个能匹配我的 OpenVPN 配置。这有可能吗?如果可能,怎么做?

答案1

请注意,与 OpenVPN 不同,StrongSWAN 不打算以这种方式使用 - 它不会创建虚拟接口,也不会为隧道的两侧分配虚拟 IP 地址。您肯定可以要做的就是将地址 10.0.0.2 添加到服务器端的一个接口上

ip addr add 10.0.0.2/32 dev eth0

并将适当的“leftsubnet”指令添加到您的配置中,以便它成为 IPSEC 第 2 阶段交换的一部分。不用说,在这种情况下您需要使用带隧道的 ESP。

相关内容