Iptable : Limiter le nombre de connexions par IP

11 Jan 2013 par jj, Pas de commentaire »
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name BLACKLIST --set
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name BLACKLIST --update --seconds 10 --hitcount 10 --rttl -j DROP

Avec les deux règles précédentes je refuse (DROP) les nouvelles (-m state –state NEW) connexions entrantes (-A INPUT) au port http (–dport 80) qui atteignent le taux de 10 connexions (–hitcount 10) sur une période de 10 secondes (–seconds 10) et qui utilisent le protocol tcp (-p tcp).

La première règle sert à mettre à jour l’adresse IP dans la liste BLACKLIST et la seconde règle permet de limiter les connexions.

 

Bloquer les attaquants sur une période plus grande que le taux

Le problème des règles précédentes est que l’adresse IP attaquante est bloquée sur une période glissante qui n’est que de 10 secondes.

Pour bloquer sur une période différentes que celle qui définit par le taux limite j’ai mis en place les règles suivantes :

Création d’une nouvelle chaine BLACKLIST :

iptables -N BLACKLIST

Lorsqu’un paquet arrive dans la chaine BLACKLIST on le drop et on ajoute son IP dans la liste BLACKLIST :

iptables -A BLACKLIST -m recent --name BLACKLIST --set -j DROP

On bloque les paquets pour une période de 60 secondes :

iptables -A INPUT -m recent --update --name BLACKLIST --seconds 60 --rttl -j DROP

Quand un paquet arrive en entrée sur le port 80 on met son IP dans la liste COUNTER :

iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name COUNTER --set

Si un paquet arrive en entrée et qu’il dépasse le taux on le redirige dans la chaine BLACKLIST :


iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name COUNTER --update --seconds 
10 --hitcount 10 --rttl -j BLACKLIST

 

http://dev.petitchevalroux.net/linux/iptable-limiter-nombre-connexions-par-linux.342.html

 

Étiquettes : , , , , , , ,

Réagissez

Suivez moi !

Follow Me! Follow Me! Follow Me! Follow Me!

Chercher