comando linux per prevenire attacchi DOS usando netstat e iptables


11

Voglio DROP più di 200 richieste per ip per prevenire attacchi ddos. questo è il comando che ho usato per rilevare il conteggio delle richieste per ip:

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

ora voglio aggiungere tutti gli indirizzi IP che hanno fatto più di 200 richieste in IPtables all'input e all'output DROP.


Come accennato da @dawud, assicurati di essere consapevole che puoi solo "mitigare" e non prevenire completamente l'attacco DDOS al tuo server.
kaptan,

Risposte:


12

Puoi anche usare iptables per limitare la velocità delle connessioni in entrata. Ad esempio, se non desideri più di 200 connessioni al minuto da una fonte:

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
Sarebbe bello avere una spiegazione anche di questo.
Sfogliando il

18

Puoi creare un ipset. In questo modo è possibile aggiungere al set tutti gli IP necessari senza modificare il set di iptablesregole.

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

Oppure, nel tuo caso, usa l'output del tuo script e leggilo con qualcosa del tipo:

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

E il riferimento nelle tue iptablesregole:

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

Leggi la manpage per maggiori dettagli e opzioni.

Esistono anche altri modi per mitigare un attacco DDOS usando iptablesdirettamente. Leggi la iptablessezione manpage relativa ai moduli connlimite recent.


Questo è geniale perché gli ipset sono molto più veloci delle alternative come gli hashtabili.
Isuldor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.