OpenVPN y Mikrotik.

Mikrotik logoEn este artículo veremos cómo funciona el binomio OpenVPN y Mikrotik. Openvpn es una de las soluciones más utilizadas en el mundo Linux para establecer túneles de manera segura . Esta solución nos permite a través de certificados conectar tanto usuarios del tipo RoadWarriors como sedes remotas.

En el siguiente ejemplo usaremos un equipo Mikrotik RB750 como cliente ovpn para unir una sede remota a la oficina principal.

El primer paso es copiar los tres archivos que debe haber generado el servidor OpenVPN para el cliente. Tendremos un certificado con la clave pública de la Autoridad de Certificación, un certificado con la clave pública del cliente y finalmente un certificado con la clave privada del cliente.

Openvpn y Mikrotik | Copia de certificados.

Una vez copiados debemos importar dichos certificados para poder usarlos para establecer el túnel. Para ello podemos ir al terminal y ejecutar los siguientes comandos:

/certificate
import file=client1.crt
import file=client1.pem
import file=ca.crt

Acto seguido verificamos que los certificados han sido importados correctamente con el comando:

/certificate print

Antes de seguir con la configuración debemos saber si nuestro servidor OpenVPN está configurado con el driver TAP o TUN. Ambos son drivers de bajo nivel desarrollados para el kernel de Linux. Sin embargo mientras que TUN trabaja con tramas IP, TAP lo hace con tramas ethernet. ¿En qué nos afecta esto? básicamente si nuestro servidor OpenVPN está configurado como TUN trabajaremos enrutando el tráfico a la VPN y si es TAP tendremos que hacer una configuración en modo BRIDGE.

 A la hora de la configuración  crearemos un nuevo interface con la siguiente configuración:

