Icono del sitio Sinologic

Cómo instalar un servidor VPN para teletrabajar en menos de 10 minutos

Hace tiempo que quería escribir un artículo como este, pero ahora que el Coronavirus está empezando a obligar a muchas empresas a buscar mecanismos para que la gente pueda seguir trabajando desde sus casas, creo que es un fantástico momento para explicar cómo montar un servidor VPN para unas pocas personas y que puedan acceder desde cualquier lugar a la red interna como si estuvieran físicamente ahí.

Nota importante: Hay que aclarar que esto abre una puerta (aunque sea cifrada) a que las personas del exterior puedan acceder a la red interna de nuestra oficina, que desde Sinologic no nos hacemos responsables de ningún problema de seguridad que pueda ocurrir por culpa de este tutorial y que, aunque para poder acceder es necesario disponer de un certificado creado específicamente para cada sistema, no se recomienda esto para grandes oficinas, si no para pequeñas oficinas de no más de 5 empleados que necesiten trabajar en remoto de vez en cuando. Si quieres un sistema VPN serio instala en condiciones un servidor IPSEC o un OpenVPN en un servidor de verdad con una conexión en condiciones y aplicando las medidas de seguridad necesarias y contramedidas para evitar ataques.

El objetivo es muy sencillo de entender. Consiste en montar un pequeño servidor VPN dentro de la red interna, utilizando una Raspberry PI como servidor y así evitamos que el coste de un servidor sea un impedimento a los presupuestos organizados de la empresa. Esa VPN hará que podamos conectarnos desde cualquier lugar de Internet al sistema Raspberry y una vez conectado, tener acceso a todos los dispositivos (ordenadores, impresoras, servidores, etc.) de la red interna, así como salir nuevamente por el router de la empresa (por lo que podremos acceder a los sistemas que tengamos filtrados por IP y que únicamente se puedan acceder desde nuestra conexión).

Qué es necesario

Necesitaremos:

Esquema mental de nuestra infraestructura ideal

Es importante que, tanto la IP interna de la oficina (192.168.1.X) como la IP interna de nuestro lugar remoto (10.10.0.25), sean subredes diferentes, ya que si son iguales puede haber problemas de enrutado y nuestro ordenador no podrá distinguir qué es «local» y qué es «remoto».

Una vez conectado a la VPN, nuestro ordenador tendrá una IP interna (10.10.0.25) y una IP VPN interna (10.8.0.4) pero tendrá acceso a los ordenadores y servidores de la red interna (192.168.1.X) porque la Raspberry hará de puente.

Si estamos conectados y queremos acceder a una página web, lo haremos con la conexión de la oficina (el router introducirá nuestros paquetes, lo enviará a la Raspberry y volverá a salir por el router manteniendo la IP de la oficina).

Instalación del sistema Raspbian

En la Raspberry PI tendremos que instalar Raspbian, esto es algo básico y sencillo, así como configurarle una IP fija dentro de la red interna, por ejemplo: 192.168.1.248

Para ello lo mejor es acceder al router y buscar la opción para asignar una IP fija a la dirección MAC de la raspberry PI. De esta manera, aunque la raspberry PI pida una nueva IP, el router siempre le dará la misma.

Instalar OpenVPN en la Raspberry PI

Una vez instalada la distribución Raspbian y configurada la IP interna fija en el router, usaremos PiVPN para instalar OpenVPN, por lo que ejecutaremos en la Raspberry PI el siguiente comando:

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

Este comando instalará OpenVPN y hará varias comprobaciones, además de:

Una vez hecho esto, ya tendremos un servidor VPN corriendo en nuestra flamante Raspberry PI. Ahora tendremos que crear las «llaves» para que los usuarios puedan acceder al servidor VPN.

Crear los certificados para los usuarios

Para crear las llaves (o los certificados) tendremos que, con el usuario por defecto ‘pi’ ejecutar el siguiente comando:

sudo pivpn add

Con este comando generaremos en el directorio /home/pi/ovpns un archivo llave (certificado) ARCHIVO.ovpn con todos los parámetros y certificados necesarios de OpenVPN para que alguien pueda conectarse.

Cada certificado solo puede ser utilizado por una conexión simultanea, por lo que si quieres poder conectarte desde varios sistemas, necesitarás generar dos certificados distintos.

Todos los clientes, una vez conectados tendrán, por defecto, una dirección IP interna del rango: 10.8.0.X (diferente al del resto de la red interna) pero todos los usuarios conectados podrán verse entre sí.

Mapear el puerto seleccionado en el router

Ahora tenemos que acceder al router y mapear el puerto que hayamos configurado en la raspberry para el servidor OpenVPN, de manera que cuando alguien acceda a dicho puerto, se reenvíe a la Raspberry PI. (es necesario que el puerto del router y el que hemos configurado sean el mismo).

Configurar el cliente

Cliente para Windows

Una vez tenemos el archivo certificado con extensión .ovpn, es el momento de instalar un cliente en nuestro sistema operativo y cargarle dicho certificado para que pueda conectarse.

Para Windows, OpenVPN tiene su propia aplicación OpenVPN Connect que podéis instalar desde aquí: https://openvpn.net/client-connect-vpn-for-windows/

Para Mac, yo recomiendo TunnelBlick. Se instala, se selecciona el archivo ARCHIVO.ovpn que se desea utilizar y listo!

Para Linux, tan solo hay que instalar el paquete ‘openvpn’ y ejecutarlo tal que así:

openvpn –config ARCHIVO.ovpn

Extras importantes e interesantes

Salir de la versión móvil