Cómo configurar el servidor Pritunl VPN en Rocky Linux 8

Pantalla de configuración de la base de datos Pritunl

Pritunl es un servidor VPN e IPsec de código abierto con administración de usuarios y escalado horizontal para organizaciones pequeñas y grandes. Le da al usuario la opción de usar los protocolos OpenVPN y Wireguard. Viene con una interfaz GUI fácil de usar y admite clientes en la mayoría de los dispositivos y plataformas. Todo el tráfico entre los clientes y el servidor está encriptado. Pritunl se basa en MongoDB, una base de datos confiable y escalable que se puede implementar rápidamente y con soporte integrado para la replicación, lo que facilita la implementación del clúster de Pritunl.

Este tutorial le enseñará cómo instalar el servidor Pritunl VPN en Rocky Linux 8. También exploraremos cómo conectarse a la VPN usando un cliente Linux.

requisitos previos

  1. Un sistema que ejecuta Rocky Linux 8 para alojar el servidor Pritunl.
  2. Un usuario no root con privilegios sudo.
  3. Un nombre de dominio apuntaba al servidor.
  4. Un sistema que ejecuta Rocky Linux 8 como cliente.
  5. Asegúrate de que todo esté actualizado.
    $ sudo dnf update
    
  6. Instale cualquier requisito previo.
    $ sudo dnf install nano
    

Paso 1: configurar el cortafuegos

Rocky Linux usa Firewalld Firewall. Compruebe el estado del cortafuegos.

$ sudo firewall-cmd --state
running

Esto indica que está funcionando correctamente.

El cortafuegos funciona con diferentes zonas y la zona pública es la predeterminada, que usaremos. Enumere todos los servicios y puertos activos en el firewall.

$ sudo firewall-cmd --permanent --list-services

Debería mostrar el siguiente resultado.

dhcpv6-client mdns ssh

Permitir puertos HTTP y HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Vuelva a comprobar el estado del cortafuegos.

$ sudo firewall-cmd --permanent --list-all

Deberías ver una salida similar.

public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: cockpit dhcpv6-client http https ssh
  ports: 
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Vuelva a cargar el firewall para habilitar los cambios.

$ sudo firewall-cmd --reload

Paso 2 – Instalar MongoDB

Pritunl se basa en la base de datos MongoDB, por lo que primero debemos instalarlo. Rocky Linux no incluye MongoDB, por lo que debemos usar el repositorio oficial de MongoDB.

Nota: MongoDB 5.0 solo funciona en procesadores más nuevos. Si su servidor se ejecuta en un hardware antiguo, debe optar por una versión anterior de MongoDB o cambiar a un servidor más nuevo.

Cree y abra el archivo /etc/yum.repos.d/mongodb-org-5.0.repo para editarlo.

$ sudo nano /etc/yum.repos.d/mongodb-org-5.0.repo

Pegue el siguiente código en él.

[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

Guarde el archivo presionando Control + X y entrando Y cuando se le solicite una vez terminado.

Instale MongoDB.

$ sudo dnf install mongodb-org

Habilite e inicie el servicio MongoDB.

$ sudo systemctl enable mongod --now

Paso 3: instale el servidor Pritunl

El primer paso es crear el repositorio oficial de Pritunl. Cree y abra el archivo /etc/yum.repos.d/pritunl.repo para editarlo.

$ sudo nano /etc/yum.repos.d/pritunl.repo

Pegue el siguiente código en él.

[pritunl]
name=Pritunl Repository
baseurl=https://repo.pritunl.com/stable/yum/centos/8/
gpgcheck=1
enabled=1

Guarde el archivo presionando Control + X y entrando Y cuando se le solicite una vez terminado.

Instale primero el repositorio de Epel, que es requerido por Pritunl.

$ sudo dnf install epel-release

Agregue e importe las claves GPG necesarias para Pritunl.

$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A
$ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp

Instale Pritunl.

$ sudo dnf install pritunl

Compruebe la versión de Pritunl.

$ pritunl version
pritunl v1.30.2960.4

Habilite e inicie el servicio Pritunl.

$ sudo systemctl enable pritunl --now

Aumentar el límite de archivos abiertos

Ejecute los siguientes comandos para aumentar el límite de archivos abiertos en el servidor. Esto evitará cualquier problema de conexión en caso de alta carga. Si ha instalado MongoDB en un servidor separado, debe ejecutar estos comandos en ese servidor.

$ sudo sh -c 'echo "* hard nofile 64000" >> /etc/security/limits.conf'
$ sudo sh -c 'echo "* soft nofile 64000" >> /etc/security/limits.conf'
$ sudo sh -c 'echo "root hard nofile 64000" >> /etc/security/limits.conf'
$ sudo sh -c 'echo "root soft nofile 64000" >> /etc/security/limits.conf'

Paso 4: acceda y configure Pritunl

Puede iniciar Pritunl ingresando http:/// en su navegador. Los navegadores modernos intentan acceder a la versión HTTPS de cada sitio, por lo que deberá omitir el error de privacidad que arroja el navegador.

Obtendrá la siguiente pantalla cuando inicie la URL por primera vez.

Pantalla de configuración de la base de datos Pritunl

Toma el URI de MongoDB automáticamente. Para la clave de configuración, ejecute el siguiente comando.

$ sudo pritunl setup-key
eacbd641982048fd9a60cdf09f7ebaa3

Introduzca la clave generada en el sitio web y haga clic en el Ahorrar botón. Actualizará la base de datos y abrirá la pantalla de inicio de sesión.

Pantalla de inicio de sesión de Pritunl

Ejecute el siguiente comando para generar información de inicio de sesión predeterminada.

$ sudo pritunl default-password
[undefined][2021-11-08 22:34:55,255][INFO] Getting default administrator password
Administrator default password:
  username: "pritunl"
  password: "krZQLlH9U7P1"

Ingrese la información de inicio de sesión e inicie sesión. Aparecerá la siguiente pantalla de configuración.

Pantalla de configuración inicial de Pritunl

Ingrese una contraseña segura para reemplazar la predeterminada. Introduzca un dominio bajo el Permite Cifrar Dominio campo. Pritunl generará y configurará un certificado SSL automáticamente para el dominio.

Ahora puede iniciar el servidor utilizando el nombre de dominio escribiendo https://pritunl.example.com en su navegador.

Paso 5: agregue una organización, un servidor y usuarios

El siguiente paso es agregar una Organización para su VPN. Haga clic en el Usuarios pestaña y haga clic en el Agregar organización botón.

PESTAÑA Usuarios Pritunl

Pritunl Agregar organización

Haga clic en el Agregar botón para proceder.

El siguiente paso es agregar un usuario. Hay dos opciones. Puede agregar usuarios uno por uno o agregarlos de forma masiva. Vamos a agregar un solo usuario por ahora. Haga clic en el Agregar usuario botón.

Pritunl Agregar usuario

El campo PIN es opcional y se utiliza si va a utilizar la autenticación de dos factores. El PIN se compone únicamente de números.

Una vez configurada la organización y los usuarios, vaya a la Servidores pestaña y haga clic en el Agregar servidor botón.

Pritunl Agregar servidor

Puerto: Puede agregar cualquier puerto que usará el servidor. Asegúrese de que el puerto que especificó esté abierto a todo el tráfico entrante en el grupo de seguridad.

DNS: Puede agregar Google DNS u OpenDNS.

Red virtual: Puede agregar una IP privada en este campo, pero asegúrese de que ningún otro recurso la use. A los clientes se les asignarán direcciones IP de este rango.

Red de GT Virtual: WireGuard Network Direcciones para la red privada que se asignará a los clientes de WireGuard. Debe tener el mismo bloque CIDR que la red virtual.

Habilitar WireGuard: Si está marcado, utilizará WireGuard en lugar de OpenVPN. Sin embargo, usaremos OpenVPN para nuestro tutorial, así que déjelo sin marcar.

Puerto GT: Este puerto se utilizará para las conexiones WireGuard. Es de uso exclusivo cuando hemos habilitado la opción WireGuard.

Habilitar el Autenticador de Google: Para usar la verificación en dos pasos, habilite esta opción. Si esta opción está habilitada en el servidor, todos los clientes de ese servidor deben verificar la OTP antes de conectarse a la VPN cada vez.

Habilitar IPv6: Habilita servidores DNS IPv6. Los clientes reciben direcciones IPv6 privadas.

Haga clic en el Agregar botón para terminar.

Haga clic en el Agregar organización botón para vincular la organización con el servidor recién creado.

Adjuntar organización

Haga clic en el Servidor de inicio botón para iniciar la VPN.

Servidor de inicio pritunl

Habilitar puerto en firewall

Para aceptar las conexiones del cliente a través del puerto VPN, debemos habilitarlo a través de nuestro firewall.

$ sudo firewall-cmd --permanent --add-port=18412/udp
$ sudo firewall-cmd --reload

Paso 6: instale el cliente Pritunl

Ahora que nuestro servidor está funcionando, es hora de instalar un cliente y conectarse a la VPN. Pritunl ofrece dos tipos de clientes: una línea de comandos y un cliente GUI.

Para nuestro tutorial, usaremos el cliente de línea de comandos. Solo puede instalar un tipo de cliente en un sistema.

Instale el repositorio EPEL que necesita el cliente Pritunl.

$ sudo dnf install epel-release

Agregue el repositorio oficial de Pritunl a su sistema Rocky Linux.

$ sudo tee -a /etc/yum.repos.d/pritunl.repo << EOF
[pritunl]
name=Pritunl Stable Repository
baseurl=https://repo.pritunl.com/stable/yum/centos/8/
gpgcheck=1
enabled=1
EOF

Agregue e importe las claves GPG.

$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A
$ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp

Instale el cliente de línea de comandos.

$ sudo dnf install pritunl-client

Paso 7: Conéctese del Cliente al Servidor

Desde la pestaña de usuarios del sitio del servidor Pritunl, obtenga el enlace del perfil temporal para conectarse al cliente.

Pritunl Obtener botón de enlace de perfil

Copie el enlace URI temporal de la última entrada.

Copia de enlace de perfil temporal Pritunl

Ingrese el siguiente comando en la terminal del cliente para agregar el perfil.

$ pritunl-client add pritunl://example.com/ku/2hd6S6Ug

Asegúrese de agregar el enlace del perfil copiado anteriormente después de agregar el comando.

Consulta la lista de los perfiles añadidos.

$ pritunl-client list
+----------------------------------+-------------------------+--------------+----------------+----------------+
|                ID                |          NAME           |  ONLINE FOR  | SERVER ADDRESS | CLIENT ADDRESS |
+----------------------------------+-------------------------+--------------+----------------+----------------+
| wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | Disconnected | -              | -              |
+----------------------------------+-------------------------+--------------+----------------+----------------+

Ejecute el siguiente comando para conectarse al perfil. No es necesario utilizar el ID de perfil completo en el comando. Solo use las primeras 3 letras del ID del perfil para referirse a él.

$ pritunl-client start wki --mode=ovpn --password=PINOTP
  • Para especificar el modo OPVN, agregue la marca –mode=ovpn en el comando.
  • Si ha habilitado la opción Google Authenticator, debe configurarla con un cliente Google Authenticator o Authy.
  • Para especificar el PIN y el código de autenticación de dos factores, use la marca –password=PINOTP en el comando. Por ejemplo, si el pin es 54321 y el código OTP es 456789, entonces use la marca –password=54321456789 en el comando anterior. Si solo usa PIN, use la marca –password=PIN.

Ejecute el comando de lista nuevamente para verificar si la conexión funciona.

$ pritunl-client list
+----------------------------------+-------------------------+------------+----------------+----------------+
|                ID                |          NAME           | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS |
+----------------------------------+-------------------------+------------+----------------+----------------+
| wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | 6 secs     | 178.62.233.196 | 192.168.238.2  |
+----------------------------------+-------------------------+------------+----------------+----------------+

Ha realizado una conexión exitosa a Pritunl VPN.

Línea de comando Pritunl

El servidor Pritunl viene con una herramienta de línea de comandos que puede usar para realizar algunas operaciones básicas.

Reparar base de datos

Puede usar Pritunl para reparar la base de datos y permitir la recuperación de una base de datos corrupta o inconsistente.

Primero, detenga el servidor Pritunl.

$ sudo systemctl stop pritunl

Reparar la base de datos.

$ sudo pritunl repair-database

Reinicie el servicio Pritunl.

$ sudo systemctl start pritunl

El comando repair-database borrará todos los registros, restablecerá todas las direcciones IP virtuales estáticas de los usuarios y pondrá todos los servidores en estado detenido.

Restablecer credenciales

El siguiente comando restablecerá el nombre de usuario y la contraseña del administrador a pritunl. También eliminará cualquier configuración de inicio de sesión único y autenticación en dos pasos para el usuario administrador si está habilitada.

$ sudo pritunl reset-password

Cambiar el puerto de la consola web

De forma predeterminada, Pritunl se ejecuta en el puerto 443. Si desea cambiarlo, use el siguiente comando.

$ sudo pritunl set app.server_port 8443

Pritunl ejecuta un servidor web en el puerto 80 para la verificación de Let’s Encrypt y redirige las solicitudes HTTP a HTTPS. Puede desactivar la redirección con el siguiente comando. Esto también evitará el uso de certificados Let’s Encrypt.

$ sudo pritunl set app.redirect_server false

Conclusión

Esto concluye nuestro tutorial sobre cómo configurar y usar el servidor Pritunl VPN en un servidor Rocky Linux 8. Si quieres saber más sobre Pritunl, puedes seguir su documentación oficial. Si tiene alguna pregunta, publíquela en los comentarios a continuación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *