Sunteți pe pagina 1din 94

CURSO MIKROTIK

MODULO INTERMEDIO
Zbyte TelCo.
CONTROL DE TRAFICO AVANZADO
Temario a Impartir
Interpretación del diagrama completo de flujo.
Usos avanzados de Firewall, Nat y Mangle.
UPnP, WebProxy, WebProxy HIT.
DNS y DHCP cliente y servidor.
QoS, CIR, MIR, BURST, HTB.
Simple Queue, Queue Tree.
Disciplinas de encolamiento.
Balanceo de links de internet.
VPN
Address List.
Laboratorio Inicial
 Resetear el router con la opción “no-default=yes”
 Crear red I0.0.ID.0/24 entre su laptop (.254) y el router (.1)
 Conectar su router al SSID “Training MikroTik “
 Levantar un cliente DHCP sobre la interfaz WLAN. El AP del
entrenador provee IP, DNS y Gateway.
 Obtener acceso a internet desde su laptop a través de su propio router.
 Establecer el Identity y radio name de su router con su ID y nombre
Ej: “0I – MARIO”
 Crear un backup y copiarlo a su laptop para tenerlo como
configuración inicial.
Verificación Rápida
Todos deben estar en lista de registración .
Verificar al radio-name de cada estación registrada.
Verificar que su router haya tomado IP, DNS y Gateway.
Verificar al acceso a internet desde su router y PC.
PACKET FLOW
Chains por defecto y Connection Tracking
Las reglas pueden ser ordenadas en 3 cadenas por defecto:
• INPUT: Procesa paquetes que tienen como destino final el router.
• OUTPUT: Procesa paquetes enviados por el router.
• FORWARD: Procesa paquetes que atraviesan el router.

También se pueden crear cadenas personalizadas y llamarlas (JUMP).

Connection Tracking:
• Es el Corazón del firewall. Mantiene un registro de todas la conexiones
activas
• Al deshabilitarlo, se liberan recursos de CPU, Pero se pierde toda la
funcionalidad de NAT y MANGLE.
Chains por Defecto
Estado de Conexiones
Representa un estado asignado por el connection tracking a cada
paquete
> New: Paquete que abre una nueva conexión.
> Established: Paquete que pertenece a una conexión ya
abierta
> Invalid: Paquete que no forma parte de ninguna conexión
valida.
> Related: Paquete que también abre una nueva conexión,
pero relacionado de alguna manera a una conexión ya
establecida.
Acciones Firewall
• ACCEPT: Acepta los paquetes.
• DROP: Descarta los paquetes.
• JUMP: Salta a una cadena especifica.
• RETURN: Regresa a la cadena desde donde salto.
• LOG: Muestra en el log, información del paquete.
• PASSTHROUGH: Solo incrementa los contadores.
• ADD SRC/DST TO ADDRESS LIST: Envía el origen/destino a una lista.
• REJECT: Lo mismo que drop, pero envía un mensaje ICMP de rechazo.
Cadenas de Firewall
• Además de las cadenas predefinidas (input, forward y output),
se pueden crear cadenas adicionales .
• Hacen la estructura del Firewall más simple.
Protocolo ICMP
ICMP es una herramienta de análisis y reparación de una red, el cual
debe ser permitido atravesar el Firewall.

Un típico router usa solo 5 tipos de mensajes ICMP [tipo:código]:


> PING: mensajes 0:0 y 8:0
> TRACEROUTE: mensajes 11:0 y 3:3
> Path MTU Discovery: mensaje 3:4

Cualquier otro tipo de mensaje ICMP deberá ser bloqueado.


LAB: Firewall
Crear en un nuevo chain las 3 reglas que aseguren que solo los
paquetes con estado new serán procesados por el router:
> Bloquear todos los paquetes con estado INVALIDO.
> Aceptar todos los paquetes con estado RELACIONADO.
> Aceptar todos los paquetes con estado ESTABLECIDO.
Llamar a ese nuevo chain desde INPUT Y FORWARD para liberar
carga de CPU.
Crear una regla de reject para el ICMP contra el router.
Deshabilitar el connection Tracking y verificar si aun hay Internet.
Tipos de Intrusión
• La intrusión a la red es un serio y riesgoso problema de seguridad
que puede resultar no solamente en denegación temporal de servicios,
sino incluso en total rechazo de red.
Los 4 mayores tipos de intrusión son:
• Ping Flooding.
• Escaneo de Puertos.
• Ataques de Dos.
• Ataques de DDos.
Ping Flooding
 Consiste en un volumen aleatorio de mensaje ICMP
Con la condición “Limit” es posible limitar la tasa de paquetes por
segundo aceptando un máximo establecido en la regla y descartando
el resto.
Esta acción es usualmente usada junto con una regla de log para
analizar lo que esta limitado.
Escaneo de Puertos
 Es una prueba secuencial buscando puertos abiertos.
 PSD solo es posible con el protocolo TCP.
Puertos Bajos: Del 0 al 1023.
Puertos Altos: Del 1024 al 65535.
Solo basta con habilitarlo para que comience a funcionar.
LAB: Ping Flooding
 Cree un chain personalizado con el nombre “ICMP”.
Dentro de ese chain, acepte solo los 5 mensajes ICMP mas
utilizados, limitando cada uno de ellos a 5 paquetes por segundo.
Bloquee el resto de trafico ICMP.
Configure ahora una regla de “jump” para todo el trafico ICMP
que llegue al router y posiciónela en el orden correcto.
Utilice la herramienta PING del router para verificar los
contadores de las reglas creadas.
Ataques de DoS
El objetivo principal de un ataque de DoS es consumir los recursos
del sistema (CPU o ancho de banda), al punto que los servicios
estándar obtienen una denegación de servicio.
Usualmente el router es atacado con paquetes de requisición de
conexiones TCP/SYN causando que el servidor responda con un
ACK y esperando por un TCP/ACK.
Muchos atacantes de DoS son clientes infectados con virus.
Ataque de DoS
• Todas las IP con mas de 10 conexiones de router deberán ser
consideradas potencialmente atacantes de DoS.

Con cada conexión TCP dropeada le permitiremos al atacante crear


una conexión nueva . Deberemos implementar la protección de 2
pasos:
>Detección: Crear una lista de sitios atacantes basados en un
limite de conexiones dado.
>Supresion: Aplicando restricciones a esas IP desde donde el
Router es atacado.
Supresión de ataques de DoS
Para impedir que el atacante genere nuevas conexiones usaremos la
acción “Tarpit”.

Tarpit lleva el tamaño de la ventana a cero, bloqueando el tráfico


con el atacante.
Pondremos esta regla antes de la regla de detección para evitar que
todo el tiempo la entrada se sobre escriba (haciendo que se eleve el
CPU).
Detección de ataques de DoS
Ataques de DDoS
Los ataques de denegación pueden ser enviados desde una PC o por
varias, pero también existe la posibilidad de que potentes servidores
actúen de la misma forma. A esto último se lo llama una ataque
distribuido.
Lo único que puede ayudarnos a protegernos ante un ataque de
denegación de servicios distribuido es la opción “TCP SynCookie”.
LAB: Port Knocking
Genere una combinación de reglas para hacer un port knocking
para el siguiente orden de puertos.

- 10000, 10020, 10010.


Toda IP que no este dentro del address list “admin” no podrá tener
acceso por WEB al router.
Crear una regla de log para ver tamaño de un ping originario
desde su laptop.
Filtrado en Capa 7

Layer7–Protocol es un clasificador que identifica los paquetes


basados en los datos de la capa de aplicación independientemente
del puerto que utilicen.
Hay varias aplicaciones y protocolos que tienen un comportamiento
ya estudiado y detectado, el cual se puede cargar en un sector en
particular del router para que las pueda identificar y aplicar las reglas
correspondientes.
Hay un proyecto L7 obsoleto (l7–filter), pero sirve como base para
las detecciones.
Filtrado en Capa 7
 Los patrones se cargan en IP > Firewall > Layer 7 en forma de
expresión regular.
El uso de patrones en capa 7 aumenta considerablemente el uso
de CPU.
LAB: Layer 7
Utilice el listado de patrones en capa 7 que figura en el sitio
-http://l7-filter.sourceforge.net/protocols.

Mediante reglas de PASSTHROUGH intente detectar.

-HTTP, P0P3, SMTP Y DNS

Analice el consumo de CPU del uso de LAyer7.


MANGLE
Marcado de Paquetes
MANGLE
 Este módulo permite marcar los paquetes IP de manera especial,
para un tratamiento interno.
Estas marcas son usadas dentro de otros módulos del router
como el ruteo selectivo y la calidad de servicio.
Adicionalmente la funcionalidad mangle permite modificar ciertos
Campos en el encabezado del paquete IP como TOS (o DSCP) y
TTL.
 Es el 50% de una buena QoS.
Estructura del Mangle
Las reglas de mangle también se organizan en cadenas.
Hay 5 cadenas por defecto:

-Prerouting: Marca todo lo que ingresa al router.


-Postrouting: Marca todo lo que sale del router.
-Input: Marca todo lo que tiene como destino el router.
-Forward: Marca todo lo que atraviesa el router.
-Output: Marca todo lo que origina el router.
Se pueden definir nuevas cadenas y llamarlas desde alguna por
defecto.
Estructura del Mangle v5
Cambios en Packet Flow V.6
Marca de Conexiones
 Use la marca de conexión para identificar una ó un grupo de
conexiones asociadas a una marca especifica.
Las marcas de conexión son guardadas en la tabla de connection
tracking.
Puede haber solo una marca de conexión para cada paquete.
Acciones
Mark-Connection: Marca sólo el primer paquete.
Mark-Packet: Marca paquetes para políticas de QoS.
Mark-Routing: Marca paquetes para políticas de ruteo.
Change MSS: Cambia el tamaño máximo del segmento (similar al
MTU).
Change DSCP (ToS): Cambia el tipo de servicio.
Change TTL: Cambia el tiempo de vida.
Marca de Paquetes
El segundo paso es marcar todos los paquetes relacionados con la
marca de conexión anterior; y así armar un túnel bidireccional.

Como regla mnemotécnica, siempre que se marca una conexión hay


que dejar habilitado el passthrough y siempre que se marca paquetes
hay que quitarlo.
LAB: Mangle

 Marque las conexiones y paquetes HTTP (TCP 80).


Marque las conexiones y paquetes del HTTPS (TCP 443).
Marque los paquetes de DNS (UDP 53).
Marque los paquetes ICMP.
Marque las conexiones y paquetes restantes.
Ejercicios
Utilice el connection tracking para ver los protocolos que caen en
la marca “otros”.
Marque SMTP y POP3 (TCP 25 y 110).
Marque el Winbox (TCP 8291).
Marque el servicio de Escritorio Remoto (TCP 3399).
Marque el servicio de SSH y Telnet bajo una misma marca (TCP 22 y
23).
Genere una excepción para no darle QoS a una IP o grupo de IP en
particular.
Políticas de Ruteo
• Las políticas pueden ser por marca de paquetes,
puertos u otro tipo.
• La marca del paquete debe ser adicionada en
1
mangle con routing-mark.
• Luego de elegir la marca debe agregarse una regla
de Gateway con esa marca. Interface local

• Cada paquete puede tener una marca de ruteo.

2 3
Políticas de Ruteo
• Ejemplos de políticas de ruteo:
• Por protocolos (http/https/ftp)
• Interfaces (entrada/salida)
• Address (source o destination)
• Tipo de tráfico (p2p y tráfico
“normal”)

Proveedor A: HTTP (navegación)


Proveedor B: HTTPS (Youtube, Facebook)
Proveedor C: Juegos (Dota, LoL, Wow)
Balanceo de Carga PCC
(Per Connection Classifier)
PCC permite dividir el tráfico en flujos iguales con capacidad para
mantener los paquetes con un conjunto específico de opciones en un
flujo en particular (se puede especificar este conjunto de opciones en
src-address, src-port, dst-address, dst-port).
PCC toma los campos seleccionados de la cabecera IP, y con la ayuda de
un algoritmo de hash convierte los campos seleccionados en un valor
de 32 bits. Este valor entonces es dividido con un denominador
especificado que separa el marcado del tráfico en el número de flujos
seleccionados.
PCC
• En primer lugar es necesario verificar que todas las conexiones
iniciadas desde una wan, salgan por la misma wan (ip pública).
• Es decir todo lo que entra por una línea, debe salir por la misma línea.
PCC
Luego dividimos el
tráfico
seleccionado en
tantas conexiones
como queramos.
La cadena
prerouting captura
todo el tráfico que
ingresa al router y
para evitar esto en
el balanceo se
selecciona dst-
address-
type=!local
PCC
• Marcamos la conexión para luego darle la marca de ruta y finalmente
la marca de paquete.
PCC – Marcado de paquete 1er stream
PCC – Marcado de paquete 2do stream
DNS Cliente y Caché
 El DNS cliente es usado únicamente por el router en el caso e la
utilización de HotSpot o Web-Proxy.
Habilitar la opción “Allow Remote Requests” Transforma el DNS
cliente en DNS caché.
DNS caché le permite utilizar su router en lugar de servicios
remotos, minimizados los tiempos de resolución.
DNS caché puede actuar como Server DNS para la resolución en la
red local.
LAB: DNS Caché
 Configurar su router como DNS caché.
Agregar una entrada DNS “impresora.local” a tu router apuntando
a la dirección IP 192.168.10.1.
Utilice el comando “nslookup” para chequear resolución.
nslookup impresora.local.
Observe como bloquear Facebook en el router de su trainer.
QoS (Quality of Service)
Calidad de Servicio
Limitación y QoS
• QoS no es solo limitación!
• QoS es un intento de usar los recursos existentes de manera racional
(no necesariamente debe de usarse toda la velocidad disponible).
• QoS balancea y prioriza el flujo de datos, previniendo que algo o
alguien monopolice el canal de datos (nunca es suficiente). Por esto
es llamado “Calidad de Servicio”.
Principios básicos de QoS
 QoS es implementado no solo “limitando” sino con parámetros
adicionales, como:

-Burst (ráfagas).
-Dual limitation (limitación dual).
-Queue hierarchy (jerarquía de colas).
-Priority (prioridades).
-Queue discipline (disciplinas de encolamiento).
Las disciplinas de queuing controlan el orden y la velocidad de los
paquetes saliendo por la interfaz de SALIDA.
CIR y MIR
Hay 2 tipos de limites:

-CIR (Committed Information Rate) – en el peor caso, el flujo


obtendrá lo asegurado (limit-at).
-MIR (Maximal Information Rate ) – en el mejor caso podemos
llegar a la máxima velocidad (max-limit).
 CIR = Limit-At en Mikro tik RouterOS.
 MIR = Max-Limit en MikroTik RouterOS.
 El MIR del parent debe ser igual o mayor que la suma de los CIR
hijos.
CIR y MIR
Simple Queues

Target Address: Dirección Origen. Colores de Queue


Dst Address: Dirección destino. Verde: 0% - 50%
Max Limit: Máximo ancho de banda que puede Amarillo: 51% - 75%
transferir.
Limit At: Ancho banda asegurado. Rojo: 76% - 100%
LAB : LIMITACION DUAL

Cree una queue para limitar la comunicación de su laptop con el


WEB Server (IP:200.49.131.22)

-max-limit: 172Kbps/1024Kbps
-dst-address: ip_del_web_server
Cree un queue para limitar la comunicación de su laptop con
internet

-max-limit a 172Kbps/384Kbps.
Ráfagas (Burst)
 Es una de las maneras de asegurar QoS.
Son usados para permitir velocidades más altas por cortos
periodos de tiempo.
Si el promedio de velocidad “average data” es menor que el
parámetro “burst threshold” , el burst será permitido (alcanza la
velocidad de “burst limit”). (switch on-off).
El promedio (average data) es calculado:
Con los últimos “burst-time” segundos.
El burst-time es dividido en 16 periodos.
Ráfagas (Burst)

Max limit = 256 kbps burst threshold = 192kbps


Burst limit = 512 kbps burst time = 8 seg
Ráfagas (Burst)
LAB: Burst
Borra las queues en tu configuración.
Crea un queue para tu laptop con los parámetros upload/
download a 64kbps/256Kbps.
Configura burst:
- Burst-limit a 0Kbps/12Kbps
- Burst-threshold 0Kbps/512Kbps
- Burst-time 30 segundos
Usa el servidor WEB para probar las limitaciones y observa la
gráfica de trafico.
- Queue Tree / HTB -
Queue Tree

 Toda la calidad de servicio implementada en el RouterOS esta


basada en HTB.
HTB permite crear estructuras jerárquicas de queue y determina
relaciones entre queues padres e hijos y entre queues hijos.
RouterOS v5 soporta 3 HTB Virtuales (global-in, Global-out, global-
total) y una mas antes de cada interface.
RouterOS v6 tiene una sola interface global.
Queue Tree v6
Queue Tree - Estructura
 Cuando una queue tiene al menos un hijo se convierte en queue
padre (parent).
Todos los queue hijos (no importa cuantos niveles de padres tiene)
están al mismo nivel inferior del HTB.
Las queue hijas (child) hacen el consumo actual de tráfico, las
queue padres son responsables únicamente de la distribución.
Las queue hijas obtienen el limit-at primero, luego el resto del
trafico es distribuido por el padre.
Queue Tree - Estructura
Queue Tree - Estructura
HTB – Limit-at

3Mbps 1Mbps 1Mbps


HTB – Limit-at

3Mbps + 1.5Mbps SIN TRAFICO


HTB – Limit-at

3Mbps + ??? 1Mbps + ??? SIN TRAFICO


Prioridad
• 8 es la más baja prioridad, 1 es la mas alta.
• Queue con mas alta prioridad llegará a su CIR antes que la que tiene
menos prioridad.
• Queue con mas alta prioridad llegará a su MIR antes que el queue que
tenga menos prioridad.
• La priorización únicamente funcionará si el max-limit está seteado
(No 0).
• La prioridad no tiene efecto en las colas parent.
HTB - Prioridad
HTB - Ejemplos

B se lleva más ancho de banda, puesto que tiene mayor


prioridad que C.
HTB - Ejemplos

• B, C1 y C2 se llevarán cada una 2Mbps conforme el Limit-at de ellas.


HTB - Ejemplos

C1 y C2 llegan a su Max-Limit, ya C tiene un Limit-At de 4Mbps


HTB - Ejemplos

• La prioridad no tiene importancia en las colas padres.


HTB - Ejemplos

Una vez que se completan todos los Limit-At, el resto se lo distribuye


de acuerdo a la prioridad.
HTB - Ejemplos

Todas las colas hijas se llevarán 2Mbps.


HTB - Ejemplos

• Una vez cumplidos todos los Limit-At, C1, C2 y C3 tienen mayor


prioridad para llegar al Max-Limit.
HTB - Ejemplos

Todas las hijas tienen la misma prioridad, por lo que una vez cumplido
su Limit-at, el resto se distribuye equitativamente.
HTB - Ejemplos

Una vez cumplidos todos los Limit-at de las hijas, B aún tiene 2Mbps de
Limit-at que llenar. Luego se distribuye el resto por prioridad.
LAB: HTB

• Marque todas las conexiones HTTP.


• Marque todos los paquetes de las conexiones HTTP.
• Marque todos los paquetes de protocolo ICMP.
• Marque todas las demás conexiones.
• Marque los paquetes de todas las demás conexiones.
• Verifique la configuración.
LAB: HTB
LAB: Queue Tree

• Crea un queue tree:


• >Crea una queue main (512 kbps)
• >Crea una queue “hija” para ICMP (50k/100k)
• >Crea una queue “hija” para HTTP (256k/512k)
• >Crea una queue “hija” para OTHER (0k/512k)
• Consume todo el tráfico disponible y verifica los tiempos de respuesta
de ping.
• Cambia a una prioridad más alta a ICMP.
• Verifica nuevamente los tiempos de respuesta.
LAB: Queue Tree
Prioridades según tipo de tráfico
Priorización de tráfico por tipo de servicio
PCQ (Per Connection Queue)
• PCQ es una disciplina de encolamiento propietaria de MikroTik.
• Con PCQ es posible dividir/ecualizar el ancho de banda entre los
usuarios por partes iguales.
• Es necesario definir el Max-Limit para que conozca la cantidad de
ancho de banda a dividir.
• PCQ permite setear un limite para todos los usuarios en una sola
queue.
Algoritmo PCQ en Acción
Algoritmo PCQ en Acción
Creación de PCQ de Bajada
Creación de PCQ de Subida
Ecualizando toda la red con PCQ

PCQ va a distribuir el tráfico disponible equitativamente entre cada subqueue


hasta que el pcq-rate sea alcanzado (si es especificado).
Por qué no usar simple queue?
• Simple queue son reglas ordenadas – similar al firewall.
• Para ejecutar la regla de queue 999 tiene que pasar por 998
anteriores.
• La utilización de marcas por los diferentes abonos y luego brindarle el
ancho de banda a cada uno de ellos es posible, en consecuencia
requiere muchas reglas de marcado.
• El reducir la cantidad de reglas mejora la performance de trabajo.
ADDRESS LISTS
• Con address list podemos asignar múltiples direcciones o rangos a
una misma regla de firewall, de esta manera se reduce el número de
reglas y se incrementa la performance del router.
• El address list puede ser creado:
• Manualmente.
• Automáticamente vía reglas del firewall y PPP profile (especificando la opción
address list).
• HotSpot y DHCP.
• Vía RADIUS.
ADDRESS LISTS
LAB: Mangle + PCQ + Queue Tree + Address List
• Cliente VIP 1 - 256k
• Marque todas las conexiones de 10.0.ID.100 (Vip1_C)
• Marque todos los paquetes de las conexiones.

• Cliente VIP 2 - 125kbps


• Marque todas las conexiones 10.0.ID.200 (Vip2_C)
• Marque los paquetes de las conexiones.
• Cree dos PCQ – uno 256k y otro 125k
• Cree el Queue Tree jerárquico para descarga.
• Pruebe las limitaciones.
¿PREGUNTAS?

S-ar putea să vă placă și