OT-OSM.openvpn
Rol de Ansible: OpenVPN
Un rol de Ansible para instalar y configurar un servidor OpenVPN.
Historial de Versiones
| Fecha | Versión | Descripción | Cambios por |
|---|---|---|---|
| 16 de agosto de 2018 | v.1.0.0 | Borrador inicial | Yashvinder Hooda |
| 8 de septiembre de 2018 | v.1.0.0 | Agregado rol para Debian | Sudipt Sharma |
| 9 de octubre de 2018 | v.1.0.0 | Actualizada la documentación | Sudipt Sharma |
| 13 de noviembre de 2018 | v.1.0.0 | Actualizado para RHEL | Sudipt Sharma |
| 28 de febrero de 2019 | v.1.0.0 | Agregado Gitlab-CI | Mahesh Kumar |
| 31 de mayo de 2019 | v.1.0.0 | Agregados casos de prueba de molecule | Ekansh Jain |
| 13 de enero de 2020 | v.1.0.0 | Actualizado para AMAZON | Sudipt Sharma |
| 11 de febrero de 2020 | v.1.0.0 | Agregadas etiquetas para crear y revocar cliente | Sudipt Sharma |
| 18 de abril de 2020 | v.1.0.0 | Integrado circle-ci | Sudipt Sharma |
Características Principales
- Este rol automatiza la configuración de VPN utilizando OpenVPN. El rol consta de dos archivos meta:
- clientlist: Ingresa el nombre del cliente que deseas agregar.
- revokelist: Ingresa los nombres de los clientes que deseas revocar.
Nota:
Deshabilita la verificación de origen/destino.
De la lista de instancias, selecciona la instancia de VPN y luego Networking->Change Source/Dest. Verifica en el menú desplegable. Luego haz clic en Sí, Deshabilitar. Esto es necesario, ya que de lo contrario, tu servidor
VPN no podrá conectarse a tus otras instancias EC2.
Sistemas Operativos Soportados
- CentOS:7
- CentOS:6
- Ubuntu:bionic
- Ubuntu:xenial
- Amazon AMI
Dependencias
- Ninguna :)
Estructura del Directorio
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 directorios, 31 archivos
Variables del Rol
| Variables | Valores por Defecto | Descripción | Tipo |
|---|---|---|---|
| server_name | server | Nombre del servidor OpenVPN | Opcional |
| PROTOCOL | udp | Protocolo en el que trabajará el servidor | Obligatorio |
| PORT | udp | Puerto en el que trabajará el servidor | Obligatorio |
| openvpn_server_network | 10.8.0.0 | Rango CIDR dado a la red VPN | Opcional |
| base_directory | /etc/openvpn | Ruta de configuración del servidor OpenVPN | Opcional |
| easy_rsa_url | url | URL para descargar Easy RSA | Opcional |
| block_all_connection | false | Bloquear toda la comunicación para el cliente OpenVPN | Opcional |
| port_list | [80,443] | Permitir puertos específicos para el cliente OpenVPN; solo aplicable si block_all_connection == true | Opcional |
Ejemplo de Playbook
---
- name: Automatizar la configuración de OpenVPN
hosts: server
become: true
roles:
- role: osm_openvpn
...
$ ansible-playbook site.yml -i inventory
- Para generar claves de cliente
$ ansible-playbook site.yml -i inventory --tags "generate_client_keys"
- Para revocar claves de cliente
$ ansible-playbook site.yml -i inventory --tags "revoke_client_keys"
Inventario
El inventario debe verse así:-
[server]
192.xxx.x.xxx ansible_user=ubuntu
Claves de Cliente
Las claves de cliente se generarán en /tmp/{{client_name}}.ovpn del host local.
Para la Configuración del Cliente
Instalar OpenVpn
apt-get install openvpn -y
Instalar OpenVPN GUI para Ubuntu 18.04 bionic beaver
apt install network-manager-openvpn-gnome -y
Después de la instalación, ve a la configuración de red
Agrega VPN a tu configuración de red
Luego, configura VPN y agrega tu archivo client.ovpn

Instalar OpenVPN GUI para Ubuntu 16.04 xenial
apt install network-manager-openvpn-gnome -y
Después de la instalación, ve a la configuración de red

Agrega el archivo .ovpn a tu configuración de red

Luego selecciona el archivo .client.ovpn.

Luego guarda el archivo client.ovpn.

Cambios Propuestos Futuros
- Arreglar el rol para funcionar en hardware sin virtualización
Referencias
Licencia
- MIT / BSD
Información del Autor
Contribuyentes
OpenVpn ansible role for creating a secure tunnel to your private infra.
ansible-galaxy install OT-OSM.openvpn

