danielcrisap.ansible_pritunl_vpn
Rol de Ansible para Pritunl VPN
Este rol instalará Pritunl VPN.
**
¿Qué es Pritunl?
Pritunl es un servidor VPN de código abierto y un panel de gestión. Ofrece a los usuarios el poder del protocolo OpenVPN mediante una interfaz web intuitiva.
Requisitos
Para ejecutar esta aplicación se necesita un servidor Linux, que puede ser CentOS, Amazon Linux, Debian o Ubuntu.
Pritunl utiliza MongoDB como base de datos, por lo que también deberías tener un servidor MongoDB.
Configuración de la Base de Datos
Cuando Pritunl se inicie por primera vez, se mostrará un aviso para la configuración de la base de datos en el servidor web que corre en el puerto 443. Este aviso pedirá una clave de configuración y la URI de MongoDB. Para obtener la clave de configuración, inicia sesión en el servidor y ejecuta el comando sudo pritunl setup-key
, que te devolverá la clave. Por defecto, la URI de MongoDB estará configurada para el servidor MongoDB en localhost. Esto debe dejarse así si el servidor MongoDB corre en el mismo servidor que la instancia de Pritunl. Para clústeres empresariales, consulta la documentación de MongoDB sobre el Formato de la URI de la Cadena de Conexión. Alternativamente, esto puede configurarse directamente en el archivo /etc/pritunl.conf
o utilizando el comando de la CLI. Para más información sobre el comando de la CLI, puedes consultar la sección de Comandos. Algunos servidores MongoDB se autentican en la base de datos de administración y requieren que se incluya la opción authSource=admin
en la URI.
Sobre las Suscripciones
Las suscripciones se pueden comprar en la página principal o desde la consola web de un servidor Pritunl en funcionamiento. La información de la tarjeta de crédito se envía de forma segura desde el navegador web directamente a Stripe y nunca se almacena ni se transfiere a otros servidores. Un servidor Pritunl puede actualizarse en cualquier momento y no necesita ser reconfigurado al actualizar a una suscripción.
Clave de Licencia
Después de crear una suscripción, se enviará por correo electrónico una clave de licencia a la dirección de correo utilizada durante el proceso de compra. La clave de licencia no necesita usarse en el mismo servidor donde se creó la suscripción. Las suscripciones premium pueden utilizarse para un solo servidor, y las licencias empresariales pueden utilizarse solo para un clúster. Un clúster es un grupo de servidores Pritunl conectados a la misma base de datos MongoDB. Para permitir pruebas, las claves de licencia pueden utilizarse varias veces, pero el uso continuo de las mismas en múltiples servidores resultará en la cancelación de la suscripción.
Factura y Suscripciones a Largo Plazo
Algunas empresas requieren facturas completas y suscripciones anuales. Esto solo está disponible con suscripciones empresariales y no hay descuento para suscripciones anuales. Para solicitar una factura anual para una suscripción empresarial, envía la información de facturación a contact@pritunl.com, incluyendo una dirección de correo electrónico para recibir la factura y otra para recibir la clave de licencia.
Descuento para Educación
Hay un descuento del 50% disponible para escuelas públicas. Esto se puede aplicar a una suscripción mensual existente o a una suscripción anual. Para obtener un descuento en las suscripciones mensuales, primero inicia una prueba y luego envía la dirección de correo utilizada para crear la suscripción a contact@pritunl.com. Para una suscripción anual, sigue las instrucciones mencionadas arriba.
**
AUTENTICACIÓN
**
La autenticación de WireGuard en Pritunl utiliza claves ya existentes en el perfil del cliente. Esto permite hacer la transición a WireGuard sin requerir que los usuarios vuelvan a importar su perfil. Muchos administradores no configuran un certificado HTTPS válido, y HTTPS no se utiliza ni es necesario para proporcionar autenticación segura. La autenticación se realiza con tres claves que proporcionan múltiples capas de cifrado y autorización.
Clave SHA512-HMAC del Cliente (Autorización)
El cliente usará un secreto SHA512-HMAC para firmar cada solicitud de conexión. El servidor también usará este secreto para firmar la respuesta, permitiendo al cliente verificar la respuesta de conexión. Este es el mismo sistema de autenticación utilizado para autorizar la sincronización de la configuración del cliente, que sincroniza cambios en la configuración del perfil como direcciones de host y cambios en el puerto del servidor (las claves privadas nunca se sincronizan).Clave Asimétrica NaCl Cliente/Servidor (Autorización + Cifrado)
El cliente utiliza una clave pública de NaCl para el servidor que está incluida en el perfil del cliente. Esto proporciona cifrado asimétrico de la solicitud de conexión del cliente al servidor. El servidor cifrará la respuesta con la clave pública del cliente de NaCl, proporcionando cifrado de la respuesta. El cliente también verificará la respuesta del servidor usando la clave pública del servidor de NaCl. Este es el mismo sistema de autenticación utilizado para proporcionar la capa adicional de cifrado y autorización disponible en las conexiones de OpenVPN con contraseñas y códigos de dos factores.Clave Asimétrica RSA-4096 del Cliente (Autorización)
El certificado y la clave RSA del cliente se utilizan para firmar cada solicitud de conexión. El servidor usará esto para verificar la solicitud de conexión del cliente. Este es el mismo certificado utilizado para verificar conexiones de OpenVPN.
Cada conexión de WireGuard utiliza una nueva clave de WireGuard. Esto se hace para proporcionar el más alto nivel de seguridad, pero puede retrasar la conectividad de la red cuando el usuario regresa a una computadora que ha estado en suspensión. La clave privada de WireGuard se almacena en la memoria del servicio de fondo del cliente Pritunl y también en el archivo de configuración de WireGuard. WireGuard utiliza un diseño sin conexión, y esta clave privada podría ser utilizada por un atacante para secuestrar la conexión incluso si se utiliza autenticación multifactor. En entornos de alta seguridad, es importante considerar que las conexiones de OpenVPN con autenticación multifactor no tendrán estas debilidades. Por esta razón, el servidor revocará rápidamente las claves de WireGuard de los clientes inactivos para limitar la posibilidad de que esto ocurra. El servidor también validará que las claves no sean reutilizadas.
Una vez que el cliente se ha conectado, enviará una solicitud ping al servidor cada 10 segundos. Esta solicitud permite al cliente detectar rápidamente un enlace caído y cambiar aproximadamente en 13 segundos. Si el servidor no recibe una solicitud ping en 6 minutos, desconectará al usuario y revocará la clave pública.
Variables del Rol
pritunl_mongodb_uri: 'mongodb://localhost:27017/pritunl?authSource=admin&ssl=true'
pritunl_mongodb_uri
URI de MongoDB para que Pritunl se conecte a la base de datos.
Ejemplo de Playbook
Incluir un ejemplo de cómo usar tu rol (por ejemplo, con variables pasadas como parámetros) también es útil para los usuarios:
- hosts: servers
vars:
pritunl_mongodb_uri: 'mongodb://localhost:27017/pritunl?authSource=admin&ssl=true'
roles:
- { role: danielcrisap.ansible-pritunl-vpn }
Licencia
MIT ©
Información del Autor
Esta colección fue creada en 2020 por Daniel Cristian.
ansible-galaxy install danielcrisap.ansible_pritunl_vpn