strongswan:完全虚拟子网

我最近build立了一个strongswan IPSec VPN来从我的android智能手机访问我的家庭服务器的一些非公共服务。 我在一些其他设备上使用OpenVPN来完成同样的任务,但是select了strongswan作为手机,因为我认为IKEv2(如果我错了,请纠正我)在移动设备上非常友好。

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

现在我设法使用strongswan(服务器:5.0.4,客户端:官方strongswan android应用程序1.3.0),但我还没有完全。 首先,服务器configuration:

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,但是上面的问题阻止了我进行切换。 我尝试了许多不同的strongswanconfiguration,但没有一个能匹配我的OpenVPNconfiguration。 那甚至有可能,如果是这样的话?

请注意,与OpenVPN相反,StrongSWAN并不打算以这种方式使用 – 它不会创build虚拟接口,也不会为隧道两端分配虚拟IP地址。 你绝对可以做的是将地址10.0.0.2添加到服务器端的一个接口

 ip addr add 10.0.0.2/32 dev eth0 

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