AWS 上的 OpenVPN HA 设置

AWS 上的 OpenVPN HA 设置

我们在 AWS 上使用付费版 OpenVPN。现在我们想设置 HA,但我们找不到任何适合 AWS 上 OpenVPN HA 的解决方案。试过了OpenVPN 文档但它不符合 AWS 上的 HA 要求。有人可以分享/建议最佳解决方案吗?AWS 上的 OpenVPN 高可用性

答案1

启动两个 OpenVPN Access Server 实例,为每个实例分配一个弹性 IP。配置它们进行 LDAP 身份验证,这样您就不需要两次创建所有帐户,并保持它们在两个实例之间同步。

打开管理界面ip:443/admin并点击 LDAP -> 设置 LDAP:

https://openvpn.net/index.php/access-server/docs/admin-guides/190-how-to-authenticate-users-with-active-directory.html

您可以部署自己的 LDAP 服务,也可以使用:

https://aws.amazon.com/directoryservice

现在您必须决定希望客户端如何连接到这些实例。

最简单的方法是将两个 OpenVPN 访问服务器添加到客户端配置中:

remote-random
remote hostname-of-instance1
remote hostname-of-instance2

或者,您可以在 AWS Route53 中使用两个 IP 地址创建循环记录,并让 Route53 监视节点的可达性并在需要时删除无法访问的实例:

https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html

在这种情况下你只需要:

remote round-robin-record

在您的 OpenVPN 客户端配置文件中。

或者,您可以部署 AWS ELB,随时选择想要执行的实例数量,并让 ELB 根据需要生成和退出实例(当实例死亡或无法访问时)。

在这种情况下,您的 OpenVPN 客户端将连接到 ELB 本身的 IP 地址/主机名。

编辑:当其中一个 OpenVPN 服务器发生故障时,您的客户端将断开连接,并且您很可能希望它们自动重新连接到正在运行的 OpenVPN 服务器。您可以通过添加以下内容来实现此目的:

keepalive 10 120

到 OpenVPN 配置文件。更多信息:https://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html

使用此设置,客户端和服务器将每 10 秒互相 ping 一次。如果一方超过 120 秒未看到任何流量,则隧道将关闭并重新启动。

编辑2:

如果您不希望 OpenVPN 在用户每次重新连接时提示用户重新输入登录名/密码,请让他将其添加到他的 OpenVPN 客户端配置文件中:

auth-user-pass auth.txt

然后在配置文件的同一目录中创建一个名为 auth.txt 的文件,其中只有两行:

mylogin
mypassword

确保文件受到充分保护。

相关内容