Pero lo primero que tienes que hacer es analizar el ataque, monitoriza las conexiones, etc. Tienes que buscar algún patrón, normalmente aunque sean muchas máquinas todas atacan en orden aleatorio pero siempre de la misma manera porque reciben ordenes.
¿A que puerto van dirigidas? Si es al 80, pues filtra (mitigar tráfico de nueva conexiones) al puerto 80
Código:
-A INPUT -p tcp -m state -m recent --dport 80 --state NEW --set
-A INPUT -p tcp -m state -m recent --dport 80 --state NEW -j DROP --update --seconds 5 --hitcount 20
¿Tienen algún patrón, user-agent? Deniega dicho user-agent o filtra los bots.
etc, etc.