¡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 una computadora en casa y un PFSense en su empresa, por ejemplo, el túnel creado hace que su computadora actúe como si estuviera ‘dentro’ de la red local de su empresa, permitiendo el acceso a servidores y equipos, es decir, si PFSense es accesible desde su máquina doméstica.

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

Usaremos el ‘Wizard’ de PFSense para esta configuración. Para eso, ve al menú VPN > OpenVPN. Luego haga clic en la pestaña Wizards:

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.

Usaremos el nombre: VPN_CA, indicando que esta CA se utiliza para la VPN. Después de eso, informamos el tamaño de la clave de cifrado que se generará. Un valor de 2048 bits es suficiente.
El resto se puede completar de acuerdo con los datos de su país, estado, ciudad y organización (o empresa).

El siguiente paso consiste en crear un Certificado de servidor. Para ello, basta con elegir la opción de crear un nuevo certificado, y rellenar como se muestra en la imagen (cambiando 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.

Terminando el Certificado del Servidor, configuremos el acceso a la propia VPN. Para ello elegimos la interfaz de acceso, en nuestro caso la WAN. Luego completamos el resto de los datos. Usaré 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.

Siguiendo en la misma pantalla, tenemos la configuración de cifrado. En estas opciones dejaremos habilitada la autenticación TLS y la creación automática de una clave TLS compartida para la autenticación.
Podemos establecer el ‘DH‘ en el valor de 2048 como predeterminado y cambiar el Algoritmo de cifrado a AES-256-CBC. Elijamos el algoritmo de autenticación ‘SHA1 (160 bits)’. Es importante que esta opción sea la misma tanto en el lado del Servidor (PFSense) como en el lado del Cliente (su máquina).
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 pool de IPs que utilizará PFSense en sus Clientes, es decir, qué IPs recibirán las PC que se conecten a la VPN para la Red Virtual. En nuestro caso, seleccionamos un bloque /24 (256 IPs, 254 hosts), que tendrá un buen tamaño. Tomamos el bloque 10.20.50.0/24.
Completemos la opción ‘Local Network‘, para indicar la red LAN a la que buscamos acceder, para que PFSense pueda crear automáticamente una ruta para esa red. En nuestro ejemplo, la red es el 192.168.1.0/24.
Usamos la compresión ‘Omit Preference‘ y habilitamos la opción ‘Inter-Client Communication‘, si desea que las máquinas conectadas a la VPN se comuniquen entre sí.
Por el momento, nuestra configuración es la siguiente:

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

Para finalizar la configuración, en el campo ‘Client Settings‘, tenemos habilitada la opción IP Dinámica, para tener dinámica en las IP conectadas. En Topology, marque la opción Subnet, para tener un /24 con las IPs distribuidas dentro del bloque. En caso de querer aislar la subred de cada Cliente, tenemos la opción net30, que cada Cliente tendrá un /30 separado. Algunas versiones de Clientes anteriores necesitan que se configure en net30, mientras que otras necesitan que se configure en Subred. Es importante adaptar su configuración al Cliente que se utilizará.
Después de eso, tenemos la opción de elegir el servidor DNS para esta conexión VPN. Dejemos el estándar quad-8 de Google y el propio PFSense como servidores DNS.
La configuración final es como se muestra en la imagen:

Configuraciones finales de nuestro Cliente.

En la siguiente pantalla, tenemos la opción de configurar una regla de Firewall para permitir conexiones desde cualquier lugar de la VPN, que podemos permitir, ya que OpenVPN utiliza certificados para la conexión, y sin el certificado (que hay que pasar directamente a la persona que se va a conectar) y usuario/contraseña, es imposible acceder a esa red.
Justo debajo, la opción ‘OpenVPN rule‘, podemos habilitarla, para permitir que todo el tráfico de los clientes conectados pase por el 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 rellenamos el resto con datos referentes al usuario. En este caso, crearé un usuario ‘made4it‘ que usaremos para conectarnos a la red.

Debajo de la selección de grupo hay un botón de ‘Certificate‘. Es necesario dar un ‘check‘ en él, para crear los certificados de usuario.

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

Debajo de la configuración del usuario, crearemos el certificado para nuestro usuario. Para esto, creamos una descripción. Usemos ‘made4it_cert‘ en nuestro ejemplo. Seleccionamos la CA creada anteriormente y especificamos los mismos 2048 bits que usamos en su creación.

Creación de un Certificado para el Usuario.

Una vez hecho esto, podemos guardar nuestro usuario.
Para acceder a la VPN, necesitamos exportar nuestro certificado usando 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 completada la instalación, simplemente accedaVPN > OpenVPN > Client Export Utility, para comenzar a exportar el certificado.
En esta Pantalla dejaremos la opción ‘Host Name Resolution‘ como ‘Interface IP Address‘. 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 específico, descargaré ‘Most Clients‘ dentro de ‘Inline Configurations‘, ya que ya tengo un cliente listo. Si va a utilizar un cliente de Windows, Viscosity (Windows o MacOS) u otro cliente, simplemente elija el archivo correspondiente.

Descargar certificado para conexión.

En mi caso, utilizaré el Cliente ‘Tunnelblick‘ en MacOS, para realizar la conexión VPN. Para realizar la conexión, basta con agregar los archivos de configuración a su Cliente, luego, al conectarse, se le solicitará el nombre de usuario y la contraseña de la VPN, la cual pertenecerá 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 PFSense pone a nuestra disposición.
Para eso, vamos a VPN > OpenVPN > Client Export, y descargamos el archivo más adecuado. En este caso, como usaré el cliente OpenVPN, podemos seleccionar la versión en el 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!

Entonces, eso es todo amigos, esta fue nuestra guía de configuración de OpenVPN usando PFSense y la configuración para conectarse a él, usando el cliente OpenVPN, con los archivos proporcionados por PFSense.
¡Gracias y hasta la próxima!