Мы используем платную версию OpenVPN на AWS. Теперь мы хотим настроить HA, но не смогли найти подходящего решения для HA OpenVPN на AWS. Пытался Документ OpenVPN но он не соответствует требованиям высокой доступности на AWS. Может ли кто-нибудь поделиться / предложить лучшее решение для OpenVPN HA НА AWS
Запустите два экземпляра OpenVPN Access Server, назначьте каждому из них эластичный IP-адрес. Настройте их для аутентификации LDAP, чтобы вам не приходилось создавать все учетные записи дважды и синхронизировать их между двумя экземплярами.
Откройте интерфейс администратора на ip:443/admin
и нажмите LDAP -> Установить LDAP:
Вы можете развернуть свою собственную службу 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 будут подключаться к IP-адресу / имени хоста самого ELB.
РЕДАКТИРОВАТЬ: когда один из серверов OpenVPN выходит из строя, ваши клиенты будут отключены, и, скорее всего, вы хотите, чтобы они автоматически повторно подключились к действующему серверу OpenVPN. Вы можете добиться этого, добавив:
keepalive 10 120
в файл конфигурации OpenVPN. Больше информации на: https://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html
С этим параметром клиенты и серверы будут пинговать друг друга каждые 10 секунд. Если одна сторона не видит трафика более 120 секунд, туннель отключается + перезапускается.
РЕДАКТИРОВАТЬ2:
Если вы не хотите, чтобы OpenVPN предлагал пользователю повторно вводить логин / пароль при каждом повторном подключении, попросите его добавить это в конфигурационный файл клиента OpenVPN:
auth-user-pass auth.txt
Затем создайте файл с именем auth.txt в том же каталоге файла конфигурации, всего с двумя строками:
mylogin
mypassword
Убедитесь, что файл надежно защищен.