Installation des xtables-addons
Par Sébastien Le Ray le vendredi 29 mai 2009, 12:59 - Sysadmin - Lien permanent
Les xtables-addons sont un ensemble de modules iptables permettant, entre autres, de filtrer les flux P2P
Cette procédure a été testée sous Debian avec un noyau vanilla 2.6.29.4 (http://www.kernel.org/) patché grsec (patch pour le noyau 2.6.29.3).
On commence donc par récupérer les sources sur kernel.org et le patch grsec (grsecurity.net) puis on patch:
sebastien@boiboite:~/src/linux-2.6.29.4$ patch -p1 < ../grsecurity-2.1.14-2.6.29.3-200905192213.patch
Ça chouine à cause de Hunks décalés mais rien de bien grave. Ensuite on configure son noyau (ou on zcat /proc/config.gz > .config) sans oublier d'activer les options suivantes :
-> Networking support (NET [=y]) -> Networking options -> Network packet filtering framework (Netfilter) (NETFILTER [=y]) -> Core Netfilter Configuration - Netfilter connection tracking support
et
-> Networking support (NET [=y]) -> Networking options -> Network packet filtering framework (Netfilter) (NETFILTER [=y]) -> Core Netfilter Configuration -> Netfilter connection tracking support (NF_CONNTRACK [=y]) - Connection mark tracking support
Malheureusement il semble qu'il soit obligatoire d'activer les modules dans le noyau pour profiter des xtables-addons (j'ai bien essayé de les intégrer aux sources du noyau mais le résultat a systématiquement été un kernel panic.
On se crée un joli paquet pour le pépin :
make-kpkg --rootcmd=fakeroot --revision=mon.noyau.1 kernel_image kernel_source
et on l'installe
sebastien@boiboite:~/src$ sudo dpkg -i linux-image-2.6.29.4-grsec_mon.noyau.1_i386.deb sebastien@boiboite:~/src$ sudo dpkg -i linux-source-2.6.29.4-grsec_mon.noyau.1_all.deb
On vérifie dans /boot/grub/menu.lst que tout va bien[1]
Rebootez sur votre nouveau pépin (ou lisez le man de module-assistant pour utiliser l'option -l dans la suite des opérations) pour passer à l'installation des addons.
Le mieux est d'utiliser les sources du module packagées par Debian car il y a des contraintes sur la version d'iptables (les versions >= 1.13 sont incompatibles avec la version d'iptables de Lenny).
sebastien@boiboite:~/src$ sudo aptitude install xtables-addons-source
Si vous ne voulez pas compiler tous les modules, extrayez l'archive que vous trouverez dans /usr/src et éditez le fichier mconfig dans /usr/src/modules/xtables-addons (mettez n à la place de m pour les modules qui ne vous sont d'aucune utilité). Construisez ensuite le paquet :
sebastien@boiboite:~/src$ sudo module-assistant --not-unpack build xtables-addons-source
Le --not-unpack n'est nécessaire que si vous avez modifié le mconfig (ça évite qu'il soit écraser par une extraction "propre" de l'archive). Le paquet créé (dans le répertoire parent de celui contenant les sources de votre noyau) peut ensuite être installé via dpkg. Dans la mesure où certains fichiers se placent directement dans /lib/xtables, vous ne pouvez installer le paquet que pour une version du noyau à la fois.
Pour contrôler que tout fonctionne bien :
sebastien@boiboite:~/src$ sudo modprobe xt_ipp2p
Si le chargement fonctionne, tout est OK et vous pouvez bouter le peer2peer hors de votre réseau au moyen de règles du style :
sudo iptables -A FORWARD -i eth0 -o eht1 -m ipp2p --edk -j DROP
(--edk agit sur eDonkey, vous avez tout un tas d'autres options pour d'autres protocoles).
Notes
[1] comment ça vous utilisez lilo ?
Commentaires
Bonjour,
Merci pour ce tutoriel très constructif. J'y suis arrivé car j'ai un souci avec ipp2p et le marquage avec iptables (iptables ne souhaite pas utiliser le module ipp2p avec MARK: lorsque je lui demande "/sbin/iptables -A PREROUTING -t mangle -m ipp2p
edk -j MARKset-mark 1" il répond "iptables: No chain/target/match by that name.") et j'ai donc lu sur ton tutoriel qu'il y avait un souci de compatibilité entre iptables > 1.3 et iptables dans les dernières sources pépin?Pour construire mon pepin, j'ai pêché les sources du 2.6.32 sur http://www.kernel.org, la derniere mouture d'iptables (http://www.netfilter.org), j'ai appliqué tous les patches proposés (qui en effet sont prévus pour des pépins et des versions d'iptables plus anciennes, mais qui tous compilent correctement)
Crois-tu que mon souci d'incompatibilite de MARK avec ipp2p peut venir d'une incompatibilite entre iptables source et iptables du pépin?
Si oui, comment fait-on pour annuler les iptables du pépin (et seulement les iptables) pour n'utiliser que celles compilées manuellement?
Merci d'avance