peervpn

role-peervpn

Эта роль Ansible используется в Kubernetes the not so hard way with Ansible (at Scaleway) - Часть 3 - PeerVPN. Она предназначена для настройки PeerVPN для Ubuntu 16.04/18.04 (но должна работать и на всех Linux-системах, использующих systemd). С помощью PeerVPN вы можете легко установить полностью соединённую VPN между дата-центрами и всеми узлами, которые вам нужны. Вам нужен хотя бы один хост с общедоступным интерфейсом (по умолчанию это Порт 7000 протокол UDP). Одной из простых конфигураций может быть использование этого общедоступного хоста для вашей настройки peervpn_conf_initpeers. Поиск других хостов в вашей VPN будет автоматически выполнен PeerVPN.

PeerVPN устанавливает свой собственный TAP-интерфейс для этой цели. Имя этого TAP-интерфейса по умолчанию — tap0. Чтобы изменить имя, укажите другое значение переменной peervpn_conf_interface.

Чтобы сгенерировать надежный секретный пароль для вашего заранее заданного ключа PeerVPN, вы можете использовать:

openssl rand -base64 382 | tr -d '\n' && echo

Поскольку это заранее заданный ключ, он ДОЛЖЕН быть использован на всех хостах, где вы устанавливаете PeerVPN и используете одно и то же имя сети. В противном случае подключение не будет работать. По умолчанию заранее заданный ключ — default, который, конечно, нужно изменить ;-)

Версии

Я тегирую каждый релиз и стараюсь придерживаться семантического версионирования. Если вы хотите использовать роль, я рекомендую проверять последнюю метку. Основная ветка — это в основном разработка, а теги обозначают стабильные релизы. Но в общем я стараюсь поддерживать основную ветку в хорошем состоянии. Тег 1.0.0+r044 означает, что это релиз 1.0.0 этой роли и он использует PeerVPN r044. Если сама роль изменится, будет увеличен номер версии X.Y.Z. Если изменится версия PeerVPN, будет увеличен rXXX, а также уровень патча роли (например, 1.0.0 -> 1.0.1). Это позволяет тегировать исправления ошибок и новые основные версии роли, пока она всё ещё разрабатывается для конкретного релиза PeerVPN.

Требования

Разрешите трафик на порту 7000 протокол UDP (по умолчанию), если у вас установлены правила файервола. Вы также ДОЛЖНЫ добавить переменную peervpn_conf_initpeers. Для этой переменной нет значения по умолчанию! IPv6 ВКЛЮЧЁН по умолчанию. Если вы не хотите его использовать, добавьте переменную peervpn_conf_enableipv6: no.

Переменные роли

В общем, вам нужно изменить очень few переменных (см. ниже). Но посмотрите на templates/etc/peervpn/peervpn.conf.j2 для примеров и полного описания переменных.

Переменные без значений по умолчанию:

peervpn_conf_initpeers
peervpn_conf_engine
peervpn_conf_ifconfig6
peervpn_conf_upcmd
peervpn_conf_chroot

Переменные со значениями по умолчанию:

peervpn_version: "peervpn-0-044"
peervpn_install_directory: "/opt/{{peervpn_version}}"
peervpn_dest: "/usr/local/sbin"
peervpn_conf_networkname: "peervpn"
peervpn_conf_psk: "default"
peervpn_conf_enabletunneling: "yes"
peervpn_conf_interface: "tap0"
peervpn_conf_local: "0.0.0.0"
peervpn_conf_port: 7000
peervpn_conf_ifconfig4: "10.0.0.1/24"
peervpn_conf_sockmark: 0
peervpn_conf_enableipv4: "yes"
peervpn_conf_enablenat64clat: "no"
peervpn_conf_enablerelay: "no"
peervpn_conf_enableprivdrop: "yes"
peervpn_conf_user: "nobody"
peervpn_conf_group: "nogroup"

Вы ДОЛЖНЫ указать значение для peervpn_conf_initpeers, чтобы использовать PeerVPN (либо по хосту в директории Ansible host_vars, либо по группе хостов в директории group_vars. Например, если вы укажете peervpn_conf_initpeers: "host.example.net 7000", PeerVPN попытается подключиться к host.example.net на порту 7000 через UDP, чтобы установить соединение.

Вы должны как минимум изменить следующие переменные:

peervpn_conf_initpeers: Имя хоста и порт, к которым PeerVPN должен подключиться, чтобы стать частью VPN. peervpn_conf_networkname: Имя вашей VPN. peervpn_conf_psk: Предварительный ключ. Как генерировать хороший пароль для заранее заданного ключа, смотрите выше в введении. peervpn_conf_ifconfig4: IP-адрес узла и подсеть в записи CIDR. Эта переменная должна быть указана для каждого хоста.

Пример плейбука

- hosts: webservers
  roles:
    - peervpn

Лицензия

GNU GENERAL PUBLIC LICENSE версия 3

Информация об авторе

http://www.tauceti.blog

О проекте

Installes PeerVPN on a node

Установить
ansible-galaxy install githubixx/ansible-role-peervpn
Лицензия
gpl-3.0
Загрузки
128
Владелец
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)