VPN LAN2LAN: Guía Práctica para la Configuración entre PfSense y Mikrotik

VPN LAN2LAN: Guía Práctica para la Configuración entre PfSense y Mikrotik

Javier García | SysAdmin & Cloud engineer
en Qualoom Expertise Technology

En este artículo vamos a dar una guía paso a paso de como configurar un servidor de OpenVPN sobre un appliance de Pfsense con el fin de conectar vía OpenVPN las distintas sedes de una empresa mediante VPNs LAN to LAN utilizando como cliente router Mikrotik.

Esquema de infraestrutura planeada

En este caso vamos a partir de un appliance de Pfsense ya instalado, podéis ver un ejemplo de instalación en nuestra entrada sobre servidores OpenVPN

El trabajo consiste en desplegar un servidor de OpenVPN en el Pfsense con una configuración específica para establecer una VPN con los Mikrotik, crear los usuarios que van a utilizarlos y configurar los clientes de OpenVPN en los mismos.

Empezaremos configurando el servidor de OpenVPN:

Utilizaremos el asistente, para ello nos logamos en el Pfsense y vamos a VPN > OpenVPN y seleccionamos Wizards.

Servidor OpenVPN mostrado en un navegador web, con detalles de configuración y estado de conexión visibles.

Seleccionamos en el tipo de servidor de autenticación Local User Access

Servidor de acceso OpenVPN, mostrando interfaz de configuración y opciones de conexión para usuarios remotos.

Seleccionamos la CA que ya creamos en el anterior tutorial, sino podemos crear una nueva.

Servidor de acceso OpenVPN, mostrando interfaz de configuración y opciones de conexión para usuarios remotos.

Seleccionamos el certificado del servidor, en este caso el que ya teníamos emitido.

Servidor de acceso OpenVPN, mostrando interfaz de configuración y opciones de conexión para usuarios remotos.

En el siguiente paso configuraremos los parámetros del servidor de OpenVPN:

  • Protocol > TCP on IPv4 only (para los clientes de OpenVPN de Mikrotik es necesario que sean TCP).
  • Local Port > 1195, esto es porque ya hemos utilizado el 1194 para otro servidor.
  • Description. Debemos poner una descripción para poder identificar posteriormente el servidor.
  • TLS Authentication. Esta opción debe estar desactivada.
  • Data Encryption Algorithms seleccionamos AES-256-GCM.
  • Auth Digest Algorithm seleccionamos SHA1 (160-Bit).
  • Tunnel Network. Aquí ponemos una red que no se vaya solapar con nuestras redes corporativas ya que va a ser la empleada para el direccionamiento del túnel, en este caso 10.126.0.0/24.
  • Local Network. Es la IP de la red local de la oficina en donde reside el Pfsense, si tenéis más de una red que queréis que sea accesible a través del túnel debéis añadirlas separadas por coma, en nuestro caso la IP es 192.168.88.0/24.
  • Concurrent Connections para limitar el número de conexiones que admitirá el servidor, si sólo se van a conectar un número específico de conexiones se puede limitar a ese número.
  • Compression seleccionamos Omit Preference,+ Disable Adaptative LZO Compression.
  • DNS Server indicamos los DNS a entregar.
Servidor de acceso OpenVPN, mostrando interfaz de configuración y opciones de conexión para usuarios remotos.

Le daremos a Next y en la siguiente pantalla dejaremos marcadas las dos opciones por defecto para que cree las reglas correspondientes en el Firewall del Pfsense.

Servidor de acceso OpenVPN, mostrando interfaz de configuración y opciones de conexión para usuarios remotos.

Vamos a revisar nuestro servidor, para ello haremos clic en el icono del lápiz que aparece en la opción Actions.

Servidor de acceso OpenVPN, mostrando interfaz de configuración y opciones de conexión para usuarios remotos.

Ahora debemos modificar ciertos parámetros que no hemos podido cambiar con el asistente:

  • Server mode seleccionaremos la opción Peer to Peer (SSL/TLS).
  • Peer Certificate Revocation list seleccionaremos una que ya tengamos creada o crearemos una nueva.
  • Data Encryption Negotiation activaremos la opción Enable Data Encryption Negotiation.
  • Data Encryption Algorithms añadimos los 6 que empiezan por AES-256-…
  • IPv4 Remote network(s) tenemos que añadir las redes que van a ser accesibles al otro lado del Mikrotik, en nuestro caso 192.168.1.0/24
  • Allow CompressionseleccionaremosDecompress incoming, do not compress outgoing (Asymmetric)
  • Gateway creation seleccionaremos IPv4 only

Quedará configurado del siguiente modo:

Servidor de acceso OpenVPN, mostrando interfaz de configuración y opciones de conexión para usuarios remotos.
Página de configuración de la aplicación, mostrando opciones de personalización y ajustes del usuario.
Página de configuración de la aplicación, mostrando opciones de personalización y ajustes del usuario.
Página de configuración de la aplicación, mostrando opciones de personalización y ajustes del usuario.

Una vez tenemos listo el servidor vamos a crear un usuario para el Mikrotik, aunque realmente sólo necesitaremos los certificados tener un usuario nos facilitara las labores de administración.

Para ello vamos a System > User manager y le damos a + Add:

  • Disabled marcamos la opción This user cannot login ya que este usuario va a ser para un router y no tiene porque logarse en el portal del Pfsense.
  • Definimos los valores de Username, Password y Full name
  • Certificate seleccionamos Click to create a user certificate
  • Descriptive name añadimos un nombre para el certificado.
