OT-OSM.openvpn

Rol de Ansible: OpenVPN

CircleCI

Opstree Solutions
Opstree Solutions

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

client

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

add_connection

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

import_file

Luego selecciona el archivo .client.ovpn.

select_file

Luego guarda el archivo client.ovpn.

save_key

Cambios Propuestos Futuros

  • Arreglar el rol para funcionar en hardware sin virtualización

Referencias

Licencia

  • MIT / BSD

Información del Autor

Contribuyentes

Sudipt Sharma
Sudipt Sharma

Acerca del proyecto

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

Instalar
ansible-galaxy install OT-OSM.openvpn
Licencia
Unknown
Descargas
219
Propietario