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.


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


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.


C'est génial car les ipsets sont beaucoup plus rapides que les alternatives telles que les tables de hachage.
isuldor
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.