ansibleguy.infra_openvpn

¡EN PROGRESO! ¡NO UTILIZAR EN PRODUCCIÓN!

Logo de OpenVPN

Rol de Ansible - VPN Cliente-a-Sitio OpenVPN

ADVERTENCIA: Este rol aún está en desarrollo. ¡NO INTENTES USARLO EN PRODUCCIÓN!

Rol para desplegar configuraciones de VPN Cliente-a-Sitio OpenVPN.

Invítame un café

Estado de Prueba de Molecule Estado de Prueba de YamlLint Estado de Prueba de PyLint Estado de Prueba de Ansible-Lint Ansible Galaxy

Registros de Molecule: Corto, Completo

Ediciones de OpenVPN

Este rol utiliza la edición OpenSource OpenVPN Community.

¿Por qué usar la edición comunitaria?

  • Pros:

    • Sin costos de licencia - un servidor puede escalar hasta miles de clientes sin costos significativos
    • Todas las funcionalidades principales están cubiertas por la edición de código abierto
    • Se puede gestionar usando Ansible
  • Contras:

    • ¡Esta edición no tiene interfaz gráfica (web-ui)!

Si buscas una bonita interfaz web para hacer clic => consulta el Servidor de Acceso OpenVPN

Probado en:

  • Debian 11
  • Debian 12

Instalación

# última versión
ansible-galaxy role install git+https://github.com/ansibleguy/infra_openvpn

# desde galaxy
ansible-galaxy install ansibleguy.infra_openvpn

# o a una ruta de rol personalizada
ansible-galaxy install ansibleguy.infra_openvpn --roles-path ./roles

# instalar dependencias
ansible-galaxy install -r requirements.yml

Uso

¿Quieres una interfaz gráfica sencilla de Ansible? Consulta mi Interfaz Web de Ansible

Configuración

Define la configuración según sea necesario:

openvpn:

Es posible que desees usar 'ansible-vault' para encriptar tus contraseñas:

ansible-vault encrypt_string

Ejecución

Ejecuta el playbook:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml

También hay algunas etiquetas útiles disponibles:

* *

Para depurar errores - puedes establecer la variable 'debug' en tiempo de ejecución:

# ADVERTENCIA: ¡Registrará contraseñas!
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes

Para permitir que los servicios OpenVPN se reinicien automáticamente (sin solicitudes interactivas):

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e auto_restart=yes

Funcionalidad

  • Instalación de paquetes

    • Dependencias de Ansible (mínimas)
  • Configuración *

    • Configuración predeterminada: *

    • Opciones predeterminadas: *

    • Opciones predeterminadas para excluir:

Información

  • Información: Si quieres saber más sobre la configuración de OpenVPN-community - consulta su documentación completa

    Páginas interesantes:

  • Información: ChromeOS utiliza el formato de Configuración de Red Abierta (ONC).

    Está formateado en JSON y es bastante difícil de depurar ya que no se reciben mensajes de error útiles.

    La plantilla de perfil proporcionada por este rol podría no funcionar para todos los casos extremos.

    Si necesitas solucionar problemas - consulta la documentación de ONC. Pero ten en cuenta: no todas las opciones pueden funcionar en la práctica como se documentan.

  • Advertencia: Si una instancia de OpenVPN debe admitir conexiones a clientes ChromeOS - necesitarás establecer la opción 'openvpn.instances.[nombre].security.tls_crypt' en 'false' ya que esto no es (actualmente) compatible con la implementación de ChromeOS.

  • Nota: este rol actualmente solo admite sistemas basados en Debian.

  • Nota: La mayoría de la funcionalidad del rol se puede activar o desactivar.

    Para todas las opciones disponibles - consulta la configuración predeterminada ubicada en el archivo de configuración principal¡.

  • Advertencia: No todas las configuraciones/variables que proporciones serán verificadas en cuanto a validez. ¡Una mala configuración podría romper el rol!

  • Información: Si quieres usar openvpn.unprivileged: true para mejorar la seguridad del sistema el binario de OpenVPN instalado debe ser compatible con iproute2!

    El rol verificará si el binario es compatible y fallará si no lo es.

    Opciones para obtener soporte para iproute2:

    • Tendrás que usar un binario que haya sido compilado con esa opción habilitada
    • Desinstala los paquetes/binaros existentes de OpenVPN
    • Copia/enlaza el binario openvpn a /usr/local/bin
  • Información: Si estás usando autenticación de múltiples factores, podrías enfrentar problemas cuando algunos clientes (como ChromeOS) no admitan un segundo campo de entrada para el segundo secreto!

    Podrías necesitar establecer openvpn.server.auth.mfa_separator a cualquier carácter inusual que te guste. (por ejemplo: <<<)

    Esto te permite ingresar tanto el secreto1 (contraseña) como el secreto2 (código TOTP) en el mismo campo de entrada. Así: p4ssW0rd<<<001122

    El separador predeterminado : siempre será admitido - incluso si estableces uno personalizado. Esto permite que ambos métodos sean compatibles.

Instalar
ansible-galaxy install ansibleguy.infra_openvpn
Licencia
other
Descargas
1.9k
Propietario
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg