Hoy aprendemos cómo instalar y configurar un servidor OpenVPN en pfSense en minutos para que puedas acceder remotamente a tu casa, empresa…
Un servidor OpenVPN es una solución de código abierto que permite establecer conexiones seguras y encriptadas a través de Internet. Proporciona un túnel virtual privado para proteger la privacidad y el tráfico de datos.
¿Tienes un Syology?
- Aquí te muestro como instalar pfSense en un Synology
- Este otro post te explico cómo instalar y configurar OpenVPN directamente en el Synology
Tabla de contenidos
Requisitos
Para que funcione este laboratorio que se usa en entornos reales, necesitamos:
- pfSense, físico o virtualizado, con una sola tarjeta de red es más que suficiente.
- Dirección IP pública estática o un DDNS
- Acceso al router ISP para abrir los puertos y permitir la conexión desde Internet.
Explicación del laboratorio
La VPN que se va a montar en este post es de tipo Road Warrior.
Voy a intentar explicar de una forma muy resumida el laboratorio:
- Los usuarios VPN se conectarán y atacarán a la IPPública:PuertoOpenVPN.
- La conexión llegará al Router y como hemos abierto el puerto (1194 UDP) de OpenVPN, este reenviará la conexión al pfSense.
- Aquí se harán comprobaciones entre el usuario y servidor OpenVPN, si esta todo bien, se establecerá la conexión.
- El cliente OpenVPN, ya esta dentro de la «Red Virtual» por lo que podrá conectarse a la RED LAN y acceder a los servicios, por ejemplo una base de datos, una intranet, aplicación, etc.
Un punto importante a mencionar es que, pfsense solo puede filtrar paquetes a los usuarios de la red virtual pero no a los usuarios de la LAN.
Si quieres que pfSense filtre toda la red de tu casa o trabajo, necesitas dos tarjetas de red pero eso es otra topología.

Instalar servidor OpenVPN
Este post esta centrado en OpenVPN usando pfSense, por lo que no vamos explicar cómo instalar pfSense pero es algo sencillo que puedes encontrar en otros sitios.
Solo RECUERDA que para este laboratorio solo es necesario configurar una tarjeta de red, la WAN.
OpenVPN tiene muchas configuraciones, como este post esta dedicado a personas que nunca han montado uno, vamos a seguir un asistente de configuración que tiene pfSense para que todo sea más fácil.
Esto es un resumen de lo que vamos a hacer con el asistente de configuración

Wizards, instalación servidor OpenVPN
Para seguir el «asistente fácil», clicamos en VPN > OpenVPN > Wizards

Autenticación de los usuarios
Para empezar elegimos donde se alojan los usuarios para la autenticación. En este caso: Local User Access, esto significa que para validar la autenticación de los usuarios se usarán los que existen dentro de pfSense.
Más adelante crearemos los usuarios, clicamos en siguiente para continuar.

Crear una Entidad Certificadora CA en pfSense
OpenVPN trabaja usando certificados. Para poder trabajar con estos certificados necesitamos una Entidad Certificadora (CA). La CA es la encargada de emitir, gestionar, revocar los certificados para el servidor OpenVPN como para los usuarios.
Una vez que rellenamos los datos clicamos en Add new CA.

Certificado tipo servidor para OpenVPN
A partir de la CA, creamos un un certificado de tipo servidor para OpenVPN de pfSense.
Clicamos en New Certificate para crearlo y continuar.

Protocolo y puerto en OpenVPN de pfsense
Ahora toca elegir el protocolo y puerto de OpenVPN, por defecto UDP 1194. Estos dos datos son importantes, ya que tenemos que abrir dicho puerto en el Router del ISP (Movistar, Vodafone, etc.)
Le damos una descripción para identificarlo y continuamos.

Criptografia en OpenVPN
En la parte de criptografía no te recomiendo que toques nada a no ser que sepas de que va el tema. Con estos valores por defecto que te da el asistente, es más que suficiente.

Configuraciones del Túnel, Full-Tunel vs Split-Tunnel
En el apartado del túnel hay dos 3 apartados muy importantes:

- Tunnel Network: Es la red virtual (10.0.8.0/24) a la que pertenecerán los clientes OpenVPN. Cuando los clientes OpenVPN se vayan conectando. irán recibiendo direcciones IP de esta red. Puedes poner la misma u otra que te parezca.
- Redirect Gateway.
–Si marcamos esta opción todo el tráfico se enrutará por la VPN. A esto se le llama VPN Full-Tunnel.
–Si no lo marcamos, el tráfico solo irá a la RED de la LAN si lo necesitamos. Por ejemplo, cuando queramos acceder a algún servicio (aplicación, BD) de la red LAN y si no lo necesitamos saldrá con nuestra conexión «normal» de Internet. A esto se le llama VPN Split-Tunnel

- Local Network: Según la topología que tenemos, añadimos la dirección de nuestra red LAN. En mi caso: 192.168.120.0/24. Tú tendrás que poner la dirección de red de tu casa o empresa.
Lo demás lo podemos dejar como está a no ser que sepamos que tocamos.

Configuraciones para los clientes VPN
En el apartado de configuración de los clientes VPN, podemos agregar servidores DNS internos como externos. Lo rellenos según nuestas necesidades. Clicamos en siguiente para continuar.

Reglas Firewall
Para acabar con la configuración del servidor OpenVPN, el asistente nos indica si queremos añadir reglas de firewall. Se crearán dos reglas:
- La primera regla creada en la interfaz OpenVPN, permite todo el tráfico a los clientes OpenVPN
- La segunda regla creada en la interfaz WAN de pfsense, permite el trafíco entrante al puerto 1194 UDP.

Aquí te dejo la captura de las reglas

Aquí podemos ver el servidor OpenVPN ya montado pero aún queda un par de cosas, como crear los usuarios y abrir los puertos en el router…

Crear los usuarios OpenVPN
Crear usuario
Ahora nos toca crear los usuarios, para ello vamos a System > User Manager > Add

Aquí para los datos del usuario, establecemos:
- Username y Password, estos datos son los usaremos para iniciar sesión desde los clientes OpenVPN
- Marcamos «Click to create a user certificate», esto es muy importante. El asistente de creación de la VPN, configura tal que los usuarios también necesitan un certificado propio para conectarse, por lo que si no marcamos esta opción, la conexión fallará!

Clicamos en Save para finalizar la creación del usuario.

Exportar usuario OpenVPN, paquete openvpn-client-export
Una vez creado el usuarios/usuarios necesarios, hace falta exportarlos para instalarlos y configurarlos en los equipos clientes, ya sea iPhone, Mac, Windows, Linux, etc.
Necesitamos un paquete llamado, openvpn-client-export. Lo instalaremos desde el administrador de paquetes. Vamos a System > Package Manager

Clicamos en Available Packages y buscamos: openvpn y lo instalamos.

Si va todo bien, tenemos ver esto

Ahora, para exportar el usuario OpenVPN, vamos a VPN > OpenVPN > Client Export

En la parte superior de esta pantalla, recomiendo cambiar el apartado Host Name Resolution e indicar: nombre de dominio o dirección IP. Si no hacemos este cambio, el archivo exportado de los cliente OpenVPN se hará con la dirección IP de pfsense.
Si no los hacemos, vamos a tener que cambiar la dirección de IP del servidor VPN en cada archivo de los usuarios, por lo que vamos a perder mucho tiempo.

Clicamos en Save as default para guardar los cambios. Más abajo, nos sale todos los clientes existentes para exportar, si observamos aparece el usuario labsmac, en el que podemos exportar para distintos sistemas operativos: Windows, MacOS, iOS, etc.
Solo tenemos que clicar en el sistema que queramos para exportar el archivo.

Nos queda dos cosas, instalar los clientes OpenVPN y abrir el puerto en el Router ISP, sin esto último nada de esto va a funcionar, asi que vamos a realizar esto.
Abrir el puerto de OpenVPN (Port Forwarding) en el Router ISP
Tenemos que acceder a nuestro Router, irnos al apartado NAT, redirección de puertos o Port Forwarding, pueden llamarlo de muchas formas, pero lo más fácil es buscar en Google como abrir un puerto con el modelo de router que tengan.
En el mio aparece de la siguiente manera

Simplemente es añadir la dirección IP que tiene pfSense y el puerto-protocolo que elegimos para OpenVPN, en mi caso deje los que se usa por defecto: UDP 1194

Una vez hecho esto, los clientes OpenVPN ya deberían poder conectarse.
Instalar clientes OpenVPN: Mac, Windows, iOS
Ya tengo otros post dedicados a explicar cómo instalar los clientes OpenVPN en Mac, Windows e iOS, así que para no volver a escribir, te dejos los enlaces:
- Cómo instalar OpenVPN cliente en Windows
- Cómo instalar OpenVPN cliente en MacOS
- Cómo instalar OpenVPN cliente en iOS, es decir, en iPhone o iPad
Esto es todo chic@s espero que les haya gustado mucho :D, esto es una forma fácil y sencilla de cómo Instalar y configurar servidor OpenVPN pfSense
Hay muchas más topologías, si quieres más post como estos, me lo puedes dejar en los comentarios . Nos vemos en la próxima! 😀