Niveau :      
Résumé : iptables -m timeout --timeout ; iptables -C

Bon léger retard. Après quelques erreurs de manip j'ai perdu mon patch indiqué précédemment. Ext3 contrairement à ext2 ne pardonne pas dans ce genre de situation. Heureusement photorec est mon ami et j'ai donc retrouvé mon patch.

La partie netfilter

Il s'agit d'un module netfilter permettant d'inclure des règles temporaires dans le firewall. Celles-ci ne matcheront que pendant une durée limitée. Par exemple vous voulez offrir temporairement un accès à votre serveur de photo classées Y à un ami :

$ iptables -A INPUT -s 192.168.2.1 -p tcp --dport 80 -m timeout --timeout 3600 -j ACCEPT

Si vous avez un outil (comme fail2ban) qui analyse vos logs et qui filtre les paquets de gens qui vous attaquent, vous pourrez lui indiquer que les règles sont temporaires (hé oui, si l'ip est une ip dynamique vous pouvez bloquer à vie quelqu'un qui ne devrait pas être bloqué).

$ iptables -A INPUT -s 192.168.2.1 -m timeout --timeout 86400 -j DROP

Je m'aperçois maintenant que j'aurai du nommer ce module ephemeral plutôt que timeout.

La partie iptables

Comme vous l'aurez compris, cela marche grâce à un nouveau match dans netfilter, ce qui veut dire que les règles ne disparaissent pas vraiment du firewall. C'est pourquoi le patch iptables intègre non seulement le traitement de --timeout mais ajoute aussi une nouvelle option. L'option -C permet de nettoyer les règles qui ne matcheront plus jamais. Il vous faudra donc l'utiliser régulièrement (par exemple dans cron.daily) pour éviter de trop encombrer votre firewall.

$ iptables -C
# ou
$ iptables -C INPUT

Les patchs

Maintenant vous voulez savoir comment faire pour avoir cet outil merveilleux. Tout d'abord téléchargez les 2 patchs en pièces jointes. L'un est pour le noyau, l'autre pour iptables. Ils ont été testés pour un linux 2.6.23, ils devraient marcher sur un 2.6.24 ou un 2.6.22, mais les changements sur netfilter font qu'il est peu probable qu'il marchent sur un noyau plus ancien.

Puis dans votre répertoire source linux tapez :

$ patch -p1 < timeout-linux.patch

Puis :

$ make menuconfig
# -> Networking  --->
#    Networking options  --->  
#    Network packet filtering framework (Netfilter)  --->
#    Core Netfilter Configuration  --->
#    rule timeout "match" support 

Et recompilez le module comme vous savez le faire (voire tout le noyau).

Maintenant même chose pour iptables

$ patch -p1 < timeout-iptables.patch

Et recompilez. N'oubliez pas de charger le module xt_timeout

$ modprobe xt_timeout

Et faire vos règles comme vous le désirez ...

Les patchs sont ici et .