Monta una red VPN fácil con OpenVPN en Linux gracias a PiVPN

Existen diferentes formas y alternativas de montar una conexión VPN en casa. Entre ellas, las más comunes son OpenVPN y Wireward. Hacerlo a mano desde cero, suele ser un poco enrevesado y por ello, la tecnología Docker ha llegado para facilitarnos la tarea. Pero… aún hay una forma más fácil para montar tu VPN en casa: PiVPN.

Una iniciativa que empezó con la intención de facilitar la instalación de una conexión VPN en una Raspberry Pi, pero que como ellos admiten en la documentación oficial, ya es compatible con distribuciones de Linux y arquitecturas diferentes. Su claim es bien claro: «Simplest way to setup a VPN» o lo que es lo mismo, la manera más simple de instalar una VPN. Si tienes un sistema Linux en casa 24/7, es una de las mejores alternativas. En este artículo explicamos paso a paso cómo montar un servidor VPN en casa.

Tener una conexión VPN resulta muy interesante para cifrar todo el tráfico de, por ejemplo tu móvil u ordenador, cuando está fuera de casa y que nadie te pueda espiar. De forma que estés seguro al navegar a través de las redes Wifi públicas a las que te conectas en una cafetería o establecimiento.

Cómo instalar OpenVPN fácil en Linux

A continuación, paso a paso, cómo dar de alta una VPN.

El comando para instalar pivpn es el siguiente es así de sencillo:

curl -L https://install.pivpn.io | bash

Tras ejecutarlo en Linux, seguramente nos pedirá la clave de root, ya que tiene que instalar y hacer ajustes en el sistema. Tiramos para delante. Nos pedirá algo de información:

  1. Escoger el usuario de Ubuntu, no hay problema
  2. Configurar el NameServer que corresponda (dale el dominio o IP pública que utilices)
  3. Escoger el DNS de Google

Cuando termine, ya tendremos la VPN lista. Ahora, lo que tenemos que hacer es generar nuestro perfil de configuración, el fichero .ovpn para instalar en nuestro cliente de OpenVPN. Esto lo haremos con el siguiente comando:

pivpn add

Nos pedirá un nombre para el fichero ovpn y una contraseña. La contraseña será necesaria utilizar en la conexión del cliente VPN.

Por defecto, te crea un usuario con permiso para un año. Si quieres darle más tiempo para no tener que renovar tus clientes, puedes configurarle 3650 días, que equivale a 10 años.

Configura tu Firewall para la conexión VPN

El puerto por defecto que utiliza VPN es el 1194, tendrás que abrir este puerto en tu Firewall para poder conectarte a la VPN. Es importante que le vincules el protocolo UDP.

Enrutar la red LAN en la conexión VPN

Con lo que hemos hecho hasta ahora, el tráfico que circule cuando estemos conectados a la VPN estará cifrado. Pero… y ¿si queremos también enrutar la red LAN de nuestra casa?

Para eso, tendremos que «pushear» la red que deseemos en el servidor VPN y la forma de hacerlo es la siguiente:

Para hacer que la LAN del server se enrute al cliente hay que modificar el fichero /etc/openvpn/server.conf y añadir la siguiente directiva:

push "route 192.168.1.0 255.255.255.0"

Importante, modifica la red y máscara a la dirección y configuración de tu red.

Tras realizar este paso, no olvides reiniciar OpenVPN.

sudo systemctl restart openvpn

Depurar salida a Internet de la VPN

Es habitual que si tu red no estaba previamente configurada para hacer un portforwarding, tengas que ejecutar varios comandos para habilitarlo y enrutar el tráfico con iptables. Es decir, la conexión VPN funciona, te puedes conectar a ella y resolver la red local, pero no tienes salida a internet.

PiVPN nos lo pone fácil, tiene un comando para depurar, diagnosticar y auto-corregir la mayoría de los problemas. Si no podemos salir a internet cuando configuremos PiVPN en nuestra instalación, realiza los siguiente pasos:

Si al terminar la instalación y conseguir conectarte tienes acceso a la red local de destino pero no a internet, lo mejor es ejecutar el siguiente comando:

pivpn -d

Este comando revisa la configuración y debuggea cómo está todo.

Si encuentra cualquier problema, te dice si lo quieres arreglar. Sigue los pasos, dile que sí en caso de que quieras corregir el problema, y te lo hará él solito.

Un ejemplo de cómo configuré la salida a internet en mi caso:

=============================================
::::		Self check		 ::::
:: [OK] IP forwarding is enabled
:: [ERR] Iptables MASQUERADE rule is not set, attempt fix now? [Y/n] y
Done
:: [ERR] Iptables INPUT rule is not set, attempt fix now? [Y/n] y
Done
:: [ERR] Iptables FORWARD rule is not set, attempt fix now? [Y/n] y
Done
:: [OK] OpenVPN is running
:: [OK] OpenVPN is enabled (it will automatically start on reboot)
:: [OK] OpenVPN is listening on port 1194/udp

Cheatlist, comandos útiles de PiVPN

Lista de los usuarios y conexiones que hemos dado de alta así como sus fechas de vencimiento:

pivpn list

Listar los clientes conectados actualmente:

pivpn clients

Para revocar un usuario, tenemos que proceder así:

pivpn revoke

Para dar de alta un usuario en PiVPN, ya lo hemos comentado anteriormente:

pivpn add

Conclusiones sobre PiVPN

Ya habéis visto en esta guía lo fácil que se configura una VPN con PiVPN. Seguramente si te has pegado en alguna ocasión configurando e instalando OpenVPN a mano, o con Docker, habrás tenido ciertas dificultades y habrás perdido el tiempo corrigiendo problemas. PiVPN es la forma más fácil de configurar una VPN rápida en casa o en cualquier sitio.

Si quieres aprender más sobre PiVPN, aquí os dejo una guía extensa de ArchLinux sobre PiVPN.

Ibai

Apasionado por la tecnología, el software, las interfaces de usuario (UX UI) y los sistemas. Utilizo este canal de comunicación para transmitir de manera informal, y muchas veces "rápido", pequeñas aportaciones a la comunidad software.

Deja una respuesta

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


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.

*

Artículos relacionados