[Debian/Patch du kernel] Besoin d'aide pour patcher un kerne

Bonjour à tous !

     J'ai un problème: je suis newbie au niveau de la manipulation de kernel et toutes ces choses joyeuses mais je me vois dans l'obligation d'installer ceci: [url]http://l7-filter.sourceforge.net/HOWTO-kernel#Kernel[/url] c'est à dire la couche l7-filter au noyau actuel (Debian etch 686 SMP), cependant le howto est très succint et je ne sais comment m'y prendre....Pouvez vous m'indiquer la marche à suivre svp ?

Merci à tous !!
RedVivi

trouvé dans le cache google sur:
209.85.135.104/search?q=cache:x7 … cd=2&gl=fr

[quote]Installation du module d’iptables 7-layer-filter
Pour pouvoir faire un filtrage efficace il ne faut pas que s’appuyer sur les ports, en effet un firewall efficace doit pouvoir remonter jusqu’a la couche 7 du modele osi (la couche application), pour par exemple bloqué les protocole p2p ou les jeux en lignes.
Une solution existe sous linux c’est un module d’iptable: ‘l7-filter’.
Voici un exemple d’installation sur debian sarge.
Il faut tout d’abord savoir avec quelle noyau vous voulez l’installez
moi j’ai choisi le '2.6.15’
Comme la doc l’indique il faut tout d’abort installer les outils de compilation et de manipulation du noyau
sudo apt-get install build-essential fakeroot kernel-package
Il est ensuite préférable de ne pas compiler en root, il faut donc ajouter son utilisateur aux groupes src
adduser mon_user src
Il faut ensuite chercher les sources de son noyau ou du noyau choisi
apt-cache search linux-source
et l’installer avec apt-get
sudo apt-get install linux-source-2.6.15
ensuite on decompresse les sources ( notez que les N° de version du noyau sont a adapté selon votre cas d’utilisation)
@@ cd /usr/src
rm linux@@
On se place dans /usr/src et on supprime le lien symbolique si il existe deja
@@ tar -xjvf linux-source-2.6.15.tar.bz2
ln -s linux-source-2.6.15 linux@@
on décompresse et on recréez le lien symbolique
Bon notre noyau est pret à etre modifier
On télécharge le patch L7-filter
sourceforge.net/project/showfile … p_id=80085
Layer 7 Patches
wget umn.dl.sourceforge.net/sourcefor … 2.2.tar.gz
Telecharge le patch
On telecharge les sources d’iptables
wget netfilter.org/projects/iptables/ … .5.tar.bz2
on extrait les deux archives
tar -xzvf netfilter-layer7-v2.2.tar.gz && tar -xjvf iptables-1.3.5.tar.bz2
ensuite copy le patch pour le noyau et pour iptables
cp netfilter-layer7-v2.2/kernel-2.6.13-2.6.16-layer7-2.2.patch linux && cp netfilter-layer7-v2.2/iptables-layer7-2.2.patch iptables-1.3.5
on applique le patch au noyau
@@cd linux
patch -p1 < kernel-2.6.13-2.6.16-layer7-2.2.patch
cd …@@
on patch également les sources d’iptables
@@cd iptables-1.3.5
patch -p1 < iptables-layer7-2.2.patch@@
ensuite on install le iptables patché dans les sources du noyau @@make KERNEL_DIR=/usr/src/linux
make install KERNEL_DIR=/usr/src/linux@@
Voila il nous reste plus qu’a activer ces modules pour la compilation du noyau
cd …/linux@@
make menuconfig@@
maintenant il reste a activer les modules suivant comme l’indique la doc l7-filter

  • EXPERIMENTAL (Code maturity level options & Prompt for development and/or incomplete code/drivers)
  • Netfilter (Device Drivers &Networking support & Networking Options & Network packet filtering)
  • Connection tracking (Network packet filtering & IP: Netfilter Configuration & Connection tracking)
  • “Connection tracking flow accounting” and “IP tables support” (on the same screen)
  • And finally, “Layer 7 match support”
  • Optional: Lots of other Netfilter options, notably “FTP support” and other matches. If you don’t know what you’re doing, go ahead and enable all of them.

sauvegarder le tout et installer comme le spécifie la doc @@ apt-get install cramfsprogs initrd-tools @@ il nous reste a concevoir les packages .deb attention cela peut etre long selon la puissance de votre machine
fakeroot make-kpkg --append-to-version=.181004 kernel_image --initrd binary
maintenant que la compilation a été effectuer avec succes il faut l’installer
@@ cd …
dpkg -i kernel-image-2.6.15.181004_10.00.Custom_i386.deb@@
Voila qui est fait il nous reste a rebooter sur le noyau et a installer les protocoles générique de l7-filter
Un fois redémarrez telecharger les protocoles wget superb-west.dl.sourceforge.net/s … -29.tar.gz
on décompresse
tar -xzvf l7-protocols-2006-05-29.tar.gz
et on l’install
@@ cd l7-protocols-2006-05-29
make install@@
Voila c’est terminer vous pouvez utiliser l7-filter en modules d’iptables
pour la syntax c’est basique
iptables [specify table & chain] -m layer7 --l7proto [name of protocol] -j [action]
par exemple iptables -I INPUT -m layer7 --l7proto http -j drop
redirigeras tout les paquets http en entrer vers /dev/null
Enjoy :p[/quote]

