Limitation de toutes les adresses IP individuelles à un quota de bande passante sortante avec les IP Sets
Vous pouvez configurer votre serveur pour que chaque IP ne puisse utiliser que 15GiByte de bande passante par mois, dans l'espoir de refléter ou d'éviter une attaque de l'utilisation de la bande passante, peut-être pour votre quota de bande passante mesuré par votre FAI. Cela peut se faire de la manière suivante :
Créez d'abord les ensembles IP pour IPv4 et IPv6 :
ipset create IP_QUOTA_SET_OUT hash:ip timeout 345600 counters
ipset create IP_QUOTA_SET_OUT_INET6 hash:ip timeout 345600 counters family inet6
Maintenant ajoutez vos règles iptables. La première ligne ajoutera l'IP à l'ensemble si elle n'y est pas déjà. La deuxième ligne ne correspondra pas si le nombre d'octets transférés pour l'IP dans l'ensemble est supérieur à la quantité spécifiée. Ensuite, on fait la même chose pour IPv6.
iptables -I OUTPUT -m set ! --match-set IP_QUOTA_SET_OUT dst -j SET --add-set IP_QUOTA_SET_OUT dst --timeout 345600
iptables -I OUTPUT -m set --match-set IP_QUOTA_SET_OUT dst --bytes-gt 16106127360 -j DROP
ip6tables -I OUTPUT -m set ! --match-set IP_QUOTA_SET_OUT_INET6 src -j SET --add-set IP_QUOTA_SET_OUT_INET6 src --timeout 345600
ip6tables -I OUTPUT -m set --match-set IP_QUOTA_SET_OUT_INET6 src --bytes-gt 16106127360 -j DROP
Cela permettra d'éviter des attaques telles qu'un utilisateur demandant un fichier volumineux à votre serveur Web pendant une longue période, ou à n'importe quel service d'ailleurs. La même chose peut être faite pour la chaîne INPUT.