Made4it

Creación de VPN usando PFSense y OpenVPN

¡Hola gente! 

En nuestro último artículo, aprendimos a instalar y configurar PFSense, para ser utilizado como Gateway de su red, permitiéndole actuar con diferentes funcionalidades para la red. Hoy, le presentaremos la creación de una VPN con OpenVPN para que pueda acceder a toda su infraestructura interna desde donde necesite estar.

¿Qué es una VPN?

Básicamente, VPN significa Red Privada Virtual (o Red Privada Virtual), y sirve como un túnel entre dos puntos de conexión.

Al establecer una VPN entre un ordenador de su domicilio y un PFSense de su empresa, por ejemplo, el túnel creado hace que su ordenador pueda actuar como si estuviera «dentro» de la red local de su empresa, lo que le permite acceder a servidores y equipos, siempre y cuando se pueda acceder al PFSense desde su ordenador doméstico.

Ahora que entendemos de qué se trata VPN, aprendamos cómo configurar usando PFSense para establecer la conexión entre sus diferentes redes.

Configuración de la VPN

Vamos a utilizar el «asistente» del propio PFSense para esta configuración. Para ello, accedemos al menú VPN > OpenVPN. A continuación, haga clic en la pestaña Asistentes:

Para crear la VPN, vaya a VPN > OpenVPN > Asistentes.

Al acceder al Asistente, seleccionemos el ‘Type of Server‘, como ‘Local User Access‘, y podemos hacer clic ‘Next‘.

Aquí, cambiamos el Type of Server y continuamos.

En la siguiente pantalla, es necesario crear un nuevo Certificado de Autoridad (Certificate Authority, o CA), para ello basta con llenar los siguientes campos:

Recuerde cambiar los campos de ubicación para adaptarlos a sus necesidades.

Utilizaremos el nombre: VPN_CA, lo que indica que esta CA se utiliza para la VPN. A continuación, especificamos el tamaño de la clave de cifrado que se generará. Un valor de 2048 bits es suficiente.
El resto puede completarse según sus datos de país, provincia, ciudad y organización (o empresa).

El siguiente paso consiste en crear un certificado de servidor. Para ello, basta con seleccionar la opción de crear un nuevo certificado y rellenar los campos tal y como se muestra en la imagen (modificando de nuevo los valores de ubicación):
Muy similar al anterior, este es el Certificado de servidor, no el Certificado de autoridad, pero la configuración seguirá siendo la misma.

Una vez finalizada la configuración del certificado del servidor, vamos a configurar el acceso a la propia VPN. Para ello, seleccionamos la interfaz de acceso; en nuestro caso, la WAN. A continuación, rellenaremos el resto de los datos. Voy a utilizar el protocolo solo UDP, en el puerto 1194 y con la descripción «VPN».

Configuración que utilizaremos, relacionada con el puerto y protocolo de nuestro túnel.

En la misma pantalla, encontramos los ajustes de cifrado. En estas opciones, activaremos activadas la autenticación TLS y la creación automática de una clave TLS compartida para la autenticación.
Podemos definir el «DH» con el valor de 2048, tal y como viene por defecto, y modificar el algoritmo de cifrado a AES-256-CBC. Optaremos por el algoritmo de autenticación «SHA1 (160 bits)». Es importante que esta opción sea la misma tanto en el servidor (PFSense) como en el cliente (su equipo).
Tenemos nuestra configuración de la siguiente manera:

Configuración de cifrado.

En la siguiente parte, tenemos la configuración del Túnel.
El primer campo se refiere al conjunto de direcciones IP que PFSense utilizará en sus clientes; es decir, qué direcciones IP recibirán los ordenadores que se conecten a la VPN para acceder a la red virtual. En nuestro caso, seleccionamos un bloque /24 (256 direcciones IP, de las cuales 254 son hosts), que tendrá un tamaño adecuado. Elegimos el bloque 10.20.50.0/24.
Vamos a rellenar la opción «Red local », para indicar la red LAN a la que deseamos acceder, de modo que PFSense pueda crear una ruta automáticamente hacia dicha red.», para indicar la red LAN a la que deseamos acceder, de modo que PFSense pueda crear automáticamente una ruta hacia dicha red. En nuestro ejemplo, la red es la 192.168.1.0/24.
Utilizamos la compresión «Omit Preference» y activamos la opción «Inter-Client Communication», en caso de que desee que los equipos conectados a la VPN puedan comunicarse entre sí.
En este momento, nuestra configuración es la siguiente:

Configuración de red de nuestro túnel VPN.

Para finalizar la configuración, en el campo «Configuración del cliente», dispone de la opción IP dinámica activada, para que las direcciones IP conectadas sean dinámicas. En Topología, marcamos la opción Subred, para disponer de una subred /24 con las direcciones IP distribuidas dentro del bloque. En caso de que desee aislar la subred de cada cliente, dispone de la opción «net30», mediante la cual cada cliente contará con una subred /30 independiente. Algunas versiones más antiguas de los clientes requieren que se seleccione «net30», mientras que otras necesitan que se elija «Subnet». Es importante adaptar su configuración al cliente que vaya a utilizar.
A continuación, tiene la opción de elegir el servidor DNS de esta conexión VPN. Dejaremos la configuración predeterminada quad-8 de Google y el propio PFSense como servidores DNS.
La configuración final es la que se muestra en la imagen:

Configuraciones finales de nuestro Cliente.

En la siguiente pantalla, tenemos la opción de definir una regla de cortafuegos para permitir conexiones desde cualquier lugar a través de la VPN, que podemos activar, ya que OpenVPN utiliza certificados para la conexión; sin el certificado (que debe facilitarse directamente a la persona que va a conectarse) y el nombre de usuario y la contraseña, es imposible acceder a dicha red.
Justo debajo, la opción «Regla de OpenVPN», podemos activarpara permitir que todo el tráfico de los clientes conectados pase a través del túnel VPN.

Configuración del cortafuegos. Permitir todas las conexiones no es un problema, tener certificado y autenticación de usuario con contraseña.

Finalmente finalizamos la configuración y ya tenemos la VPN lista.
Ahora necesitamos crear los usuarios que tendrán acceso al túnel.

Creación de usuario con certificado VPN

Para crear nuestros usuarios, vaya a System > User Manager, y luego vaya a ‘+ Add‘, justo debajo del panel con sus usuarios de PFSense.

Pantalla de usuarios de PFSense.

Al crear un usuario, añadimos Usuario, Contraseña y completamos el resto con los datos correspondientes al usuario. En este caso, voy a crear un usuario «made4it» que utilizaremos para conectarnos a la red.

Debajo de la selección de grupo hay un botón «Certificado». Es necesario marcar una «marcar» en él para poder crear los certificados de usuario.

Es necesario marcar la opción Certificado para generar el certificado de usuario.

En la sección de configuración del usuario, vamos a crear el certificado para nuestro usuario. Para ello, creamos una descripción. Vamos a utilizar «made4it_cert» en nuestro ejemplo. Seleccionamos la CA creada anteriormente y especificamos los mismos 2048 bits que utilizamos al crearla.

Creación de un Certificado para el Usuario.

Una vez hecho esto, podemos guardar nuestro usuario.
Para acceder a la VPN, debemos exportar nuestro certificado utilizando el paquete «OpenVPN Client Export».

Instalación de la exportación del cliente

Vamos System > Package Manager > Available Packages y luego buscar el paquete ‘openvpn-client-export‘ y dar un ‘+ Install‘ luego espere a que termine la instalación:

luego espere a que termine la instalación:
Búsqueda e instalación de paquetes.
Paquete correctamente instalado.

Una vez finalizada la instalación, solo tiene que acceder a VPN>OpenVPN>Client Export Utility, para iniciar la exportación del certificado.
En esta pantalla, dejaremos la opción «Resolución del nombre de host» como «Dirección IP de la interfaz». En ‘Verify Server CN‘, podemos dejar en ‘Automatic‘.

El resto se puede desmarcar, así que hacemos clic en ‘Save as Default‘ para que se apliquen los cambios.

Opciones de exportación de certificados.

Con los cambios aplicados, vamos a la parte inferior de la pantalla, en el usuario que creamos, y seleccionamos el certificado/cliente que vamos a exportar.

En mi caso concreto, voy a descargar el «Most Clients» dentro de «Inline Configurations», ya que dispongo de un cliente listo para usar. En caso de que vaya a utilizar un cliente de Windows, Viscosity (Windows o macOS) u otro cliente, solo tiene que seleccionar el archivo correspondiente.

Descargar certificado para conexión.

En mi caso, utilizaré el cliente «Tunnelblick» en macOSpara establecer la conexión a la VPN. Para ello, basta con añadir los archivos de configuración a su cliente; así, al conectarse, se le solicitarán el nombre de usuario y la contraseña de la VPN, que corresponderán al usuario creado anteriormente; en nuestro caso, el usuario «made4it»:

Inserte el usuario y la contraseña creados previamente en PFSense.
Cliente intentando conectarse a la VPN.
¡Conectado con éxito!

Configuración de VPN en Windows

Para conectarnos a nuestra VPN ya configurada en Windows, necesitamos un cliente. Podemos instalar el cliente OpenVPN utilizando los archivos que el propio PFSense pone a nuestra disposición.
Para ello, vamos a VPN > OpenVPN > Client Export, y descargamos el archivo más adecuado. En este caso, como voy a utilizar el cliente OpenVPN, podemos seleccionar la versión en «Current Windows Installer» (para Windows 7/8 o Windows 10).

Recuerde elegir la versión correcta al descargar.

Una vez descargado el archivo, podemos ejecutarlo y continuar con la instalación normal. El archivo que descargamos comenzará a configurar OpenVPN e instalará nuestra conexión VPN directamente, no se requiere configuración adicional.

Al cerrar los instaladores, podemos abrir OpenVPN haciendo clic en el acceso directo creado en el escritorio, luego haciendo clic con el botón derecho en el icono de la barra de herramientas (al lado del reloj), y finalmente, haciendo clic en Conectar y proporcionando los datos de usuario/contraseña creados. en PFSense.

El primer icono de la izquierda es el cliente OpenVPN.
Simplemente haga clic derecho y «Conectar«
Ahora solo ingrese su nombre de usuario y contraseña, ¡y estamos en la VPN!

Bueno, eso es todo, amigos: esta ha sido nuestra guía de configuración de OpenVPN con PFSense y de cómo conectarse a ella mediante el cliente OpenVPN, utilizando los archivos proporcionados por el propio PFSense.
Si necesita ayuda o asistencia para el mantenimiento de PFSense, póngase en contacto con nosotros; ¡estaremos encantados de ayudarle!
¡Gracias y hasta la próxima!

Made4it surge para satisfacer las necesidades del mercado, que cada vez exige más soluciones personalizadas.