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
-
Un sistema que ejecuta Rocky Linux 8 para alojar el servidor Pritunl.
-
Un usuario no root con privilegios sudo.
-
Un nombre de dominio apuntado al servidor.
-
Un sistema que ejecuta Rocky Linux 8 como cliente.
-
Asegúrate de que todo esté actualizado.
$ sudo dnf update
-
Instale los requisitos previos.
$ 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ía ver un resultado 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 cortafuegos 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.
Cree y abra el archivo /etc/yum.repos.d/mongodb-org-5.0.repo
para editar.
$ 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 Ctrl + X e ingresando 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:instalar 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 editar.
$ 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 Ctrl + X e ingresando 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
Instalar Pritunl.
$ sudo dnf install pritunl
Verifique 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:acceder y configurar Pritunl
Puede iniciar Pritunl ingresando http://<serverIP>/
en tu navegador. Los navegadores modernos intentan acceder a la versión HTTPS de cada sitio, por lo que deberá omitir el error de privacidad que genera el navegador.
Obtendrá la siguiente pantalla cuando inicie la URL por primera vez.
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 Guardar botón. Actualizará la base de datos y abrirá la pantalla de inicio de sesión.
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.
Ingrese una contraseña segura para reemplazar la predeterminada. Introduce un dominio en Dominio de Lets Encrypt. 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 Usuarios y haga clic en Agregar organización botón.
Haz clic en Agregar botón para continuar.
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 Agregar usuario botón.
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 Servidores y haga clic en Agregar servidor botón.
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 grupos de trabajo virtuales: 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 WG: 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.
Haz clic en Agregar botón para terminar.
Haga clic en Agregar organización botón para vincular la organización con el servidor recién creado.
Haga clic en Iniciar servidor botón para iniciar la VPN.
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:instalar 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:Conectar del cliente al servidor
Desde la pestaña de usuarios del sitio del servidor Pritunl, obtenga el enlace de perfil temporal para conectarse al cliente.
Copie el enlace URI temporal de la última entrada.
Ingrese el siguiente comando en la terminal del cliente para agregar el perfil.
$ pritunl-client add pritunl://example.com/ku/2hd6S6Ug
Asegúrate de agregar el enlace del perfil copiado antes después de add
en 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 mediante 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, utilice la bandera--password=54321456789
en el comando de arriba. Si solo usa PIN, use la marca--password=PIN
.
Ejecute la list
comando de nuevo para comprobar si la conexión está funcionando.
$ 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 comandos de 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
La repair-database
El comando 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 de 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 desea obtener más información sobre Pritunl, puede seguir su documentación oficial. Si tiene alguna pregunta, publíquela en los comentarios a continuación.