ansibleguy.infra_openvpn

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

Логотип OpenVPN

Роль Ansible - VPN Клиент-to-Сайт с OpenVPN

ПРЕДУПРЕЖДЕНИЕ: Эта роль всё ещё в разработке. НЕ СТАВЬТЕ В ПРОИЗВОДСТВО!

Роль для развертывания конфигураций VPN Клиент-to-Сайт с OpenVPN.

Купите мне кофе

Статус теста Molecule Статус теста YamlLint Статус теста PyLint Статус теста Ansible-Lint Ansible Galaxy

Логи 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
Лицензия
other
Загрузки
1.9k
Владелец
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg