我在 VPC 内的 EC2 实例上安装了一个可运行的 OpenVPN 服务器。它用于允许远程用户访问私有子网内的服务。到目前为止,这是一个足够的解决方案,但目前所有客户端都被视为 VPN 服务器 IP。
是否可以在 EC2 实例上配置 OpenVPN 服务器并为客户端分配 IP 地址(最好是每个用户静态的)?
假设我有一个10.0.0.0/16
带有10.0.10.0/24
子网 A、10.0.11.0/24
子网 B 的 VPC。我想将子网 2 中的 IP 地址分配给 VPN 客户端。
答案1
您实际上正在使用 NATed 选项(默认),这意味着所有客户端都将被视为 OpenVPN 服务器本身。
您可以使用另一个选项,即路由。在这种情况下,您的客户端将被分配您定义的范围内的 IP 地址(示例中为 10.0.11.0/24)。请确保此子网(10.0.11.0/24)不存在于您的 VPC 中,或者您的 OpenVPN 服务器仅位于此子网中。
您唯一需要记住的是,您的用户正在访问的私有子网中的实例需要知道如何访问用户的 IP 地址(在本例中为 10.0.11.0/24),因为 AWS 不知道将发往这个“新”子网的流量路由到哪里,因此将被丢弃。
解决方法如下:
- 向您的 AWS 路由表(在您的私有子网上)添加一条路由,以将所有发往 10.0.11.0/24 的流量发送到您的 OpenVPN 服务器。
- 禁用 OpenVPN 服务器实例上的源/目标检查
- 确保 OpenVPN 服务器实例的安全组允许来自 10.0.11.0/24 的流量
- 如果您正在使用 NACL,请确保您也没有阻止此流量。