miércoles, 15 de noviembre de 2017

Configuracion de Branch Office Tunel con IPsec entre un Firebox Watchguard y un Router Mikrotik

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: 

Recuerde tomar en cuenta los detalles otorgados por su ISP, ya que requerirá las direcciones IPs de cada extremo, así como saber si cuenta con una dirección IP estática una o dirección IP dinámica otorgada por un servicio DHCP (requiere asociación a algún servicio de nombres como dyn)

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 

Sección de configuración de Fase II del túnel Ipsec a través del Policy Manager de nuestro dispositivo Firebox WatchGuard donde configuramos el direccionamiento IP o listas de acceso de las redes o host que se cruzarán tráfico a través del túnel Ipsec a establecer.

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 este caso el extremo donde esta nuestro dispositivo MikroTik cuenta con un direccionamiento Ip público dinámico, el otro extremo: Firebox, cuenta con direccionamiento IP público estático, es recomendable aplicar en el intercambio o modo de negociación automático en lugar de modo Main.

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


domingo, 27 de agosto de 2017

Vlans, Enrutamiento entre Vlans y Seguridad de puertos con dispositivos Cisco.

REDES VIRTUALES
VLAN
Una red totalmente construida sobre dispositivos de capa 2 es una red llamada “red plana”. Este tipo de redes se componen de un único dominio de difusión, es decir, los broadcast inundan toda la red, lo que hace que al aumentar el número de host aumente el número de broadcast disminuyendo el desempeño de la red. Sin embargo las redes conmutadas permiten eliminar las limitaciones impuestas por las redes planas dividiendo dicha red en varias redes virtuales (VLAN)

Las VLAN (Virtual LAN) proveen seguridad, segmentación, flexibilidad, y permiten agrupar usuarios de un mismo dominio de broadcast con independencia de su ubicación física en la red. Usando la tecnología VLAN se pueden agrupar lógicamente puertos del switch y los usuarios conectados a ellos en grupos de trabajo con interés común. Una VLAN por definición es un dominio de difusión creado de forma lógica.

A.Ernesto, B. Enrique 2010, Redes Cisco CCNP a Fondo, Alfaomega RA-MA 

El ejemplo que se muestra en la gráfica siguiente es el que se estará desarrollando para explicar el objetivo de este post. 



 
Este será en escenario a desarrollar en este post, le sugerimos desarrollar el mismo paso a paso vía packet tracert
Para iniciar, comenzaremos configurando el Switch Multicapa via CLI de la siguiente forma:
Añadir leyenda

1)   Nos conectamos via cable consola, SSH o telnet nosotros lo haremos vía puerto consola, es posible que tenga que administrar el switch via http(s) para habilitar la administración por ssh o telnet. 



1)   Crearemos las tres Vlans que se muestran en nuestro diagrama inicial con los siguientes comandos:

Enable
Configure terminal 



Con estos comandos habremos creados las tres Vlan.
Para comprobarlo utilizaremos el comando show vlan


Luego procederemos a configurar las redes para estas Vlans y lo haremos con los siguientes comandos.

Habilitamos la consola de comandos y entramos en modo de configuración.

Enable
Configure terminal

Nos debe aparecer como se muestra en la captura a continuación:




Posteriormente introducimos los siguientes comandos:


Luego procedemos a configurar los puertos que conectan con los Switchs como puertos troncales.




Utilizaremos los siguientes comandos para configurar los puertos resaltados como troncales:

Switch Servidores
En modo de configuracion de interfaz

Inteface fastethernet 0/1
Switchport mode trunk

Estos comandos los utilizaremos en los Switch de capa 2 y debido a que en el otro extremo se encuentra un switch de capa 3 no debemos realizar configuración adicional debido a que la negociación se encuentra en auto, este al detectar los puertos de nuestro Switch de capa 2 en modo trocal se auto configura en modo troncal, como lo pueden ver con el siguiente comando: 

Show interfaces trunk


Procedemos a configurar los puertos en el Switch de Ventas y Operaciones:

Switch Ventas


Switch Operaciones


Comprobamos los extremos:


Como podemos ver el otro extremo negoció un enlace trocal al detectar el puerto en modo troncal del otro extremo.

Seguido a esto configuraremos un servidor DHCP de prueba en el Switch Multicapa con los siguientes comandos. 


Vlan 10 Servidores



    Vlan 20 Ventas




Vlan 30 Operaciones






Luego vamos configurar VTP para que nuestra Vlans se repliquen a todos los Switchs, lo hacemos de la siguiente forma:

El Switch multicapa será nuestro servidor VTP principal el que replicara los cambios de Vlan hacia los demás Switchs,

Los comandos son los siguientes:

Administramos el Switch en modo privilegiado nos debe aparecer de la siguiente forma: 


Con un numeral al final, agregamos los siguientes comandos: 


Los demás Switch los debemos configurar en modo cliente y lo hacemos con los siguientes comandos: 


Una vez hagamos esto, podemos ver con el comando show vlan, que las mismas se crean automáticamente: 


Estos comandos los usaremos en todos aquellos switchs que formen parte de nuestro despliegue de vlans, a excepción del switch principal el cual será configurado como servidor.

Observacion: El password y el nombre de dominio deben ser iguales en todos los Switchs, los que utilizamos anteriormente son de ejemplo.

Luego de esto procedemos a configurar los puertos para asignación de Vlan en nuestros Switch de capa 2, aquellos donde están conectados los dispositivos de usuarios. 


En el switch de servidores procedemos a configurar el puerto f0/2 con el siguiente comando. 


Al hacer esto nuestro servidor debe tomar una IP de del segmento de red de la Vlan 10, lo comprobamos con el siguiente comando en Windows ipconfig. En Linux ifconfig.

ipconfig


Pruebas de ping a nuestro Gateway


De esta misma forma haremos con todos los Switchs y puertos donde tengamos conectados dispositivos.

Procedemos a configurar los Switchs de Ventas y Operaciones.


Verificamos la IP


Seguimos con el Switch de Operaciones


Configuramos el puerto con la Vlan correspondiente

Comprobamos la IP de nuestra PC conectada al Switch de Operaciones.


Ahora realizaremos algunas pruebas de alcance:
Desde el equipo en la vlan de servidores le haremos ping a las demás Vlans


Podemos visualizar que le llegamos a los equipos de las demás redes, esto es posible porque nuestro Switch Multicapa está haciendo el enrutamiento  inter-vlan adicionalmente que las redes están conectadas directamente a él, en caso de que tengamos redes en otros routers, debemos utilizar algún protocolo de enrutamiento dinámico o rutas estáticas.

Seguridad de puerto

En algunos entornos la red debe estar asegurada para controlar qué estaciones terminales podrán tener acceso a la red. Cuando las estaciones de trabajo son estacionarias, sus direcciones MAC siempre se espera que se conecten al mismo puerto de la capa de acceso. En estaciones móviles la MAC puede ser aprendida dinámicamente o ser añadida en una lista de direcciones que se esperan en ese puerto. Los switches Catalyst de Cisco poseen una característica llamada port-security que controla las direcciones MAC asignadas a cada puerto. Para iniciar la configuración de seguridad de puertos en un switch se comienza con el siguiente comando.

Switch(config-if)#switchport port-security

Hasta este punto ya tenemos nuestra red operativa con las Vlans, ahora vamos a agregar seguridad a los puetos de los Switch



Primero configuraremos el puerto FastEthernet 0/2 de nuestro Switch de servidores, nos vamos a modo de configuración en la consola del Switch,
Enable
Configure terminal

switchport port-security mac-address sticky  con este comando configuramos el puerto para que aprenda la MAC del primer equipo que se conecte al puerto, también podemos configurar la MAC de forma estática con el siguiente comando:switchport port-security mac-address (direccion mac)

switchport port-security máximum 1 Este comando se configura para indicar que solo una dirección MAC es permitida por el puerto, la cual fue aprendida con el comando anterior, este aprendizaje tiene un tiempo de caducidad, si el host deja de transmitir por un tiempo específico se olvida la MAC y se aprende cuando el host vuelva a transmitir.

switchport port-security violation shutdown (Este comando permite configurar una opción para cuando se viole la configuración del comando anterior, en este caso tenemos tres opciones:

Shutdown: el puerto automáticamente se pone en el estado errdisable, lo que hace dejarlo inoperable y tendrá que ser habilitado manualmente o utilizando la recuperación de errdisable.

Restrict: el puerto permanente activo pero los paquetes desde las direcciones MAC que están violando la restricción son eliminados. El switch continúa ejecutando el temporizador de los paquetes que están violando la condición y puede enviar un trap de SNMP a un servidor Syslog para alertar de lo que está ocurriendo.

Protect: el puerto sigue habilitado pero los paquetes de las direcciones que están violando la condición son eliminados, no queda ninguna constancia de lo que está aconteciendo en el puerto.


Procedemos a configura los puertos TRONCALES


En el Switch Multicapa configuraremos el puerto FastEthernet 0/1 y estas mismas configuraciones la replicaremos a los demás puertos troncales,

Switchport trunk allowed vlan 10,20,30

Se agregan tantas Vlans como tengamos o las que queramos que pasen por los puertos troncales.

Los switch utilizados en los ejemplos son:

1 Switch multicapa 3560
3 Switch de Capa 2 2960

Observación: Algunos comandos pueden sufrir pequeñas variaciones, dependiendo del modelo del Switch.

Carlos Palomo.
Analista II/ Desarrollo de Proyectos.
Servicios de Proyectos y Consultoría SGSI 0526