我正在尝试建立一个实验室,在其中可以对 AWS 上在私有子网中运行的易受攻击的虚拟机运行 metasploitable,该子网可通过我设置的 OpenVPN 服务器访问。我可以连接到 OpenVPN 服务器,并且可以成功通过 ssh 连接到私有子网上的虚拟机,但运行漏洞利用需要虚拟机能够发起与攻击机器的连接 - 因此私有子网上的机器需要一条通往所连接 VPN 客户端的路由。私有实例无法访问互联网。
我有一个想法,我可以将私有子网客户端上的每个实例也设置为 VPN 网络,并将其设置为客户端可以相互通信。只要虚拟机有互联网连接,这种方法就可以奏效。我还在私有虚拟机前面使用 NAT 网关(使它们能够访问互联网,并能够连接到 openvpn 服务器的公共 IP)时让它在 AWS 上运行,但当它们连接到 VPN 时,我将无法使用亚马逊分配的私有 IP 连接到私有虚拟机。因此,如果不对网络进行 nmap 以找出实时情况,我就无法单独管理实例。我宁愿仍然通过它们的私有 IP 访问它们。
我尝试了“让它们成为客户端”的想法,而无需使用 NAT 网关,方法是更改 client.conf 以连接到 OpenVPN 服务器的私有 IP,但这样做时,我失去了与私有易受攻击的虚拟机的连接。我怀疑我失去访问权限是因为路由被推送到私有实例,将所有本地子网流量重新路由到 VPN,并且已经有本地流量的路由,但我使用route-nopull
配置选项时也没有连接(如果这是正确的,但不完全正确,我不确定当我这样做时要手动对路由表做什么来弥补route push
VPN 网络的不足)。
有没有更好的方法让私有实例访问连接的 VPN 客户端?
编辑:私有实例正在运行 openvpn v2.3.2,因此选择性路由拒绝我无法使用 :(
编辑 2:route-nopull
结合route 10.8.0.0 255.255.255.0
私有网络 vms 上的 client.conf 中的 [openvn 服务的网络] 似乎可以正常工作。在我的 VPC 上也可以工作,其中私有实例没有 NAT 网关(我将 openvpn 配置指向我的 openvpn 服务器的私有 IP)。不过,我仍然想知道是否有更好的方法来完成所有这些工作。
答案1
route-nopull
结合route 10.8.0.0 255.255.255.0
私有网络 vms 上的 client.conf 中的 [openvn 服务的网络] 似乎可以正常工作。在我的 VPC 上也可以工作,其中私有实例没有 NAT 网关(我将 openvpn 配置指向我的 openvpn 服务器的私有 IP)。