Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales

Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales

por Raúl Unzué Actualizado: 15/01/2025

pfSense: Firewall y Router de código abierto

Hoy en día, el acceso remoto seguro es una necesidad crítica, especialmente si trabajas con máquinas virtuales (VMs) en entornos empresariales o domésticos. 

Aquí es donde entra en juego pfSense, una solución de firewall y router basada en código abierto que, además, te permite configurar una VPN robusta. ¿El objetivo? Garantizar que puedas acceder a tus máquinas virtuales desde cualquier parte del mundo de forma segura y sin complicaciones.

Configurar una VPN con pfSense no solo protege tu red contra accesos no autorizados, sino que también mejora la experiencia de conexión remota. Es como si te llevaras toda la red local contigo, permitiéndote gestionar tus VMs como si estuvieras físicamente en tu oficina o casa.

Pero ¿por qué utilizar pfSense para esto? Además de ser gratuito, es muy flexible y compatible con múltiples protocolos de VPN como OpenVPN, L2TP o IPSec, lo que significa que puedes personalizarlo según tus necesidades sin depender de soluciones costosas.

En esta guía te vamos a mostrar cómo una VPN en pfSense puede ser tu mejor aliado para gestionar tus VMs de forma segura, y te enseñaremos que su implementación no es tan compleja como podría parecer gracias a su asistente integrado.

Configuración VPN en PFSense

A continuación, os mostramos los pasos necesarios para gestionar vuestras máquinas virtuales a través de pfSense, que tiene role de router, firewall y VPN con OpenVPN, al ser una opción segura, flexible y altamente compatible con casi todos los clientes más comunes del mercado:

  1. Planificación de redes a utilizar en la VPN

Lo primero que os vamos a explicar es el esquema de conexión que vamos a utilizar para gestionar pfSense y las redes de las máquinas virtuales que tenemos que proteger de accesos no permitidos:

  • IP´s pfSense:
    • Dispone de dos interfaces:
      • WAN: IP pública entregada por el proveedor de Internet (ISP)
      • LAN: Puerta enlace para las máquinas virtuales, con IP, 10.0.0.3/24
  • Clientes OpenVPN:
    • Cada cliente, al conectarse al servidor OpenVPN del pfSense desde Internet recibirá una IP del rango 192.168.1.0/24 por DHCP
    • Estos clientes, pueden estar conectados a diferentes LAN´s, independientes a las máquinas virtuales que vamos a gestionar remotamente
  • Máquinas virtuales:
    • Las máquinas virtuales están en la red 10.0.0.0/24
    • Estas máquinas virtuales dan servicios personalizados en cada caso (servidor de archivos, web o base de datos, entre otros) sobre esa red y no de cara a Internet

Os dejamos el esquema:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 1

  1. Requerimientos en pfSense

Lo que tenemos que hacer es asegurarnos que las interfaces WAN y LAN de pfSense están bien configuradas. Así que lo comprobamos desde la configuración:

  • Accede a pfSense: Ingresa a la interfaz web desde tu navegador usando la IP asignada. Usuario/Contraseña por defecto “admin/pfsense”.

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 2

  • Configura la Interfaz LAN:
    • Ve a “Interfaces > LAN” y asigna la red 10.0.0.0/24 como hemos definido antes.
    • Define la IP del router como 10.0.0.3/24.
    • Guarda los cambios y aplica.

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 3

  • Configura la Interfaz WAN:
    • Asegúrate de que la interfaz WAN tenga acceso a Internet (en nuestro caso usaremos PPPoE)
  • Habilita el DHCP Server:
    • Ve a “Services > DHCP Server” en la interfaz LAN y habilita el servidor DHCP.
    • Configura un rango de direcciones para los clientes (por ejemplo, 10.0.0.100 a 10.0.0.200).
  • Comprobamos que tenemos el paquete “openvpn-client-export” desde “System > Package Manager > Available Packages”. Este paquete nos facilitará la distribución para los usuarios que quieran acceder.

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 4

Lo instalamos después de buscarlo desde el Package Manager. Pulsamos “Install > Confirm”:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 5

Si todo ha ido bien, nos mostrará esta pantalla, y ya tendremos todo preparado:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 6

  1. Asistente configuración OpenVPN

Con los requerimientos preparados, vamos a usar el Wizard para configurar nuestro servidor OpenVPN. Vamos al menú “VPN -> OpenVPN -> Wizards”:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 7

Comienza el Wizard, si desplegamos el combo veremos que podemos autenticarnos de varias formas, en nuestro caso, por simplicidad, usaremos usuarios locales. Para ello, elegimos “Local User Access y pulsamos “Next”:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 8

Crearemos una autoridad de certificación completando los campos que marcamos en la imagen, pulsamos “Add new CA”:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 9

Pulsamos “Add new Certificates”:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 10

Le damos una descripción y pulsamos “Create new Certificate”:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 11

Le damos un nombre al servidor OpenVPN:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 12

Introducimos la red que tendrán nuestros clientes en “IPv4 Tunnel Network” y la red en que están nuestras máquinas virtuales “IPv4 Local Network” y pulsamos “Next”:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 13

Marcamos la dos casillas “Firewall Rule” y “OpenVPN rule” para que se generen automáticamente las reglas necesarias para abrir el tráfico VPN:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 14

Pulsamos “Finish”:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 15

Veremos las configuraciones de nuestro servidor al terminar, teniendo la posibilidad de modificarlo más adelante. Como podéis ver en “Mode” está configurado para que permita autenticación mediante certificado y usuario:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 16

Para que nuestros clientes se puedan autenticar, necesitaremos generar usuarios VPN. Lo haremos desde “System -> User Manager -> Users -> +ADD”. Y completamos los campos de la siguiente forma y pulsamos “Save”:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 17

Generamos tantos como necesitemos:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 18

Configuración Cliente OpenVPN

Ahora para poder configurar nuestro cliente VPN con el usuario que hemos generado, vamos en pfSense a “VPN -> OpenVPN -> Client Export”. Bajamos a la sección “OpenVPN Clients” y exportamos para el usuario generado el fichero con extensión OPVN necesario para conectar:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 19

Dependerá del cliente que vayáis utilizar (Windows, MacOS, Android, IOs…) desde la web de OpenVPN. Descargáis e instaláis (no tiene parámetros adicionales). Usaremos como ejemplo el acceso sobre un cliente Windows:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 20

Subimos el fichero a nuestro cliente:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 21

Cargamos el fichero OPVN e introducimos el usuario y pulsamos “CONNECT”:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 22

Nos pedirá la contraseña:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 23

Si todo es correcto veremos el siguiente resultado:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 24

Como hemos hablado al principio, mi PC Windows está en una red independiente a la que queremos gestionar con una IP 192.168.2.138:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 25

Y en la red OpenVPN dispongo de una IP 192.168.1.2:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 26

Configuración reglas OpenVPN y accesos Cortafuegos PFSense

Si intento acceder a servicios de la red 10.0.0.0/24 donde están las máquinas virtuales podré acceder si no hay filtros adicionales, por ejemplo, la página web de administración de pfSense:

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 27

Si existen restricciones adicionales o queremos seguir buenas prácticas, tendremos que trabajar las reglas de cortafuegos:

1. Configurar la red de OpenVPN

Asegúrate de que la red OpenVPN esté correctamente configurada para asignar direcciones en el rango 192.168.1.0/24.

  1. Ve a VPN > OpenVPN.
  2. En la pestaña de servidores, verifica que la configuración de OpenVPN incluye la red 192.168.1.0/24 en IPv4 Tunnel Network.
  3. En IPv4 Local Network/s, asegúrate de que está configurada la red 10.0.0.0/24 para permitir el acceso desde OpenVPN a la LAN.

2. Crear una regla en la interfaz OpenVPN

Permite que los clientes OpenVPN accedan al servidor en la LAN.

  1. Ve a “Firewall > Rules” y selecciona la pestaña OpenVPN.
  2. Crea una nueva regla con los siguientes parámetros:
    • Action: Pass.
    • Interface: OpenVPN.
    • Protocol: TCP.
    • Source: Network y especifica 192.168.1.0/24.
    • Destination: Address or Alias y especifica 10.0.0.14.
    • Destination Port Range: 5601 (o rango personalizado si aplica).
    • Description: Por ejemplo, "Permitir acceso OpenVPN a servidor web en LAN".
  3. Guarda y aplica los cambios.

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 28

3. Crear una regla en la interfaz LAN

Permite que el tráfico de OpenVPN llegue a la LAN.

  1. Ve a “Firewall > Rules” y selecciona la pestaña LAN.
  2. Verifica que exista una regla para permitir el tráfico de OpenVPN a la LAN. Si no existe:
    • Crea una regla con:
      • Action: Pass.
      • Interface: LAN.
      • Protocol: TCP.
      • Source: Network y especifica 192.168.1.0/24.
      • Destination: LAN net.
      • Description: "Permitir acceso desde OpenVPN a LAN".
  3. Guarda y aplica los cambios.

4. Configurar NAT si es necesario

Si el tráfico no fluye correctamente, puede deberse a que pfSense está bloqueando la comunicación entre las redes. Configura NAT para permitir el enrutamiento.

  1. Ve a “Firewall > NAT > Outbound”.
  2. Activa el modo “Manual Outbound NAT Rule Generation”.
  3. Añade una nueva regla:
    • Interface: LAN.
    • Source: 192.168.1.0/24.
    • Destination: 10.0.0.0/24.
    • Translation: Selecciona Interface Address.
    • Description: "NAT para acceso OpenVPN a LAN".
  4. Guarda y aplica los cambios.
  1. Configuración del cliente OpenVPN

Asegúrate de que los clientes OpenVPN tienen rutas para llegar a la red 10.0.0.0/24:

  1. Abre el archivo de configuración .ovpn del cliente.
  2. Añade una ruta estática:
route 10.0.0.0 255.255.255.0
  1. Conéctate y verifica que puedes acceder al servidor en https://10.0.0.14:5601.

Geeknetic Cómo configurar una VPN con PFSense para acceso a Máquinas Virtuales 29

  1. Verificar conexiones

  1. Usa herramientas como ping o traceroute desde el cliente OpenVPN para verificar conectividad con 10.0.0.14.
  2. Intenta acceder al servidor web desde un navegador utilizando la URL https://10.0.0.14:5601.

Si el acceso no funciona, revisa los logs de pfSense (“Status > System Logs > Firewall”) para identificar bloqueos o errores en la configuración.

¿Por qué montar una VPN con PFSense?

Configurar una VPN con pfSense para acceder a tus máquinas virtuales es una de las mejores decisiones que puedes tomar si buscas seguridad, flexibilidad y tranquilidad.

Con esta solución, no solo te aseguras de que tus datos viajen de forma cifrada, sino que también tienes el control absoluto sobre quién entra y sale de tu red. Esto es crucial si gestionas información sensible o simplemente si quieres evitar sorpresas desagradables por accesos no autorizados.

Además, una vez que domines pfSense, te darás cuenta de lo potente que puede ser para otros aspectos de tu red. Desde priorizar tráfico hasta bloquear intrusiones, pfSense no solo es un "firewall", sino un verdadero guardián de tu red. ¿Y lo mejor de todo? Puedes escalarlo según tus necesidades, desde un entorno doméstico hasta una infraestructura más compleja en una empresa.

Fin del Artículo. ¡Cuéntanos algo en los Comentarios!

Temas Relacionados: Virtualización Redes VPN OpenVPN PFSense
Redactor del Artículo: Raúl Unzué

Raúl Unzué

Soy un apasionado de la virtualización con más de 20 años de experiencia, especializado en soluciones como VMware(premio vExpert y vExpert Pro desde 2013), Proxmox e Hyper-V. Durante mi carrera, he ayudado a empresas a optimizar sus infraestructuras TI mientras comparto mis conocimientos como redactor IT. Mi objetivo es traducir lo complejo en algo práctico y accesible, combinando teoría con experiencia real. Si te interesa la virtualización, las herramientas TI o simplemente aprender algo nuevo, espero ayudarte con mis artículos.