Amazon-Web-Services

AWS 上的 OpenVPN HA 設置

  • December 3, 2019

我們在 AWS 上使用付費版本的 OpenVPN。現在我們想要設置 HA,但我們在 AWS 上找不到任何適合 OpenVPN HA 的解決方案。嘗試過OpenVPN 文件,但它不符合 AWS 上 HA 的要求。任何人都可以分享/建議OpenVPN HA ON AWS的最佳解決方案嗎

啟動兩個 OpenVPN 訪問伺服器實例,為每個實例分配一個彈性 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

或者,您可以使用兩個 IP 地址在 AWS Route53 中創建循環記錄,並讓 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

確保文件得到充分保護。

引用自:https://serverfault.com/questions/908239