Un ataque de denegación de servicio (DoS) o de denegación de servicio distribuido (DDoS) es un intento malicioso de interrumpir el tráfico normal de un servidor, servicio o red objetivo, saturando el objetivo o su infraestructura circundante con una inundación de tráfico de Internet. Existen varios tipos de ataques DDoS, por ejemplo, inundación HTTP, inundación SYN, amplificación DNS, etc.
Líneas de configuración
Estas reglas son sólo una mejora para el firewall, no olvides proteger adecuadamente tu dispositivo.
/ip firewall address-list
add list=ddos-attackers
add list=ddos-targets
/ip firewall filter
add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s
add action=add-dst-to-address-list address-list=ddos-targets address-list-timeout=10m chain=detect-ddos
add action=add-src-to-address-list address-list=ddos-attackers address-list-timeout=10m chain=detect-ddos
/ip firewall raw
add action=drop chain=prerouting dst-address-list=ddos-targets src-address-list=ddos-attackers
Explicación de la configuración
Primero, enviaremos cada nueva conexión a la cadena de firewall específica donde detectaremos DDoS:
/ip/firewall/filter/add chain=forward connection-state=new action=jump jump-target=detect-ddos
En la cadena recién creada, añadiremos la siguiente regla con el parámetro «dst-limit». Este parámetro tiene el siguiente formato : dst-limit= count[/time],burst,mode[/expire] . Emparejaremos 32 paquetes con ráfagas de 32 paquetes según el flujo de las direcciones de destino y origen, que se renueva cada 10 segundos. La regla funcionará hasta que se supere una tasa determinada.
/ip/firewall/filter/add chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s action=return
Hasta ahora, todo el tráfico legítimo debería pasar por «action=return», pero en caso de DoS/DDoS, el límite de tiempo se cumplirá y una regla no detectará tráfico nuevo. A continuación, se presentan las siguientes reglas, que se encargarán del ataque. Comencemos creando una lista de atacantes y víctimas, que eliminaremos:
ip/firewall/address-list/add list=ddos-attackers
ip/firewall/address-list/add list=ddos-targets
ip/firewall/raw/add chain=prerouting action=drop src-address-list=ddos-attackers dst-address-list=ddos-targets
Con la sección de filtro de firewall, agregaremos atacantes en la lista «DDoS-attackers» y víctimas en la lista «ddos-targets»:
/ip/firewall/filter/
add action=add-dst-to-address-list address-list=ddos-targets address-list-timeout=10m chain=detect-ddos
add action=add-src-to-address-list address-list=ddos-attackers address-list-timeout=10m chain=detect-ddos
Ataque SYN
Inundación SYN
Una inundación SYN es un tipo de ataque DoS en el que un atacante envía una sucesión de solicitudes SYN al sistema objetivo para intentar consumir suficientes recursos del servidor como para que el sistema deje de responder al tráfico legítimo. Afortunadamente, RouterOS cuenta con una función específica para este tipo de ataque:
/ip/settings/set tcp-syncookies=yes
Esta función funciona enviando paquetes ACK que contienen un pequeño hash criptográfico, que el cliente respondedor repetirá como parte de su paquete SYN-ACK. Si el kernel no detecta esta «cookie» en el paquete de respuesta, asumirá que la conexión es falsa y la abandonará.
Inundación SYN-ACK
Una inundación SYN-ACK es un método de ataque que consiste en enviar paquetes SYN-ACK falsificados al servidor objetivo a una alta velocidad. El servidor requiere una cantidad considerable de recursos para procesar estos paquetes desordenadamente (sin seguir el mecanismo habitual de protocolo de enlace de tres vías TCP SYN, SYN-ACK y ACK). Puede llegar a estar tan ocupado gestionando el tráfico del ataque que no puede gestionar el tráfico legítimo, lo que provoca una situación de denegación de servicio (DoS/DDoS). En RouterOS, podemos configurar reglas similares a las del ejemplo anterior, pero más específicas para la inundación SYN-ACK:
/ip/firewall/filter add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s protocol=tcp tcp-flags=syn,ack
Creado por Artūrs C. , última actualización por Normunds R. el 3 de octubre de 2024
Ayuda de Mikrotik
Ilustración propia, generada con IA