ansible_pritunl_vpn
Ansible роль для Pritunl VPN
Эта роль установит Pritunl VPN.
**
Что такое Pritunl
Pritunl - это сервер VPN с открытым исходным кодом и панелью управления. Он дает пользователю возможность использовать протокол OpenVPN с удобным веб-интерфейсом.
Требования
Добавление новых требований
Это приложение должно работать на сервере Linux, который может быть на CentOS, Amazon Linux, Debian или Ubuntu.
Pritunl использует MongoDB в качестве базы данных, поэтому у вас должен быть установлен сервер MongoDB.
Настройка базы данных
Когда Pritunl запускается в первый раз, на веб-сервере, работающем на порту 443, появится запрос на настройку базы данных. Этот запрос потребует ввести ключ настройки и MongoDB URI. Чтобы получить ключ настройки, зайдите на сервер по SSH и выполните команду sudo pritunl setup-key
, которая вернет ключ настройки. По умолчанию MongoDB URI будет заполнен URI для локального сервера MongoDB. Это значение следует оставить таким, если сервер MongoDB работает на том же сервере, что и экземпляр Pritunl. Для кластеров Enterprise обратитесь к документации MongoDB по формату строки подключения URI. В качестве альтернативы это можно установить непосредственно в файле /etc/pritunl.conf
или с помощью команды CLI. Дополнительную информацию о команде CLI можно найти в разделе Команды. Некоторые серверы MongoDB аутентифицируются в базе данных admin и требуют включения параметра authSource=admin
в URI.
О подписках
Подписки можно приобрести на главной странице или через веб-консоль работающего сервера Pritunl. Информация о кредитной карте безопасно отправляется из веб-браузера напрямую в Stripe и никогда не хранится или передается на другие сервера. Сервер Pritunl можно обновить в любое время без необходимости перенастройки при обновлении до подписки.
Ключ лицензии
После создания подписки лицензия будет отправлена на электронный адрес, указанный при оформлении заказа. Ключ лицензии не нужно использовать на том же сервере, на котором была создана подписка. Премиум подписки могут использоваться только на одном сервере, а лицензии Enterprise - только для одного кластера. Кластер - это группа серверов Pritunl, подключенных к одной базе данных MongoDB. Для тестирования ключи лицензий можно использовать несколько раз, но продолжение их использования на нескольких серверах приведет к аннулированию подписки.
Счет-фактура и долгосрочные подписки
Некоторые компании требуют полные счета-фактуры и годовые подписки. Это доступно только для подписок Enterprise, для которых нет скидок на годовые подписки. Чтобы запросить годовой счет-фактуру для подписки Enterprise, отправьте информацию о счете на contact@pritunl.com, включая адрес электронной почты для получения счета и адрес для получения ключа лицензии.
Скидка для образовательных учреждений
Существует 50% скидка для государственных школ. Это может быть применено к существующей месячной подписке или к годовой подписке. Для получения скидки на месячные подписки сначала начните пробный период, затем отправьте адрес электронной почты, использованный для создания подписки, на contact@pritunl.com. Для годовой подписки выполните указания выше.
**
АУТЕНТИФИКАЦИЯ
**
Аутентификация WireGuard в Pritunl использует ключи, уже содержащиеся в профиле клиента. Это позволяет перейти на WireGuard без необходимости повторно импортировать профиль. Многие администраторы не настраивают действительный HTTPS сертификат, и использование HTTPS не требуется для обеспечения безопасной аутентификации. Аутентификация осуществляется с помощью трех ключей, что обеспечивает несколько уровней шифрования и авторизации.
Ключ клиента SHA512-HMAC (Авторизация)
Клиент использует секрет SHA512-HMAC для подписывания каждого запроса на соединение. Сервер также использует этот секрет для подписывания ответа, позволяя клиенту проверить ответ подключения. Это та же система аутентификации, которая используется для авторизации синхронизации конфигурации клиента, которая синхронизирует изменения конфигурации профиля, такие как адреса хостов и изменения порта сервера (закрытые ключи никогда не синхронизируются).Асимметричный ключ клиента/сервера NaCl (Авторизация + Шифрование)
Клиент использует публичный ключ NaCl для сервера, который включен в профиль клиента. Это обеспечивает асимметричное шифрование запроса подключения от клиента к серверу. Сервер зашифрует ответ с помощью публичного ключа клиента NaCl, обеспечивая шифрование ответа. Клиент также проверяет ответ сервера, используя публичный ключ сервера NaCl. Это та же система аутентификации, которая обеспечивает дополнительный уровень шифрования и авторизации, доступный в соединениях OpenVPN с паролями и кодами двухфакторной аутентификации.Асимметричный ключ клиента RSA-4096 (Авторизация)
Сертификат и ключ клиента RSA используются для подписания каждого запроса на соединение. Сервер использует это для проверки запроса на соединение клиента. Это тот же сертификат, который используется для проверки соединений OpenVPN.
Каждое соединение WireGuard использует новый ключ WireGuard. Это делается для обеспечения наивысшего уровня безопасности, но может замедлить сетевое соединение, когда пользователь возвращается к компьютеру, который был в состоянии сна. Закрытый ключ WireGuard хранится в памяти фонового сервиса клиента Pritunl и также в конфигурационном файле WireGuard. WireGuard использует бесконечный дизайн, и этот закрытый ключ может быть использован злоумышленником для перехвата соединения, даже если используется многофакторная аутентификация. В условиях высокой безопасности важно учитывать, что соединения OpenVPN с многофакторной аутентификацией не будут иметь таких уязвимостей. По этой причине сервер быстро отзывает ключи WireGuard неактивных клиентов, чтобы ограничить вероятность этого. Сервер также проверяет, что ключи не повторно используются.
Как только клиент подключается, он будет отправлять запрос ping на сервер каждые 10 секунд. Этот запрос позволяет клиенту быстро обнаружить неработающий канал и переключиться примерно за 13 секунд. Если сервер не получает запрос ping в течение 6 минут, он отключит пользователя и отзовет публичный ключ.
Переменные роли
pritunl_mongodb_uri: 'mongodb://localhost:27017/pritunl?authSource=admin&ssl=true'
pritunl_mongodb_uri
URI MongoDB для подключения Pritunl к базе данных.
Пример сценария
Вот пример того, как использовать вашу роль (например, с переменными, переданными в качестве параметров):
- hosts: servers
vars:
pritunl_mongodb_uri: 'mongodb://localhost:27017/pritunl?authSource=admin&ssl=true'
roles:
- { role: danielcrisap.ansible-pritunl-vpn }
Лицензия
MIT ©
Информация об авторе
Эта коллекция была создана в 2020 году Даниэлем Кристианом.
ansible-galaxy install danielcrisap/ansible-pritunl-vpn