Problème iptables "Invalid argument" [Résolu/Fermé]

Signaler
-
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
-
Bonjour,

Je dispose d'un serveur web tournant sous debian lenny 5.0, étant souvent victime d'attaques SYN/DOS j'aimerais configurer quelques règles, en suivant des tutorials (http://gregoire-penverne.fr/56-Debian+-+Prot%E9ger+son+serveur+des+attaques+DoS.html

Je rentre donc cette règle :
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW -m recent --set --name WEB

Tout se passe bien,

Le problème, c'est lorsque j'essaye de mettre cette règle :


iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 50 --rttl --name WEB -j DROP

J'ai une erreur (invalid argument), pourtant quand je la rentre sur un VPS , ça marche nickel, sur le serveur dédié et sur le VPS la version d'iptables est la même (1.4.2)

J'ai beau chercher, je comprends pas pourquoi il met cette erreur, je pense que c'est un problème de modules mais vu que le message n'est pas très explicatif je sais pas quoi faire...

Cordialement,

2 réponses

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 517
Salut,


man iptables
--hitcount 

....The maximum value for the hitcount parameter is given by the "ip_pkt_list_tot" parameter of the xt_recent kernel module. 
              Exceeding this value on the command line will cause the rule to be rejected. 


:~$ sudo cat /sys/module/xt_recent/parameters/ip_pkt_list_tot
20

Chez moi la valeur est 20

Voici un exemple (20 ça passe, 21 non)

:~$ sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 21 --name WEB -j DROP
iptables: Invalid argument. Run 'dmesg' for more information.

:~$ sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 20 --name WEB -j DROP

GNU/Linux:Linux is Not Ubuntu! Quel linux choisir ne veut pas dire votre Distribution préférée,
106485010510997108
Bonjour lami20j,

Merci, effectivement c'était ça qui coinçait !

Petite précision pour les personnes souhait changer la valeur :

chmod u+w /sys/module/xt_recent/parameters/ip_pkt_list_tot
echo 50 > /sys/module/xt_recent/parameters/ip_pkt_list_tot
chmod u-w /sys/module/xt_recent/parameters/ip_pkt_list_tot

Remplacer 50 par la valeur voulue
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 517
Salut,

Petite précision pour les personnes souhait changer la valeur :

Je ne suis pas d'accord ;-) Voici 3 raisons :

1. Ton changement ne sera plus valable au moment de redémarrage de la machine vu que sys est un système virtuel.
2. Ce genre de modification vaut mieux le faire en root
3. Il faut eviter de changer les droits

Sinon, voici une manière de le faire

:~$ sudo cat /sys/module/xt_recent/parameters/ip_pkt_list_tot    
20   
:~$ sudo rmmod xt_recent   
:~$ sudo modprobe xt_recent ip_pkt_list_tot=200   
:~$ sudo cat /sys/module/xt_recent/parameters/ip_pkt_list_tot    
200   

Test de la commande

:~$ sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 201 --name WEB -j DROP
iptables: Invalid argument. Run 'dmesg' for more information.
:~$ sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 200 --name WEB -j DROP


Pour que la modification soit prise en compte en cas de redémarrage il faut configurer soit modprobe.conf soir voir dans le répertoire /etc/modprobe.d