OT-OSM.openvpn

Ansible Роль: OpenVPN

CircleCI

Opstree Solutions
Opstree Solutions

Роль 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

client

Установите OpenVPN GUI для Ubuntu 16.04 xenial

   apt install network-manager-openvpn-gnome -y

После установки перейдите в настройки сети

add_connection

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

import_file

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

select_file

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

save_key

Будущие предложенные изменения

  • Исправить роль для работы на «голом» оборудовании

Ссылки

Лицензия

  • MIT / BSD

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

Участники

Sudipt Sharma
Sudipt Sharma

О проекте

OpenVpn ansible role for creating a secure tunnel to your private infra.

Установить
ansible-galaxy install OT-OSM.openvpn
Лицензия
Unknown
Загрузки
219
Владелец