interface ovpn-client add name=”ovpn-out1″ connect-to[IP_DESTINO] port [PUERTO] mode=[si el enlace es TUN selecciona “ip” si es TAP selecciona “ethernet” user=”nobody” password=”” profile=default certificate=[CERTIFICADO IMPORTADO] auth=sha1 cipher=blowfish128

mikrotik interface ovpn-client

Finalmente tenemos que definir qué tráfico debe encaminarse el túnel.

ip firewall nat add action=masquerade chain=srcnat out-interface=ovpn-out1 dst-address=[LAN_SEDE_REMOTA]

NOTA: No olvides añadir una regla de NAT si quieres permitir que los usuarios de la sede remota puedan salir a internet.

ip firewall nat add action=masquerade chain=srcnat out-interface=ether1-gateway to-addresses=0.0.0.0

A partir de aquí podemos utilizar todo el potencial que OpenVPN y mikrotik ponen a nuestro alcance como priorizar determinado tipo de trafico que cruce nuestro túnel o visualizar en tiempo real qué ancho de banda tenemos disponible. Así mismo nos podría resultar de utilidad definir reglas en el firewall que limite el tipo de tráfico que utiliza nuestro túnel.

Más información: Mikrotik Wiki.

15 comentarios en “OpenVPN y Mikrotik.

    1. JMNogueira Autor

      Buenas,

      Perdón por la demora. Si tienes un servidor web en una sede que tienes interconectada por VPN tan sólo tienes que poner en tu navegador la dirección ip del servidor al que deseas acceder. Eso si, si intentas acceder usando un nombre FQDN (miservidor.local) tendrás que asegurarte de que el nombre se traduce a un ip correctamente.

      Un saludo.

      Responder
  1. Hansi

    Buenas,

    Tengo un mikrotik que es cliente ovpn de un endian firewall.
    El mikrotik tiene 1 interfaz como wan, la cual esta conectada a un router modem que le brinda Internet y 4 puertos lan.
    Las redes son las siguientes:

    El firewall esta en la central donde en la red 192.168.100.0/24.
    El cliente ovpn tiene una ip en este rango.
    El router modem que la da internet al mikrotik tiene la ip 192.168.1.0/24
    El mikrotik es servidor dhcp y tiene la ip 192.168.200.1/24 y da ip’s de ese rango.

    En el firewall tengo una ruta estática en la cual todo lo que valla a la red 192.168.200.0/24 se encamina por la ip del cliente ovpn del mikrotik.

    Desde la lan 192.168.200.0/24 puedo llegar a la red 192.168.100.0/24 pero no viceversa.

    Si envío un ping desde la red 192.168.100.0/24 me responde time out.

    La consulta es:
    Hay alguna manera de rutear el tráfico que entra por la ovpn desde central para que llegue a la lan?

    Gracias

    Responder
    1. JMNogueira Autor

      Buenas,

      El problema lo tienes en la forma en la que tienes configurado el servidor OVPN en el endian. Si te fijas, en el ejemplo del post, hay tres redes, la red de la oficina central, la red OVPN y la red de la oficina destino.

      Prueba lo siguiente, crea un servidor OVPN con un rango propio DHCP independiente y diferente del de las oficinas, por ejemplo, 172.16.4.0/24. De esta forma, el endian tomará la primera ip del rango y el MKT la segunda. Una vez levantado el túnel crea las siguientes rutas:

      MKT para llegar a la 192.168.100.0/24 por la 172.16.4.1/32

      endian para llegar a la 192.168.200.0/24 por la 172.16.4.2/32

      A mi me funciona así.

      Un saludo.

      Responder
      1. Hansi

        Estuve revisando esto, ya que no me parecía que por tener una tercera red cambiara algo.
        Finalmente hice la prueba de configurar el cliente Ovpn en PPP/Interface, ya que lo estaba configurando en Interfaces/Inteface y en esta pequeña diferencia estaba la falla.
        No se si sera un bugs o si tiene elementos pre configurados que no se pueden modificar, pero ahora tengo correctamente funcionando la comunicación bidireccional entre la central y la lan cliente a traves de la Ovpn.

        Saludos y gracias

        Responder
        1. JMNogueira Autor

          Gracias por tu aporte!!

          Realmente no sé donde puede estar el problema pero si te puedo decir que todos los enlaces los he creado cliente OVPN desde el menú Interfaces/interface como una interface más del MKT. También es cierto que por otra serie de razones necesito establecer diferentes subredes que me ayuden a segmentar el tráfico y priorizarlo más fácilmente.

          De nuevo gracias!

          Responder
  2. angel

    Hola

    Me gustaria hacer 2 preguntas.

    Tengo un servidor openvpn montado en un UBUNTU.
    ¿Es posible configurar un mikrotik con opnvpn en modo cliente contra este servidor?

    Los certificados que expende mi servidor son un ca.crt , client.crt y client.key en vez de . pen.
    ¿Es compatible?

    En dd.wrt me funciona, pero en mikrotik no consigo que conecte.

    Un saludo

    Responder
    1. JMNogueira Autor

      Buenas,

      Es posible que se conecte. No obstante para simplificarte la existencia yo utilizaría una distribución como zentyal que ya incorpora soporte ovpn con certificados. Por otro lado, si necesitas convertir tus certificados aqui puedes hacerlo.

      No olvides que los equipos MKT no son compatibles con la compresión de encabezados lzo por lo que deberás desactivarlos en tu servidor.

      Un saludo.

      Responder
      1. Diego Esteban Pardo Ramirez

        Maestro JMNogueira de casualidad no tienes un tutorial de conectar Mikrotik como cliente a un server Zentyal , estoy trabajando con unos Openwrt clientes del zentyal y se conectan como clientes en el caso de Mikrotik es igual o se configuran como tunel zentyal-zentyal?. antes de montar la red vpn me di por vencido con mikrotik por eso opte con los ruters con Openwrt pero ahora no se consiguen en el mercado routers que se puedan covertir.

        te agradezco inmensamente si me ayudas con esto.
        diego_p_r@yahoo.es

        Responder
        1. JMNogueira Autor

          Buenas,

          Perdona el retraso al responder. En realidad este post está basado en la conexión de un Mikrotik a un servidor Zentyal. Lo que sucede es que la configuración que yo utilicé no era site-to-site. En cualquier caso, con zentyal y mikrotik funcionan de maravilla los túneles ipsec.

          Un saludo.

          Responder
          1. Diego Esteban Pardo Ramirez

            Master Juan Manuel lo molesto de nuevo.
            compro de nuevo una rb941.2nd-tc para hacer de nuevo el intento de la vpn zentyal mikrotik le hice con túnel zentyal a zentyal pero no logro hacer la converción de los crt a pem

  3. cmercado

    Buenas, soy nuevo en esto pero necesito crear una VPN entre tres ciudades, para lo cual tengo 3 ip publicas, pero necesito saber que modelo de router me recomiendan para hacer este tunel y sobre todo, si es posible hacer esto con mikrotik, ya que necesito que todas las terminales puedan verse independientemente de donde se encuentre el servidor de VPN, de antemano gracias.

    Responder
    1. JMNogueira Autor

      Buenas,

      Qué tipo de tecnología utilizas en cada sede, adsl, cablemodem? En un principio podrías usar un Mikrotik RB750 en cada sede luego, en función del tipo de router que tengas podrás montar el túnel utilizando un protocolo u otro. En cualquier caso puedes usar OVPN que funciona bastante bien y es muy seguro. Configurarías un servidor en la sede central y el resto se conectaría a este.

      Un saludo.

      Responder
      1. cmercado

        Muchas gracias por la respuesta, la tecnología utilizada es adsl.
        Haré caso a tu consejo y nuevamente te agradezco, saludos cordiales.

        Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *