ansibleguy.infra_openvpn
В РАБОЧЕЙ СТАДИИ! НЕ ИСПОЛЬЗОВАТЬ В ПРОИЗВОДСТВЕ!

Роль Ansible - VPN Клиент-to-Сайт с OpenVPN
ПРЕДУПРЕЖДЕНИЕ: Эта роль всё ещё в разработке. НЕ СТАВЬТЕ В ПРОИЗВОДСТВО!
Роль для развертывания конфигураций VPN Клиент-to-Сайт с OpenVPN.
Логи Molecule: Краткие, Полные
Версии OpenVPN
Эта роль использует OpenSource версию OpenVPN Community.
Почему стоит использовать общественную версию?
Плюсы:
- Нет лицензионных сборов - один сервер может обрабатывать тысячи клиентов без значительных затрат
- Все основные функции поддерживаются в открытой версии
- Управляемо с помощью Ansible
Минусы
Эта версия не имеет графического (веб-) интерфейса!
Если вам нужен красивый веб-интерфейс для работы => посмотрите на OpenVPN Access Server.
Тестировалось на:
- Debian 11
- Debian 12
Установка
# последняя версия
ansible-galaxy role install git+https://github.com/ansibleguy/infra_openvpn
# из галактики
ansible-galaxy install ansibleguy.infra_openvpn
# или в пользовательскую папку ролей
ansible-galaxy install ansibleguy.infra_openvpn --roles-path ./roles
# установка зависимостей
ansible-galaxy install -r requirements.yml
Использование
Хотите простой интерфейс для Ansible? Ознакомьтесь с моим Ansible WebUI.
Конфигурация
Определите конфигурацию по мере необходимости:
openvpn:
Вы можете использовать 'ansible-vault', чтобы зашифровать свои пароли:
ansible-vault encrypt_string
Исполнение
Запустите плейбук:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
Также доступны полезные теги:
* *
Для отладки ошибок - вы можете установить переменную 'debug' во время выполнения:
# ПРЕДУПРЕЖДЕНИЕ: Будет логироваться пароли!
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
Чтобы сервисы OpenVPN автоматически перезапускались (без интерактивных запросов):
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e auto_restart=yes
Функциональность
Установка пакетов
- Зависимости Ansible (минимальные)
Конфигурация *
Стандартная конфигурация: *
Выбор по умолчанию: *
Исключения:
Информация
Информация: Если вы хотите узнать больше о конфигурации OpenVPN-community - ознакомьтесь с их подробной документацией.
Интересные страницы:
Информация: ChromeOS использует формат Open-Network-Configuration (ONC).
Он имеет формат JSON и довольно трудно отлаживается, так как вы не получаете полезных сообщений об ошибках.
Шаблон профиля, предоставленный этой ролью, может не работать для каждого случая.
Если вам нужно устранить неполадки, посмотрите документацию ONC. Но имейте в виду: не каждая опция может работать так, как задокументировано.
Предупреждение: Если экземпляр OpenVPN должен поддерживать подключения клиента ChromeOS - вам нужно установить опцию 'openvpn.instances.[name].security.tls_crypt' в 'false', так как это в данный момент не поддерживается реализацией ChromeOS.
Примечание: эта роль в настоящее время поддерживает только системы на базе Debian.
Примечание: Большинство функций роли могут быть включены или отключены.
Для всех доступных опций смотрите стандартную конфигурацию в основном файле по умолчанию!
Предупреждение: Не каждая настройка/переменная, которую вы предоставляете, будет проверена на корректность. Плохая конфигурация может сломать роль!
Информация: Если вы хотите использовать
openvpn.unprivileged: true
для повышения системной безопасности, установленный бинарный файл OpenVPN должен поддерживатьiproute2
!Роль проверит, совместим ли бинарный файл, и завершится с ошибкой, если это не так!
Опции по обеспечению поддержки iproute2:
- Вам нужно будет использовать бинарный файл, скомпилированный с этой опцией
- Пере-компилируйте OpenVPN самостоятельно, как показано в этом примере скрипта (без 'uninstall').
- Или настройте роль для загрузки перекомпилированного бинарного файла из моего репозитория ansibleguy/openvpn-recompiled!
- Удалите существующие пакеты/binary OpenVPN
- Скопируйте/свяжите бинарный файл
openvpn
в/usr/local/bin
.
- Вам нужно будет использовать бинарный файл, скомпилированный с этой опцией
Информация: Если вы используете многофакторную аутентификацию, вы можете столкнуться с проблемами, когда некоторые клиенты (например, ChromeOS) не поддерживают второе поле ввода для второго секрета!
Вам может понадобиться установить
openvpn.server.auth.mfa_separator
на любые необычные символы. (например: <<<)Это позволяет вам ввести оба секрета (пароль) и (totp pin) в одном поле ввода! Например:
p4ssW0rd<<<001122
.Стандартный разделитель
:
всегда будет поддерживаться - даже если вы устанавливаете пользовательский. Это позволяет поддерживать оба способа.
ansible-galaxy install ansibleguy.infra_openvpn