comando de Linux para evitar el ataque de dos utilizando netstat e iptables


11

Quiero DROP más de 200 solicitudes por ip para evitar el ataque ddos. Este es el comando que utilicé para detectar el recuento de solicitudes por ip:

netstat -alpn | grep :80 | awk '{print $5}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -nr

ahora quiero agregar todas las direcciones IP que hicieron más de 200 solicitudes en IPtables a DROP input y out put.


Como mencionó @dawud, asegúrese de estar consciente de que solo puede "mitigar" y no prevenir totalmente el ataque DDOS a su servidor.
kaptan

Respuestas:


12

También puede usar iptables para limitar la velocidad de las conexiones entrantes. Por ejemplo, si no desea más de 200 conexiones por minuto desde una fuente:

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 200 -j DROP


1
Sería genial tener una explicación de esto también.
incipiente

18

Puedes crear un ipset. De esta manera, puede agregar tantas IP al conjunto como necesite sin modificar el iptablesconjunto de reglas.

ipset -N myset iphash
ipset -A myset 1.1.1.1
ipset -A myset 2.2.2.2

O, en su caso, use la salida de su script y léalo con algo como:

while read a; do ipset -A myset "$a"; done < <(your script here)

Y la referencia en sus iptablesreglas:

iptables -A INPUT -m set --set myset src -j DROP

Lea la página de manual para más detalles y opciones.

También hay otras formas de mitigar un ataque DDOS usando iptablesdirectamente. Lea la iptablessección de la página de manual sobre los módulos connlimity recent.


Esto es genial porque los ipsets son mucho más rápidos que las alternativas como las tablas hash.
isuldor
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.