OT-OSM.openvpn
Ansible Роль: OpenVPN
Роль Ansible для установки и настройки сервера OpenVPN.
История версий
| Дата | Версия | Описание | Изменено |
|---|---|---|---|
| 16 августа 2018 | v.1.0.0 | Первоначальный черновик | Yashvinder Hooda |
| 8 сентября 2018 | v.1.0.0 | Добавлена роль для Debian | Sudipt Sharma |
| 9 октября 2018 | v.1.0.0 | Обновлён Readme | Sudipt Sharma |
| 13 ноября 2018 | v.1.0.0 | Обновлено для RHEL | Sudipt Sharma |
| 28 февраля 2019 | v.1.0.0 | Добавлен Gitlab-CI | Mahesh Kumar |
| 31 мая 2019 | v.1.0.0 | Добавлены тестовые случаи molecule | Ekansh Jain |
| 13 января 2020 | v.1.0.0 | Обновлено для AMAZON | Sudipt Sharma |
| 11 февраля 2020 | v.1.0.0 | Добавлены теги для создания и отзыва клиентов | Sudipt Sharma |
| 18 апреля 2020 | v.1.0.0 | Интегрирован circle-ci | Sudipt Sharma |
Основные особенности
- Эта роль автоматизирует настройку VPN с помощью OpenVPN. Роль состоит из двух мета-файлов:
- clientlist: Введите имя клиента, которого хотите добавить.
- revokelist: Введите имена клиентов, которых хотите отозвать.
Примечание:
Отключите проверку источника/назначения.
Из списка экземпляров выберите VPN-экземпляр, затем выберите Сеть -> Изменить проверку источника/назначения. Проверьте в выпадающем меню. Затем нажмите Да, отключить. Это необходимо, иначе ваш VPN
сервер не сможет подключиться к другим экземплярам EC2.
Поддерживаемые ОС
- CentOS:7
- CentOS:6
- Ubuntu:bionic
- Ubuntu:xenial
- Amazon AMI
Зависимости
- Не требуется :)
Структура каталога
osm_openvpn
.
├── clientlist
├── defaults
│ └── main.yml
├── files
│ └── make_config.sh
├── handlers
│ └── main.yml
├── media
│ ├── add_connection.png
│ ├── addvpn.jpg
│ ├── client.png
│ ├── import_file.png
│ ├── save_key.png
│ ├── select_file.png
│ └── vpn.jpg
├── meta
│ └── main.yaml
├── molecule
│ └── default
│ ├── Dockerfile.j2
│ ├── INSTALL.rst
│ ├── molecule.yml
│ ├── playbook.yml
│ └── tests
│ ├── test_default.py
│ └── test_default.pyc
├── README.md
├── revokelist
├── tasks
│ ├── client_keys.yaml
│ ├── config.yaml
│ ├── easy-rsa.yaml
│ ├── firewall.yaml
│ ├── install.yaml
│ ├── main.yaml
│ ├── revoke.yaml
│ └── server_keys.yaml
└── templates
├── before.rules.j2
├── client.conf.j2
└── server.conf.j2
10 директорий, 31 файл
Переменные роли
| Переменные | Значения по умолчанию | Описание | Тип |
|---|---|---|---|
| server_name | server | Имя сервера OpenVPN | Необязательно |
| PROTOCOL | udp | Протокол, на котором будет работать сервер | Обязательно |
| PORT | udp | Порт, на котором будет работать сервер | Обязательно |
| openvpn_server_network | 10.8.0.0 | CIDR диапазон для VPN сети | Необязательно |
| base_directory | /etc/openvpn | Путь конфигурации сервера OpenVPN | Необязательно |
| easy_rsa_url | url | URL для загрузки Easy RSA | Необязательно |
| block_all_connection | false | Заблокировать все соединения для клиента OpenVPN | Необязательно |
| port_list | [80,443] | Разрешить определённые порты для клиента OpenVPN, применимо только если block_all_connection == true | Необязательно |
Пример Playbook
---
- name: Автоматизация настройки OpenVPN
hosts: server
become: true
roles:
- role: osm_openvpn
...
$ ansible-playbook site.yml -i inventory
- Для генерации ключей клиента
$ ansible-playbook site.yml -i inventory --tags "generate_client_keys"
- Для отзыва ключей клиента
$ ansible-playbook site.yml -i inventory --tags "revoke_client_keys"
Инвентарь
Инвентарь должен выглядеть так:-
[server]
192.xxx.x.xxx ansible_user=ubuntu
Ключи клиента
Ключи клиента будут сгенерированы в /tmp/{{client_name}}.ovpn локального хоста.
Для конфигурации клиента
Установите OpenVPN
apt-get install openvpn -y
Установите OpenVPN GUI для Ubuntu 18.04 bionic beaver
apt install network-manager-openvpn-gnome -y
После установки перейдите в настройки сети
Добавьте VPN в настройки сети
Затем в настройках VPN добавьте созданный клиентский файл .ovpn

Установите OpenVPN GUI для Ubuntu 16.04 xenial
apt install network-manager-openvpn-gnome -y
После установки перейдите в настройки сети

Добавьте файл .ovpn в свои настройки сети

Затем выберите файл .client.ovpn.

После этого сохраните файл client.ovpn.

Будущие предложенные изменения
- Исправить роль для работы на «голом» оборудовании
Ссылки
Лицензия
- MIT / BSD
Информация об авторе
Участники
OpenVpn ansible role for creating a secure tunnel to your private infra.
ansible-galaxy install OT-OSM.openvpn

