Todos sabemos lo traumático que puede llegar a ser configurar dispositivos de distintas marcas para establecer comunicación segura a través de un túnel Ipsec entre diversas sucursales de una organización, no hace falta más que tener control del entorno (incluyendo que puede ser lidiar con los ISP y los posibles bloqueos de puertos requeridos para establecer este tipo de conexiones) o configuraciones con nateos a partir de los enrutadores de cara a Internet para saber de lo que estamos hablando.
Pero contar con tecnologías tan potentes a través de los dispositivos Firebox Watchguard y MikroTik no es una de esas razones para no intentarlo.
Protocolo de Internet Seguro, IPsec, nos permite establecer conexiones seguras entre nuestras oficinas o sucursales que requieran comunicación con servicios centralizados, tales como VPNs hibridas, acceso a servicios de voz y datos, monitoreo y compartimiento de información de forma segura, entre muchas otras bondades.
Procedemos entonces con el laboratorio de configuración entre un dispositivo Mikrotik RB951UI-2HND y un dispositivo Firebox WatchGuard M440 en el otro extremo.
Inicialmente
comenzaremos a configurar los parámetros del dispositivo Firebox Watchguard con
los pasos a continuación:
1.
En
el Policy Manager nos dirigimos
hacia VPN – Branch Office Gateways –
le damos clic en add, se nos abrirá el
cuadro para la configuración del nuevo tunel VPN Ipsec:
Visual de configuración de un nuevo Gateway VPN en el Policy Manager del Firebox |
En
este paso configuraremos los siguientes datos:
-
Gateway
Name: Nombre del Gateway (peers utilizados)
-
En General Settings
Use Pre-Shared Key (Establecemos una clave para el túnel) recuerde que este valor debe ser exactamente igual en el otro extremo, sugerimos una clave de encriptamiento fuerte.
Al final en Gateway Endpoints le damos clic en add y nos aparecerá lo siguiente:
En Interface externa debemos especificar
la interfaz por la cual vamos a establecer el túnel.
Seguidamente seleccionamos By IP Address y colocamos
la dirección IP pública correspondiente a la interface.
Luego, nos vamos a
la sección Remote Gateway un poco más abajo y configuramos lo siguiente:
Si la dirección
IP de nuestra sucursal remota es dinámica y se encuentra configurada con un
Dyndns seleccionamos Dynamic IP Address y By Domain Information en el siguiente
campo, si la dirección IP del otro extremo es estática seleccionamos Static IP Address y agregamos la dirección IP correspondiente, en la parte de abajo tildamos By IP
Address tildada por defecto y asignamos la dirección IP correspondiente al otro
extremo.
Luego de
configurar estas opciones nos dirigimos a la pestaña Phase 1 Settings y
configuramos los siguientes parámetros
(recuerde que este es un laboratorio, los mecanismos de autenticación y encriptación mientras más robustos mucho mejor)
Version: IKEv1
Mode: Aggressive
Tildamos NAT Traversal
Keep-alive Interval: 20 seconds
Tildamos IKE Keep-alive: 30
seconds
Max Failures: 5 seconds
Tildamos Dead Peer Detection
Traffic idle timeout: 20 seconds
Max retries: 5 seconds
En la sección de
Transform Settings en la misma sección de Phase I
Editamos la
configuración con los siguientes parámetros:
Authentication: MD5
Encrytion: 3DES
SA Life: 8 hours
Key Group: Diffie-Hellman Group1
Con esta
configuración hemos finalizado la configuración de Phase I
Procedemos a Phase II y nos dirigimos a la siguiente ruta en el Policy Manager de nuestro dispositivo Firebox WatchGuard
VPN
– Branch Officce Tunnels
y le damos clic en add
Procedemos a
configurar los siguiente parametros:
Tunnel Name: Nombre para el túnel
Address: En esta sesión agregaremos la red privada local y la red remota
privada que podrán comunicarse.
Luego procedemos
a configurar la Phase 2 en la
pestaña Phase 2 Settings
En esta sección le damos clic
a add para agregar una nueva fase II y configuramos los siguientes
parámetros:
Hasta este punto tenemos la configuración lista en nuestro dispositivo Firebox WatchGuard. Procedemos a configurar el otro extremo: dispositivo MikroTik, recuerde salvar los cambios. |
Administramos nuestro dispositivo Mikrotik y nos vamos a la sección de Ipsec,
nos aparecerá una pantalla parecida a la siguiente:
Damos clic en la pestaña Peer y configuraremos los
parámetros de fase I de la siguiente forma:
En Address
colocamos la dirección Ip publica del dispositivo remoto, los demás parámetros
los configuramos igual como lo tenemos en el otro extremo.
Luego pasamos a configurar la
fase II y lo hacemos como se muestra en la captura
En Proposal o también llamado Fase II, definimos las redes que tendrán comunicación. |
Nos aparecerá la
siguiente pantalla, procedemos crear la misma configuración que creamos en el
Firebox
Recuerde que los dos extremos deben ser exactamente iguales. |
Luego de esto
pasamos a crear y este punto es muy importante una política para permitir la
comunicación entre las redes privadas.
Le damos clic en
Ipsec, luego le damos clic en polices agregamos la política en Add New.
Nos aparecerá la
siguiente ventana:
En Src Address colocamos nuestra red local
y en Dst Address colocamos la red
local remota.
En SA SRC
Address colocamos la IP pública local o en su defecto se puede colocar 0.0.0.0
que no indica cualquier red local.
En SA Dst
colocamos la dirección IP publica de destino
Por último,
debemos crear una Nat para permitir las redes privadas configuradas y lo
hacemos de la siguiente forma:
Nos dirigimos a
Firewall – NAT no saldrá la siguiente pantalla:
Src. Address
(Direccion IP privada de origen)
Dst. Address
(Direccion IP privada de destino)
Ahora vamos a
configurar un DYNDNS a nuestro Router Mikrotik, para ello nos dirigimos a la
pestaña Sistema, Script. Creamos uno nuevo y le colocamos el nombre de DYNDNS,
dentro del campo colocaremos el siguiente código:
Solo debemos
modificar las primeras 3 líneas con la información de nuestra cuenta DynDns
# Define User Variables
:global ddnsuser
"DYNDNSUSER"
:global ddnspass "DYNDNSPASS"
:global ddnshost
"DYNDNSHOST"
# Define Global Variables
:global ddnsip
:global ddnslastip
:if ([ :typeof
$ddnslastip ] = nil ) do={ :global ddnslastip "0" }
:global ddnsinterface
:global ddnssystem
("mt-" . [/system package get system version] )
# Define Local Variables
:local int
# Loop thru interfaces and
look for ones containing
# default gateways without
routing-marks
:foreach int in=[/ip route
find dst-address=0.0.0.0/0 active=yes ] do={
:if ([:typeof [/ip route get $int
routing-mark ]] != str ) do={
:global ddnsinterface [/ip route get
$int interface]
}
}
# Grab the current IP
address on that interface.
:global ddnsip [ /ip
address get [/ip address find interface=$ddnsinterface ] address ]
# Did we get an IP address
to compare?
:if ([ :typeof $ddnsip
] = nil ) do={
:log info ("DynDNS: No ip address
present on " . $ddnsinterface . ", please check.")
} else={
:if ($ddnsip != $ddnslastip) do={
:log info "DynDNS: Sending UPDATE!"
:local str "/nic/update?hostname=$ddnshost&myip=$ddnsip&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
/tool fetch address=members.dyndns.org
src-path=$str mode=http user=$ddnsuser \
password=$ddnspass
dst-path=("/DynDNS.".$ddnshost)
:delay 1
:local str [/file find
name="DynDNS.$ddnshost"];
/file remove $str
:global ddnslastip $ddnsip
}
}
Luego debemos
programar el tiempo de actualización y lo hacemos de la siguiente forma:
Nos dirigimos a System – Scheduler y agregamos el siguiente script:
/system scheduler
add interval=1m name=DynDns on-event=DynDns policy=ftp,reboot,read,write,policy,
test,winbox,password,sniff,sensitive,api start-time=startup
En la línea Interval colocamos el tiempo y en name el nombre de nuestro Script.
En este punto
hemos finalizado la configuración en el dispositivo MikroTik, listo para recibir las peticiones de un iniciador que bien puede ser el Firebox Watchguard o el mismo dispositivo Mikrotik.
Carlos Palomo.
Analista II/ Desarrollo de Proyectos.
Servicios de Proyectos y Consultoría SGSI 0526
Analista II/ Desarrollo de Proyectos.
Servicios de Proyectos y Consultoría SGSI 0526