MikroTik RouterOS - Firewall Filtros de Firewall, Sistema de detección de intrusión a la red (NIDS), Traslación de direcciones de red (NAT)
Estructura de los filtros de Firewall Reglas de filtrado estan organizadas en cadenas Hay cadenas de default y cadenas definidas por el usuario Hay 3 cadenas por default input – procesa los paquetes que tienen como destino final el ruteador/firewall output – procesa los paquetes enviados por nuestro ruteador/firewall forward – procesa los paquetes que pasan a traves de nuestro ruteador/firewall Cada cadena definida por el usuario debe estar subordinada cuando menos a una de las cadenas de default 2
Diagrama de la estructura de filtrado del firewall
3
Filtros de firewall El filtrado de firewall es una herramienta para filtrar tráfico Esto consiste de una serie de reglas que tienen la secuencia de reglas tipo: SI-ENTONCES 0) SI
ENTONCES 1) SI ENTONCES 2) SI ENTONCES Si el paquete no cumple con todas las condiciones de la regla, este es enviado a la siguiente regla. Si el paquete cumple todas las condiciones de la regla, la acción especificada es aplicada. 4
Reglas de filtrado – en Winbox
5
Cadenas de filtrado de firewall Tu puedes re-rutear trafico a cadenas definidas por el usuario, usando la acción “jump” (y dado el caso, rerutear de vuelta con la opción “return”)
Usuarios pueden añadir cualquier numero de cadenas Estas son usadas para optimizar la estructura del firewall y hacerla mas manejable Tambien ayudan a mejorar el performance reduciendo el numero promedio de reglas procesadas por paquete
6
Cadenas definidas por el usuario
7
Tácticas de construcción de un firewall
Tire todo lo unnecesario, acepte Acepte lo demás. lo necesario, tire lo demá
8
Monitoreo de Conexiones El sistema Connection Tracking (o Conntrack) es el corazón del firewall, este recopila y maneja todas las conexiones activas. Deshabilitando el Connection Tracking el sistema pierde su capacidad de ofrecer NAT asi como la mayor parte de las condiciones de filtrado y marcado. Cada entrada de la tabla representa un intercambio bidireccional de datos Usa muchos recursos de CPU (deshabilitalo si no estás usando firewall o nat) 9
Proceso del Conntrack
10
Conntrack – en Winbox
11
Condición: Estado de Conexión Es el estatus asignado a cada paquete por el sistema de conecction tracking: New – paquete esta abriendo una nueva conexión Established – paquete forma parte de una conexión establecida Invalid – paquete no forma parte de alguna conexión conocida Related – paquete esta abriendo una nueva conexión, pero en cierta manera tiene relación con alguna conexión ya conocida
Estado de conexión ≠ Estado TCP
12
Estado de Conexión
13
Ejemplo de la primer regla de filtrado
14
Cadena Input Proteger el ruteador – permitir solamente los servicios necesarios desde fuentes confiables.
Laboratorio de Cadena Input Cree 3 reglas para asegurar que solamente los paquetes con estado de conexión “new” procederan a entrar al firewall Drop a todas las conexiones con estado “invalid” Accept all connection-state related packets Accept all connection-state established packets
Crea 2 reglas para asegurar que solamente tu te conectarás a tu ruteador Accept a todos los paquetes desde la ip de tu laptop Drop a todo lo demas 16
Mantenimiento de firewall Escribe comentarios en cada regla, para hacer a tu ruteador/firewall mas manejable Checa los contadores de cada regla, para que determines la actividad de cada regla Cuida la posición de la regla, esto es muy importante Usa la acción “passthrough” para determinar la cantidad de trafico antes de aplcar cualquier acción
Usa la accion “log” para coleccionar información detallada del tráfico.
17
Acción “log”
18
Servicios RouterOS
19
Laboratorio de Servicios RouterOS Crea reglas para permitir que solamente los servicios necesarios que provee nuestro equipo, puedan ser accedidos desde la red publica
Usa la acción “log”para determinar esos servicios Crea una regla para permitir winbox, ssh y telnet desde la red del instructor (10.1.2.0/24) Ordena las reglas de manera adecuada
Escribe comentarios para cada regla
20
IMPORTANTE Los filtros de firewall no filtran comunicaciones a nivel de MAC Debes deshabilitar las funcionalidades MACTELNET y MAC-WINBOX al menos desde la interface publica Debes deshabilitar la funcionalides de descubrimiento y el ruteador no se descubrirá por si solo nunca mas (“/ip neighbor discovery” menu) 21
MAC-telnet y MAC-winbox
22
Cadena Forward Protección de nuestra red a virus y ataques desde Internet y protección de Internet de ataques desde nuestra red
Laboratorio de cadena forward Cree 3 reglas para asegurar que solamente los paquetes con estado de conexión “new” procederan a través del firewall a la cadena forward (lo mismo que hicimos en el laboratorio de cadena input). Cree reglas para cerrar el trafico a los puertos de los virus mas populares Drop TCP y UDP rango de puertos 137-139 Drop TCP y UDP puerto 445 24
Filtrado de puertos de virus Al momento hay algunos cientos de trojanos activos y al menos 100 gusanos activos Puedes bajar una lista completa de “bloqueo de puertos de virus” (alrededor de 500 puertos) desde wiki.mikrotik.com Algunos virus y trojanos usan puertos de servicios estandar y NO pueden ser bloqueados.
25
Bogon IPs Hay alrededor de ~4,3 miles de millones de direcciones IPv4 Hay algunos rangos restringidos para uso en la red publica. Hay muchos rangos de IP's reservados (no usados al momento) para propósitos específicos Hay muchísimos rangos de direcciones IP no usados
Puedes encontrar informacion acerca de los rangos no usados en: http://www.completewhois.com/bogons/ 26
Opciones de Lista de Direcciones Con la lista de direcciones puedes crear una regla que aplique para varias direcciones ip o varios segmentos ip, que esten ingresados en la lista. Lo puedes usar como lista de origen o de destino
Se crea en el menu “/ip firewall address-list”
27
Ejemplo de lista de direcciones Haz una lista de direcciones de las mas comunes IP's de Bogons
28
Knock Port Usando listas de acceso por tiempo, podemos implamentar un sistema mas seguro para entrar a nuestros equipos desde direcciones inseguras o publicas. Se genera una regla para que cuando el equipo reciba una petición por un puerto conocido alto (ejemplo: 12789) que la direccion origen la meta a una lista de direcciones (lista_segura) durante un tiempo de... 1 minuto. Enseguida una regla de filtrado en input por el puerto de servicio (winbox tcp port 8291) donde solo se permita la generación de nueva conexión a la lista (lista_segura). Tenemos un minuto para entrar a partir de que hicimos el knock. Una vez dentro, ya no nos sacará. Ese procedimiento tendría que hacerse cada vez que se quisiera entrar. 29
Knock Port Ejemplo:
30
Knock Port Ejemplo...
31
Knock Port Ejemplo...
32
Knock Port Con estas reglas, para poder entrar vía winbox a nuestro equipo, primero hay que hacer un knock al puerto 12789 haciendo desde nuestra laptop: “telnet 12789”
A partir de esto tenemos un minuto para entrar via winbox a nuestro equipo, si pasa ese tiempo tenemos que repetir el knock.
33
Laboratorio de filtrado de direcciones Permite paquetes hacia tu red desde direcciones válidas de Internet Permite paquetes hacia tu red que vengan desde direcciones válidas de tus clientes Permite salir paquetes desde tu red y con destino a direcciones válidas de tus clientes Permite paquetes salir desde tu red solo hacia direcciones válidas de Internet 34
Cadenas definidas por el Usuario Estructura de firewall, cadenas reutilizables
Protocolo ICMP Protocolo de mensajes de Control de Internet (ICMP) es básicamente una herramienta de análisis y reparación de una red, debe ser permitido pasar a través del firewall Un típico ruteador usa solo 5 tipos de mensajes ICMP (tipo:código) Para PING - mensajes 0:0 y 8:0 Para TRACEROUTE – mensajes 11:0 y 3:3 Para Path MTU discovery – mensaje 3:4 Cualquier otro tipo de mensajes de ICMP debería ser bloqueado 36
Ejemplo de regla para ICMP
37
Laboratorio para cadena ICMP Haga una nueva cadena – ICMP Acepte los 5 tipos de mensaje ICMP necesarios Drop a todo lo demás de ICMP Mueva todos los paquetes de ICMP a esta nueva cadena
Cree una regla con acción “jump” en la cadena de input Verifique el orden de la regla
Cree una regla con acción “jump” en la cadena de forward Verifique el orden de la regla 38
Regla de “jump”para ICMP
39
Tipos de intrusión a la red Intrusión a la red es un serio y riesgoso problema de seguridad que puede resultar no solamente en denegacioón temporal de servicios, sino incluso en un total rechazo a servicios de red Podemos anotar los 4 mayores tipos de intrusiones: Ping flood Escaneo de puertos
Ataque de DoS Ataque de DDoS
40
Ping Flood Ping flood usalmente consiste de un volumen de mensajes aleatorios de ICMP Con la condición “limit” es posible ajustar una regla para que se cumpla con cierto límite Esta accion usualmente es usada junto con una regla igual anterior pero con acción “log” 41
Escaneo de puertos Es una prueba secuencial buscando puertos abiertos TCP (UDP) PSD (Detección de escaneo de puertos) solo es posible con el protocolo TCP Puertos Bajos De 0 al 1023
Puertos Altos Del 1024 al 65535 42
Laboratorio de protección de intrusos Ajuste las 5 reglas de ICMP para cumplirse con un límite de 5 paquetes por segundo con una posibilidad de 5 paquetes de desborde o burst Cree la proteción PSD Cree una regla de drop PSD en la cadena de input Verifíque su orden
Cree una regla de drop PSD en la cadena de forward Verifíque su orden 43
Ataques de DoS El objetivo principal de un ataque DoS es consumir los recursos del sistema (CPU o ancho de banda), al punto que los servicios estandar obtienen una denegación de servicio Usualmente el ruteador es atacado con paquetes de requisición de conexiones TCP/SYN causando que el servidor responda con un paquete TCP/SYN-ACK y esperando por un paquete TCP/ACK.
Muchos atacantes de DoS son clientes infectados con virus
44
Protección de ataques de DoS Todas las IP's con mas de 10 conexiones al ruteador deben ser consideradas potencialmente atacantes de DoS Con cada conexión TCP descargada (dropeada) le permitiremos al ataque crear una nueva, deberemos implementar la protección en 2 pasos: Detección – Crear una lista de sitios de ataque basado en un límite de conexiones dado. Supresión – Aplicando restricciones a esas ip's desde donde nos atacan.
45
Detección de ataque de DoS
46
Supresión del ataque de DoS Para impedir que el atacante cree nuevas conexiones , usaremos la accion “tarpit” Pondremos esta regla justamente antes de la regla de detección o de lo contrario la entrada de la lista de direcciones se estara reescribiendo todo el tiempo 47
Ataques de DDoS Un ataque distribuido de denegación de servicio es similar a un ataque de DoS solo que este ocurre desde muchos sistemas de manera coordinada. Lo unico que puede ayudarnos en esto es usar la opción “TCPSyn Cookie” en connection tracking 48