gavika.openvpn

gavika.openvpn

Instala y configura OpenVPN. Construye y administra tu propio servidor OpenVPN.

https://www.techchorus.net/blog/run-your-own-openvpn-server/

Además, echa un vistazo al directorio examples.

Requisitos

El rol debe usarse junto con gavika.easy_rsa.

Variables del rol

Variable Valor por defecto Descripción ¿Requerido?
easy_rsa_local_pool_directory /tmp/ca_openvpn_pool El directorio para usar como ubicación temporal para almacenar solicitudes de certificados, certificados, etc.
openvpn_client_users [] Lista de nombres de usuario de clientes OpenVPN. Se recomienda usar solo caracteres alfanuméricos. No
openvpn_port 1194 El puerto en el que se ejecuta el servidor OpenVPN
openvpn_protocol Por defecto: udp Opciones: tcp o udp El protocolo de red a usar
openvpn_server_ip_address La dirección IP del servidor OpenVPN El valor utilizado en los certificados de cliente generados
openvpn_generated_configurations_local_pool false. Booleano. Si se deben copiar las configuraciones de cliente generadas al directorio local (la máquina controladora en la que se ejecuta el ansible-playbook).
openvpn_route_all_traffic True. Booleano. Enrutar todo el tráfico de internet a través del servidor OpenVPN
openvpn_use_opendns_public_dns True. Booleano. Empujar servidores DNS de OpenDNS a los clientes
openvpn_additional_configs [] Configuración adicional del servidor OpenVPN. Lista de diccionarios. Cada elemento de la lista es un par de clave, valor. Ejemplo
openvpn_additional_configs:
- push: "topology subnet"
- push: "route 192.168.4.5 255.255.255.255"
openvpn_default_firewalld_zone public El nombre de la zona a usar en la configuración de Firewalld. Solo relevante para EL

Para construir un servidor CA y un servidor OpenVPN utilizando gavika.easy_rsa y gavika.openvpn, debes ejecutar los roles varias veces dependiendo de tus necesidades. Eres responsable de ejecutar los roles el número de veces requerido y en el orden necesario. Se proporcionan ejemplos en la documentación. Normalmente, deberás ejecutar open-vpn-playbook.yml dos veces y easy-rsa-playbook.yml una vez.

Flujo de ejecución del playbook: Flujo de ejecución del playbook Diagrama de flujo en tamaño completo

Aquí tienes un ejemplo de cómo ejecutar los playbooks:

# openvpn: configurar directorios de pool locales, instalar openvpn, crear solicitud de servidor,
# crear solicitudes de cliente
ansible-playbook -i my-inventory.yml openvpn-playbook.yml
# easy_rsa: construir el servidor CA, importar y firmar solicitudes, obtener certificados CA
ansible-playbook -i my-inventory.yml easy-rsa-playbook.yml
# openvpn: usar solicitudes firmadas, configurar openvpn, generar configuraciones de cliente
ansible-playbook -i my-inventory.yml openvpn-playbook.yml

Dependencias

El rol gavika.openvpn depende de gavika.easy_rsa.

Las siguientes colecciones son requeridas:

  • community.aws

Se requiere la biblioteca de Python boto3.

El rol gavika.openvpn debe usarse junto con gavika.easy_rsa.

Ejemplo de playbook para configurar el servidor CA: easy-rsa-playbook.yml

---
- hosts: ca_server
  become: true
  vars:
    easy_rsa_req_country: "IN"
    easy_rsa_req_province: "KA"
    easy_rsa_req_city: "Bangalore"
    easy_rsa_req_org: "Gavika"
    easy_rsa_req_email: "[email protected]"
    easy_rsa_req_ou: "Gavika"
    easy_rsa_local_pool_directory: /tmp/ca_openvpn_pool # Sin barra final /
    easy_rsa_server_request_to_import: "server.req"
    easy_rsa_ca_server_mode: true
  roles:
    - role: gavika.easy_rsa

Ejemplo de playbook para instalar el servidor OpenVPN: openvpn-playbook.yml

---
- hosts: openvpn_server
  become: true
  vars:
    openvpn_client_users:
      - janedoe
      - johndoe
    easy_rsa_req_country: "IN"
    easy_rsa_req_province: "KA"
    easy_rsa_req_city: "Bangalore"
    easy_rsa_req_org: "Mi Organización"
    easy_rsa_req_email: "[email protected]"
    easy_rsa_req_ou: "Mi Unidad Organizativa"
  roles:
    - role: gavika.easy_rsa
    - role: gavika.openvpn

Ejemplo de inventario: my-inventory:

all:
  hosts:
    placeholder
  children:
    ca_server:
      hosts:
        dev-ca-01.example.com:
          ansible_become: true
          ansible_user: ubuntu
          ansible_host: 192.168.3.5
          easy_rsa_ca_server_mode: true
          ansible_python_interpreter: /usr/bin/python3
    openvpn_server:
      hosts:
        dev-vpn-01.example.com:
          ansible_python_interpreter: /usr/bin/python3
          ansible_become: true
          ansible_user: ubuntu
          ansible_host: 192.168.3.6
          openvpn_server_ip_address: 192.168.3.6

Licencia

Licencia Apache, Versión 2.0

Información del autor

Sudheera Satyanarayana

Acerca del proyecto

Role to install and configure OpenVPN server and generate client configurations

Instalar
ansible-galaxy install gavika.openvpn
Licencia
other
Descargas
278