Salut !
Yann a écritJe dit peut etre une ânerie, mais j'ai toujours utilisé iptables -A au lieu de iptables -I pour rajouter une règle iptables à une chaine.
Oui tu à certainement raison, le -A est le plus approprier pour ceux que je veux faire. Je viens donc de changer mes règles.
Yann a écritD'après la doc, pour limiter la durée:
--seconds seconds
This option must be used in conjunction with one of --rcheck or --update. When used, this will narrow the
match to only happen when the address is in the list and was seen within the last given number of seconds.
C'est pas exactement ce que tu veux, vu que ca va la bannir que apres 15 secondes où l'IP n'a PAS ETE VUE sad
Non justement cela ne fait pas tout à fait ceux que je souhaite, dés que l'IP est revu par le FW, elle remet le compteur à 15.
Je n'ai pas trouver d'info pour pouvoir mettre un compteur de 15 secondes sans pour autant réinitialiser le compteur à chaque fois qu'il vois l'ip ... Il fraudais que le décompte ne se fasse qu'a partir du moment ou il n'y à plus dépassement de 20 syn à la seconde.
Si tu à une idée, je suis preneur.
Yann a écritUn petit détail sinon: ton truc bloque toute IP qui fait plus de 20 SYN sur n'importe quel port en moins d'une seconde - attention aux false positives, je sais pas, par exemple, comment se comporte un HTTPd sans keepalive de ce côté, par exemple avec un gros réseau natté type université smile
C'est vrai j'y est pensais. Mais ce que je compte faire, c'est rediriger en priorité les scan venant de l'extérieur, donc dés que l'IP externe tente de scanner mon serveur web (que je compte intégré en DMZ) elle est directement rediriger, après il y a le problème de l'IP Spoofing qui me fait peur mais je peux ensuite intégré des whitelist en début du script pour éviter ce genre de problème.
Par la suite, peut-être que je me trompe mais, si j’intégrai un serveur DNS et que je bloque également les IP qui flood + de 20 paquet UDP à la seconde je risque de me retrouver avec des faux positifs et donc un serveur DNS banni. Alors, soit j'autorise le serveur DNS à passer cette limite et j'autorise donc les scan udp de mon réseau, soit je met le serveur DNS sur le FW et je bloque directement les clients qui essayent de flood... Ou alors il y a d'autres moyens auquel je n'ai pas pensais.
Yann a écritRajoute une ligne de log peut etre?
En faite cette ligne me le fait : iptables -I Test_Scan -m state --state NEW -p tcp --tcp-flags ALL SYN -i eth1 -o eth0 -m limit --limit 5/minute -j LOG --log-prefix="SYn_FLood"
Et puis en plus le module recent me stocke les IP (100 au total) dans le fichier /proc/net/xt_recent/Attaque_Syn.
Voila, merci !