我最近设置了一个 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 分配给服务器,这正是我想要的。我仍然可以使用其本地 IP (192.168.1.2) 通过 VPN 访问我的服务器,这并不是我真正想要的;)
我想将所有客户端(主要是笔记本电脑)从 OpenVPN 迁移到 strongswan,但上述问题阻止我进行切换。我尝试了许多不同的 strongswan 配置,但没有一个能与我的 OpenVPN 配置相匹配。那有可能吗,如果有的话怎么办?
请注意,与 OpenVPN 不同,StrongSWAN 不打算以这种方式使用 - 它不创建虚拟接口,也不向隧道两侧分配虚拟 IP 地址。您绝对可以做的是将地址 10.0.0.2 添加到服务器端的接口之一
并在您的配置中添加适当的“leftsubnet”指令,使其成为 IPSEC 第 2 阶段交换的一部分。不用说,在这种情况下,您需要使用带隧道的 ESP。