Install iptables + geoip sur linux 3 (squeeze)

Bonjour à tous,

cela fais plusieurs jours que j’essai de faire tourner iptables + geoip sur un noyau 3.2.44 + grsec.

J’ai suivit plusieurs procédures, notamment celle ci :
debian-administration.org/articles/518

Cela fonctionne bien avec le noyau 2.6.32-5 de la squeeze, par contre j’ai installer un noyau 3.2.44 + patch grsec et là cela ne fonctionne pas.

par exemple la commande pour bloquer la Chine est :

iptables -A INPUT -p tcp --dport 22 -m geoip ! --src-cc CN -j REJECT

en noyau 2.6 cela fonctionne bien, par contre en noyau 3.2.44 j’ai le message :

iptables: No chain/target/match by that name.

la commande " iptables -m geoip --help " me renvoie bien l’aide du module geoip pour iptables.

Quelqu’un pourrait-il m’aider ?

Je ne sais pas si cette fonctionnalité est compatible avec un kernel 3.

HELP ME PLEASE !

Merci d’avance !

Une extension d’iptables se compose de deux parties : une bibliothèque partagée (.so) utilisée par le programme iptables, et un module du noyau (.ko). Il faut compiler le module pour chaque noyau avec lequel on veut l’utiliser.

Par contre le patch-o-matic(-ng) mentionné dans le lien est un machin antédiluvien et plus maintenu depuis longtemps ; il est remplacé par xtables-addons, décliné en plusieurs paquets Debian.

Merci Pascal pour ta réponse,

oui effectivement le patch-o-magic était pour la procédure avec le noyau 2.x.

J’ai trouver d’autres procédure pour utiliser xtables-addons-common, l’installation fonctionne bien (enfin je crois).

atwillys.de/uncategorized/bl … 012-04-14/

Les .so et .ko sont bien présent :

locate xt_geoip.ko
/lib/modules/3.2.44-grsec-cams-grs-ipv6-64/extra/xt_geoip.ko

locate xt_geoip.so
/lib/xtables/libxt_geoip.so

Une fois les paquets installé, si je test la commande :
iptables -A INPUT -p tcp --dport 22 -m geoip ! --src-cc CN -j REJECT

Could not open /usr/share/xt_geoip/LE/CN.iv4: No such file or directory
iptables v1.4.8: Could not read geoip database

Jusqu’ici tous va bien, je me dis qu’il faut que je récupère la “geoip database”, alors je continu en utilisant les scripts update.sh et xt_geoip_build.pl, les dossiers /usr/share/xt_geoip/LE et BE sont bien présent, mais quand je relance la commande iptables alors j’ai le message :
iptables: No chain/target/match by that name.

Je ne sais plus quoi faire. Peut être doit-je compiler mon noyau en mettant iptables en module ?

Je n’ai pas trop d’expérience avec les modules compilés hors du noyau. Quand j’avais besoin de fonctions d’iptables qui ne se trouvaient pas dans le noyau standard, je patchais et recompilais tout le noyau. Je pense que c’est d’ailleurs pour cette raison que j’ai commençé à compiler des noyaux, à l’époque de Debian Potato et son noyau 2.2.x.

Néanmoins il faudrait vérifier si le chemin du module xt_geoip est bien “enregistré” pour pouvoir être chargé à la demande par modprobe. Si c’est le cas, il devrait figurer dans /lib/modules/3.2.44-grsec-cams-grs-ipv6-64/modules.dep et modinfo devrait afficher des informations le concernant :

Si ce n’est pas le cas, essaie d’exécuter depmod pour regénérer modules.dep, en espérant qu’il va chercher dans extra. Si ce n’est toujours pas le cas, tu peux charger le module manuellement avec insmod :

et au moins tu pourras vérifier qu’il fonctionne.

J’ai enfin trouvé la solution.

le paquet debian xtables-addons-common fourni par la debian est compatible avec un kernel supérieur à 3.7,
j’ai donc désintaller ce paquet et installer la version xtables-addons-1.47.1 depuis les sources.

./configure
make
make install

et voila !

pour info :

modinfo xt_geoip
filename: /lib/modules/3.2.44-grsec-cams-grs-ipv6-64/extra/xt_geoip.ko
alias: ipt_geoip
alias: ip6t_geoip
description: xtables module for geoip match
author: Samuel Jean
author: Nicolas Bouliane
license: GPL
depends: x_tables
vermagic: 3.2.44-grsec-cams-grs-ipv6-64 SMP mod_unload modversions GRSEC

Merci à toi Bernard !