Laboratorio de seguimiento de las conexiones

Routeros implementa un firewall de tipo statefull. Un firewall de tipo statefull es un cortafuegos que puede seguir conexiones de icmp, udp y tcp.

Esto significa que el firewall es capaz de identificar si un paquete tiene relación con paquetes anteriores. Por ejemplo si es un paquete de respuesta a una petición icmp echo(ping) forma parte de una comunicación que comenzó con una petición icmp echo(ping).

Tcp, Udp, Icmp

Un cortafuegos statefull no solo sigue conexiones TCP, también sigue conexiones udp e icmp.

El seguimiento de las conexiones utiliza la pestaña connections. En esta pestaña se muestran la información más relevante sobre cada una de las conexiones.

En la Figura1-1 Tabla de conexiones podemos observar la tabla de conexiones junto a los valores por defecto de los protocolos TCP y UDP. Esta ventana aparece tras pulsar el botón tracking.

Una imagen de la tabla de conexiones
Figura 1. Tabla de conexiones
Configuración conexiones
Figura 2.Configuración de valores por defecto de conexiones

En el siguiente lab vamos a utilizar las reglas del cortafuegos para realizar el seguimiento de un paquete desde su emisión por parte del portatil del usuario hasta la vuelta del paquete relacionado con la conexión.

La configuración inicial es la siguiente:

set [ find default-name=ether2 ] comment="To Lan" name=ether1
set [ find default-name=ether1 ] comment="To internet" name=ether1-internet
set [ find default-name=ether3 ] name=ether2
set [ find default-name=ether4 ] name=ether2-Lan
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=dhcp_pool0 ranges=192.168.11.2-192.168.11.254
/ip dhcp-server
add address-pool=dhcp_pool0 disabled=no interface=ether1 name=dhcp1
/ip address
add address=192.168.11.1/24 interface=ether1 network=192.168.11.0
/ip dhcp-client
add dhcp-options=hostname,clientid disabled=no interface=ether1-internet
/ip dhcp-server network
add address=192.168.11.0/24 gateway=192.168.11.1
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1-internet
/system identity
set name=R1
Regla de nateo
Figura 3. Regla de nateo
Regla de masquerade
Figura 4. Action de masquerade

A continuación creamos la regla que marca la conexión. Utilizamos la acción mark-connections

/ip firewall mangle
add action=mark-connection chain=forward dst-address=8.8.8.8 new-connection-mark=icmp passthrough=yes protocol=icmp
add action=mark-packet chain=forward connection-mark=icmp new-packet-mark=icmpout out-interface=ether1-internet passthrough=yes
add action=mark-packet chain=forward connection-mark=icmp new-packet-mark=icmpin out-interface=ether2-Lan passthrough=yes

Tras lanzar el siguiente ping desde el laptop:

jose@fiberclidev:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=122 time=4.51 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=122 time=6.21 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=122 time=6.06 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=122 time=4.27 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=122 time=3.72 ms

--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 3.720/4.957/6.213/1.002 ms

Vamos a analizar cada una de las reglas y su funcionamiento:

/ip firewall mangle
add action=mark-connection chain=forward dst-address=8.8.8.8 new-connection-mark=icmp passthrough=yes protocol=icmp

En esta primera regla marcamos una conexión con la marca de conexión icmp.

Observaremos en la pestaña connections

Tabla de conexiones
Figura 5. Conexión en la tabla de conexiones

Y confirmamos que hay conteo de paquetes en el interfaz del equipo:

Conteo de paquetes
Figura 6. Conteo de paquetes conexiones

En la siguiente regla comprobamos el conteo de paquetes de icmp que salen del equipo al exterior. En la parte de coincidencia de la regla utilizamos la marca de conexión(2) que configuramos en la acción de la primera regla.

En esta caso la acción que se toma es marcar el paquete(4).

La forma correcta de marcado de conexiones, es en primer lugar marcar conexiones y en segundo lugar marcar los paquetes.

/ip firewall mangle
add action=mark-packet chain=forward connection-mark=icmp new-packet-mark=icmpout out-interface=ether1-internet passthrough=yes
Marca de paquetes out
Figura 7. Marcado de paquetes de salida

Necesitamos utilizar la cadena forward(1) porque la cadena prerouting no permite utilizar el interfaz de salida como matching.

En la última regla marcamos de nuevo el paquete(2) y esta vez utilizamos como interfaz de salida el interfaz(1) al que está conectado el portatil.

/ip firewall mangle
add action=mark-packet chain=forward connection-mark=icmp new-packet-mark=icmpin out-interface=ether2-Lan passthrough=yes
Marca de paquetes in
Figura 8. Marcado de paquetes de entrada

Deja un comentario

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


CAPTCHA Image
Reload Image