commande linux pour empêcher les attaques de dos en utilisant netstat et iptables

11

Je veux SUPPRIMER plus de 200 demandes par ip pour empêcher une attaque ddos. c'est la commande que j'ai utilisée pour détecter le nombre de requêtes par ip:

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

Maintenant, je veux ajouter toutes les adresses IP qui ont fait plus de 200 demandes dans IPtables à l'entrée DROP et à la sortie.

Morteza Soltanabadiyan
la source
Comme @dawud l'a mentionné, assurez-vous que vous êtes conscient que vous ne pouvez "atténuer" et pas vraiment empêcher totalement les attaques DDOS sur votre serveur.
kaptan

Réponses:

12

Vous pouvez également utiliser iptables pour limiter le taux de connexions entrantes. Par exemple, si vous ne voulez pas plus de 200 connexions par minute à partir d'une source:

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

LinuxDevOps
la source
1
Ce serait formidable d'avoir également une explication à ce sujet.
ffledgling
18

Vous pouvez créer un ipset. De cette façon, vous pouvez ajouter autant d'adresses IP à l'ensemble que vous le souhaitez sans modifier l'ensemble de iptablesrègles.

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

Ou, dans votre cas, utilisez la sortie de votre script et lisez-la avec quelque chose comme:

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

Et la référence dans vos iptablesrègles:

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

Lisez la page de manuel pour plus de détails et d'options.

Il existe également d'autres moyens d' atténuer une attaque DDOS en utilisant iptablesdirectement. Lisez la iptablessection de la page de manuel sur les modules connlimitet recent.

dawud
la source
C'est génial car les ipsets sont beaucoup plus rapides que les alternatives telles que les tables de hachage.
isuldor