VPN LAN2LAN entre Pfsense y Mikrotik

July 24th, 2022

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.

mikrotik1

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.

mikrotik2

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

mikrotik3

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

mikrotik4

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

mikrotik5

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.

mikrotik6

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.

mikrotik7

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

mikrotik8

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:

mikrotik9mikrotik10mikrotik11mikrotik12

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.

mikrotik13

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

mikrotik14

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

mikrotik15

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

mikrotik16

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.

mikrotik17

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

mikrotik18

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

mikrotik19

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

mikrotik20

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

  • Name: ovpn-test

mikrotik21
  • 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:

mikrotik22

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

mikrotik23

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.

Blog Twitter LinkedIn