Página de configuración de la aplicación, mostrando opciones de personalización y ajustes del usuario.

Y le damos a Save para guardar los datos y generar el nuevo usuario.

Ahora procederemos a exportar los certificados necesarios para la conexión, para ello vamos a System > Certificate Manager > Certificates

Localizaremos el certificado del servidor de VPN, en nuestro caso VPN-test, y hacemos clic en el icono con una estrella (Export certificate) de las opciones de Actions y guardamos el archivo .crt

Localizaremos el certificado del usuario para nuestro Mikrotik, en nuestro caso mk01, y descargaremos el certificado y la llave, haciendo clic en los iconos de la estrella y la llave, y guardando los archivos .crt y .key. También nos anotaremos el common name del certificado que aparece después del CN=, en nuestro caso mk01

Página de configuración de la aplicación, mostrando opciones de personalización y ajustes del usuario.

El último paso en el servidor consiste en crear una configuración específica para determinar las redes locales del cliente Mikrotik, para ello vamos a VPN > OpenVPN > Client Specific Overrides y le damos a +Add:

  • Server List seleccionamos nuestro servidor Lan 2 Lan
  • Common Name ponemos el nombre del usuario exactamente igual que aparece en el CN del servidor, en nuestro caso mk01
  • Description poner una descripción.
  • IPv4 Remote Network/s la red o redes que van a ser accesibles tras el Mikrotik, en nuestro ejemplo es 192.168.1.0/24
Página de configuración de la aplicación, mostrando opciones de personalización y ajustes del usuario.

Pulsamos en Save y habremos terminado la parte del Pfsense, ahora tendremos que conectarnos al Mikrotik de la sede. Estos pasos los vamos a realizar con WinBox que es más asequible para los que os estéis iniciado, esta aplicación la podéis descargar desde la página oficial de Mikrotik.

Vamos a partir de que el Mikrotik ya lo tenéis configurado para dotar de al menos una red local a vuestra sede y que tiene una salida a internet habilitada.

Una vez nos conectamos al Mikrotik con el WinBox seleccionamos Files y en la ventana de File List seleccionamos la opción Upload…, después seleccionamos los tres certificados que nos hemos bajado anteriormente de Pfsense, los dos archivos .crt y el archivo .key

Ventana del explorador de archivos con el nombre del archivo resaltado en azul.

Vamos a importar los certificados que hemos subido al router, para ello vamos a System > Certificates y hacemos clic sobre Import, en la opción File Name seleccionamos primero uno de los .crt

Después importamos el segundo archivo .crt del mismo modo.

Captura de pantalla del asistente de certificados, mostrando opciones y pasos para generar un certificado.

Por último, importamos de la misma forma la clave privada del archivo .key

Captura de pantalla de la ventana del software, mostrando su interfaz y opciones disponibles para el usuario.

Una vez importados vemos que junto al certificado del servidor aparece una T y en el del Mikrotik aparece una KT que indica que están tanto el certificado como la llave.

Una vez importados los certificados configuramos la conexión VPN propiamente dicha.

Primero vamos a crear un nuevo perfil para la conexión VPN, vamos a PPP y en la pestaña Profiles y seleccionamos el icono +.

Ponemos un nombre a nuestro perfil, en este caso vamos a definir la IP del túnel que va a tener el remoto (nuestro pfsense) y la IP del túnel que va a tener nuestro Mikrotik, el resto lo dejaremos por defecto.

  • Name: profile_test
  • Local address: 10.126.0.2
  • Remote address 10.126.0.1
Dial de configuración del sistema operativo Windows 7, mostrando opciones de personalización y ajustes del sistema.

Para ello vamos al menú PPP y pulsamos en el icono + de la pestaña Interface y seleccionamos OVPN Client.

Captura de pantalla de la interfaz del software, mostrando menús y herramientas disponibles para el usuario.

En la pestaña General solo ponemos un nombre a la conexión:

  • Name: ovpn-test
Nueva ventana de interfaz en la aplicación de Mac OS X, mostrando un diseño moderno y funcional.
  • En la pestaña de Dial Out.
  • En Connect To: la IP de nuestro servidor, si podemos es mejor utilizar un nombre de DNS
  • Port: Ponemos el puerto TCP que hemos configurado en el Pfsense, en este caso 1195
  • En User ponemos el nombre del usuario creado previamente en el Pfsense mk01
  • En Profile seleccionamos el perfil que hemos creado antes profile_test
  • En certificate seleccionamos el certificado del cliente (el que hemos importado también la clave privada) mk01.crt_0
  • Auth: dejamos Sha1.
  • Chipher: seleccionamos aes 256

Quedando del siguiente modo:

Nueva ventana de interfaz en la aplicación de Mac OS X, mostrando un diseño moderno y funcional.

Una vez que le demos a aceptar se conectará automáticamente la VPN y ya dispondremos de conectividad entre ambas sedes.

En la parte inferior de la ventana de Interface <open-test> se puede ver el estado de la conexión, en este caso debe aparecer Status: Connected

Captura de pantalla del estado de la aplicación

Y con esto quedaría configurada la interconexión de las dos sedes.

Te animamos a seguir nuestras publicaciones en los medios habituales para seguir aprendiendo sobre aspectos básico y avanzados de tecnología de administración de sistemas.