Tout est là pourtant : [quote]Suppose you have a patch called happypatch.patch. To apply it, go into the root directory of the source tree you want to patch and run “patch -p1 < happypatch.patch”[/quote]Donc, tu donwload happypatch.path, à côté des sources de ton noyau, tu le déploies, tu déplaces le patch dans les sources du noyau (pour respecter les paths indiqués ici), et tu lance la commande …
Si tu n’y arrives pas :

  • où sont les sources de ton noyau et le nom des sources ?
  • où est le patch et le nom du patch ?
  • que t’a renvoyé la commande de patch ?

Merci mais je ne comprends pas…que signifie les @@ et les @ dans le howto qui a été cité !? Ce sont des erreurs ?

je ne sais pas, on dirait que @@ correspond à ouverture de balise code, puis fermeture, ça n’est pas à écrire dans ta commande en tout cas.
Tu as essayé de patcher comme je décrivais ?

aide toi du tuto de cep pour appliquer un patch a ton noyau :wink:
cepcasa.info/blog/?p=90

[quote=“scorpio81”]aide toi du tuto de cep pour appliquer un patch a ton noyau :wink:
cepcasa.info/blog/?p=90[/quote]

Je vais suivre le tuto indiqué avant ton post ce sera amplement suffisant sinon je ridque de m’embrouiller ! Merci en tout cas

PS: Je n’ai pas encore essayé j’ai encore quelques trucs à régler avant de faire ça.

Salut, as tu réussi a faire marche layer7? Moi j’ai recompiler le noyaux en ayant mis le patch et en ajouter bien l’option en module avant de compiler. Mais lorsque je tente d’ajouter une regle iptable avec layer7, ca m’insulte:

iptables -I INPUT -m layer7 --l7proto http -j ACCEPT
iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: cannot open shared object file: No such file or directory

Try `iptables -h' or 'iptables --help' for more information.

[quote=“bloodaxe70”]Salut, as tu réussi a faire marche layer7? Moi j’ai recompiler le noyaux en ayant mis le patch et en ajouter bien l’option en module avant de compiler. Mais lorsque je tente d’ajouter une regle iptable avec layer7, ca m’insulte:

[code]
iptables -I INPUT -m layer7 --l7proto http -j ACCEPT
iptables v1.3.6: Couldn’t load match `layer7’:/lib/iptables/libipt_layer7.so: cannot open shared object file: No such file or directory

Try `iptables -h’ or ‘iptables --help’ for more information.

[/code][/quote]

Moi je l’ai compilé en dur dans la noyau, essaye un modprobe ipt_layer7 pour charger le module.

C’est bizarre le modprobe ipt_layer7 trouve et charge bien le module
Par contre si je veux charger une regle:

 [!!!ROOT!!!@Etch:/etc/Perso/firewall]#iptables -I INPUT -m layer7 --l7proto http -j ACCEPT iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: cannot open shared object file: No such file or directory

Ca chie…

[quote=“bloodaxe70”]C’est bizarre le modprobe ipt_layer7 trouve et charge bien le module
Par contre si je veux charger une regle:

 [!!!ROOT!!!@Etch:/etc/Perso/firewall]#iptables -I INPUT -m layer7 --l7proto http -j ACCEPT iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: cannot open shared object file: No such file or directory

Ca chie…[/quote]

Il y a sans doute plusieurs modules à charger mais je ne connais pas leurs nom

sinon le cas échéant, recompile le noyau avec les modules en dur, moi c’est ce que j’ai fais…Ce n’est pas vraiment la solution, mais si tu ne trouves pas le nom des modules ceci fonctionne.

Je vien d’essayer mais je ne peut mettre " Layer 7 match support (EXPERIMENTAL) " compiler dans le noyau, je peux seulement mettre la sortie debug " [*] Layer 7 debugging output" compiler dans le kernel.

Essaye de mettre tous les modules cités en dur dans le how-to kernel sur le site de l7-filter (sourceforge) (sauf les débugs à la limite), ensuite réessaye avec et sans le modprobe, normalement ça fonctionne.

[quote=“bloodaxe70”]C’est bizarre le modprobe ipt_layer7 trouve et charge bien le module
Par contre si je veux charger une regle:

 [!!!ROOT!!!@Etch:/etc/Perso/firewall]#iptables -I INPUT -m layer7 --l7proto http -j ACCEPT iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: cannot open shared object file: No such file or directory

Ca chie…[/quote]

iptables cherche bien dans /lib/iptables/* la où se trouve tout le reste, mais il ne trouve pas libipt_layer7.so dans ce même répertoire. Donc, ma question est, où se trouve t-elle ?

J’ai fais un

find . -name libipt_layer7.so

en etant possitionner sur /. Pas trouver…

êtes vous sur d’avoir tout activé dans les options concernants l7 filter ?

Oui, y en as qu’une …

Enfin quand je dis l7filter c’est tous les modules indiqués dans le howto de l7 filter…

Au fait y a deux versions la userspace et la kernel, tu as pris laquelle ?