Petite question pour iptables pour bloquer le nombre de sessions tcp par client :
Il est préférable de faire un simple
-j REJECTOu un
-j REJECT --reject-with tcp-reset plus propre ?
Ou faire un
-j DROP comme quand je bloque des plages IP ?
Je vois aussi que les limites sont assez basses dans mon tutoriel.
Aujourd'hui, sur le forum c'est
# Limiter le nombre de sessions tcp par client (un client = une IPv4 ou un /64 en IPv6)
/usr/sbin/iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 200 -m limit --limit 30/hour --limit-burst 1 -j LOG --log-prefix="drop-c-"
/usr/sbin/iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 200 -j REJECT
/usr/sbin/ip6tables -A INPUT -p tcp --syn -m connlimit --connlimit-above 200 --connlimit-mask 64 -m limit --limit 30/hour --limit-burst 1 -j LOG --log-prefix="drop-c-"
/usr/sbin/ip6tables -A INPUT -p tcp --syn -m connlimit --connlimit-above 200 --connlimit-mask 64 -j REJECT
Sur
https://fr.archive.ubuntu.com/ j'ai mis 1000 et je vois des CG-Nat des opérateurs mobile dans mes log de rejets.
/usr/sbin/iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 1000 -m limit --limit 30/hour --limit-burst 1 -j LOG --log-prefix="drop-c-"
/usr/sbin/iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 1000 -j REJECT
/usr/sbin/ip6tables -A INPUT -p tcp --syn -m connlimit --connlimit-above 1000 --connlimit-mask 64 -m limit --limit 30/hour --limit-burst 1 -j LOG --log-prefix="drop-c-"
/usr/sbin/ip6tables -A INPUT -p tcp --syn -m connlimit --connlimit-above 1000 --connlimit-mask 64 -j REJECT
Par contre dans les process Apache, je ne vois rien d'énorme, malgré le --connlimit-above 1000 qui est réguliérement dépassé.