我有一台服务器在我想连接到Windows 7的Amazon EC2实例上运行strongSwan。strongSwan服务器位于专用networking上(networking172.16.0.0/17上的IP地址为172.16.1.15),并将stream量转发给其从公共IP地址的私人地址 – 这是亚马逊称之为“弹性IP”。
我想从另一个私有子网(10.127.0.0/22)分配客户端地址,并在两个私有子网之间路由通信。 请注意,172.16.0.0/17子网由Amazonpipe理,但10.127.0.0/22子网现在不受任何pipe理(除了我的ipsec.conf)。
我的Windows客户端连接到VPN,但无法连接到专用networking上的任何主机。 我的理论是,这与客户端路由或服务器上缺less一些iptables调用的问题有关,但是我对这两个域都不是非常了解,而且我陷入了困境。
ipsec version报告Linux strongSwan U4.5.2/K3.2.0-52-virtual echo 1 > /proc/sys/net/ipv4/ip_forward 这是/etc/ipsec.conf:
config setup plutostart=no conn %default keyexchange=ikev2 dpdaction=clear dpddelay=300s rekey=no conn dlpvpn left=172.16.1.15 leftauth=pubkey leftcert=openssl-cert.pem leftid=vpn.example.com leftsubnet=172.16.0.0/17 right=%any rightsourceip=10.127.0.0/22 rightauth=eap-mschapv2 rightsendcert=never eap_identity=%any auto=add
这是/etc/ipsec.secrets:
: RSA openssl-key.rsa TESTDOMAIN\testuser : EAP "testpassword"
这是/etc/strongswan.conf:
charon { threads = 16 dns1 = 172.16.3.246 }
我想要使用拆分隧道 – 只有专用172.16.0.0/17networking的stream量通过VPN,stream量绑定到Internet使用客户端的本地网关。 为此,我已经取消选中“在远程networking上使用默认网关”,并在Windows客户端上选中“禁用基于类的路由添加”。
连接成功完成。 ipconfig /all显示:
PPP adapter strongswan: Description . . . . . . . . . . . : strongswan IPv4 Address. . . . . . . . . . . : 10.127.0.1(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.255 Default Gateway . . . . . . . . . : DNS Servers . . . . . . . . . . . : 172.16.3.246
但是,我无法ping 172.16.0.0/17networking上的任何主机。 实际上,如果我执行nslookup,它会尝试联系我在strongswan.conf中指定的DNS服务器,但是该DNS服务器上的Wireshark显示它没有收到任何东西。 我甚至无法ping通strongSwan服务器本身的172.16.1.15地址。
我的理解是,路由规则必须在Windows上手动添加。 但是,他们需要做些什么呢? 我能想出的唯一答案是尝试添加172.16.0.0/17networking的路由,使用命令route add 172.16.0.0/17 172.16.1.15 if 45来使用VPN服务器的地址作为网关。 但是,这并没有改变任何东西 – 来自我的VPN客户端的stream量并没有达到172.16.0.0/17networking。
我会很感激任何帮助。 谢谢。
我终于有这个工作,感谢来自@ecdsa的帮助,以及来自#strongswan irc频道的一些帮助。
我的VPN客户端的路由规则不完整。 我需要添加这两个规则:
route add 172.16.1.15/32 10.127.0.1 route add 172.16.0.0/17 172.16.1.15
第一个为VPN服务器的私有IP地址添加一个路由,指定我的客户端的VPN分配的IP地址作为其网关( route print将显示为该接口的本地on-link AKA)。 第二个在我的问题中正在尝试处理路由规则 – 它为整个专用networking添加一条路由,指定VPN服务器作为网关。
我需要在服务器上指定leftsubnet=172.16.0.0/17 ,否则无论路由是什么,IPsec策略都不允许stream量到子网。
我需要在服务器上指定leftfirewall=yes ,以便它将相应的规则插入到iptables中。
我需要在我的Amazon实例上禁用“source / dest check”。 虽然我已经允许来自我的VPN子网的stream量进出亚马逊VPC仪表板的安全组 ,但是我没有意识到还有另外一个设置。 在EC2仪表板上,您可以右键点击一个实例并转到“更改源/目标检查”。 此检查默认启用,并防止我的VPNstream量永远不会离开VPN服务器(并阻止其他VPC主机到我的VPN子网的stream量进入VPN服务器)。