Compilation de noyau Debian Sarge – patch H.323 (netmeeting)

J’ai eu à compiler un noyau pour intégrer un patch de routage/filtrage iptables des services netmeeting (H.323) sur une Debian Sarge 2.4.27.

Pour réaliser cette opération, je disposais de iptables-1.2.11 et du patch-o-matic-ng-20051220 (cliquez sur les liens pour récupérer ces packages).

Dans les explications qui suivent, j’ai pris le parti de fournir la ligne complète afin que vous puissiez repérer plus facilement la localisation des fichiers. Les instructions à taper sont placées derrière le $.
Par exemple, pour root@keu:~$ cd /usr/src/, ne taper que ‘cd /usr/src/

Voici le descriptif de la procédure :

Faire un apt-get (en root) de tout ce qui va nous être utile pour la compilation :

root@keu:~$ apt-get install kernel-source-2.4.27 ncurses-dev kernel-package dpkg-dev kernel-headers-2.4.27 build-essential libdb3-dev initrd-tools util-linux jfsutils binutils

Décompresser les sources du kernel et créer un lien symbolique :

root@keu:~$ cd /usr/src/
root@keu:/usr/src$ tar xvjf kernel-source-2.4.27.tar.bz2
root@keu:/usr/src$ ln -s /usr/src/kernel-source-2.4.27/ /usr/src/linux

Charger les packages iptables-1.2.11.tar.bz2 et patch-o-matic-ng-20051220.tar.bz2 dans son répertoire home, puis les décompresser :

test@keu:~$ cd /home/test/
test@keu:~$ tar xvjf iptables-1.2.11.tar.bz2
test@keu:~$ tar xvjf patch-o-matic-ng-20050905.tar.bz2

Se déplacer dans le répertoire patch-o-matic généré et éditer le fichier runme

test@keu:~$ cd patch-o-matic-ng-20051220
test@keu:~/patch-o-matic-ng-20051220$ nano runme

Chercher ‘my @paths‘ dans ce fichier et modifier la partie ‘default’ pour 'project' => 'iptables' (chemin d’iptables dans votre home) :

'default' => '/home/test/iptables-1.2.11',

Sauvegardez le fichier runme et lancez le avec l’option ‘extra‘ soit sous le compte root, soit à partir de votre compte utilisateur (Dans ce dernier cas, faites en sorte que votre user appartienne au groupe src : adduser test src) :

root@keu:~/patch-o-matic-ng-20051220$ ./runme extra

GAFFE ! C’est à ce stade qu’on vous posera toutes les questions qui vont bien. Un message d’alerte pour signalera que vous n’avez pas défini votre kernel_dir et iptables_dir. Faites Enter / Enter, ils ont été écrits en dur dans le fichier runme.

Pour l’exemple qui nous intéresse ici, j’ai pris les patchs suivants parmi la multitude présentée :

1. H.323 conntrack/NAT (h323-conntrack-nat) qui ajoute le support de suivi de connexions et nat pour H.323/netmeeting. H.323 utilise les flux de données suivants :

 port 389 -> Internet Locator Server (TCP).
port 522 -> User Location Server (TCP).
port 1503 -> T.120 Protocole (TCP).
port 1720 -> H.323 (H.225 call setup, TCP)
port 1731 -> Audio call control (TCP)
Dynamic port -> H.245 call control (TCP)
Dynamic port -> RTCP/RTP streaming (UDP)

Les modules de suivi de connexions et de NAT pour H.323 suivent et nat les connexions demandées sur des ports dynamiques. Le module utilise le bricolage qui est de chercher/remplacer, qu’utilisait le module ip_masq_h323.c des noyaux 2.2.
Au minimum, H.323/netmeeting (vidéo/audio) est fonctionnel en laissant passer les connexions sur le port 1720.

Ces modules ne supportent pas :

 H.245 tunnelling
H.225 RAS (gatekeepers)

2. CONFIG_IP_NF_MMS (mms-conntrack-nat) qui ajoute le support de suivi de connexions pour le protocole Microsoft Streaming Media Services. Ca permet aux clients (Windows Media Player) et aux serveurs de négocier le protocole (UDP, TCP) et le port que le flux de données utilisera. Il est recommendé d’ouvrir le port UDP 1755, puisque c’est le port qui est utilisé lors des demandes de retransmission.

Vous suivez toujours ? Bien ! Nous y sommes presque.

Retournez dans le répertoire /usr/src/linux et lancez ‘make menuconfig

root@keu:~/patch-o-matic-ng-20051220$ cd /usr/src/linux
root@keu:/usr/src/linux$ make menuconfig

A ce stade, deux options s’offrent à vous :

  1. Vous vous pelez l’intégralité du menu pour dégager tout ce qui ne vous sert pas
  2. Vous vous appuyez sur le fichier .config‘ que je me suis fait chier à préparer et que vous pouvez trouver ici

Si vous optez pour la deuxième option, copiez le dans votre répertoire ‘/usr/src/linux‘ sous le nom ‘.config‘. Puis, lors du make menuconfig, faites un load de ce fichier.
Une fois cette manip effectuée, un petit ‘escape’ pour sauvegarder, et vous voici prêt pour la compilation du noyau qui, sous Debian, est très facile puisqu’elle se résume à une commande : ‘make-kpkg

root@keu:/usr/src/linux$ make-kpkg --revision=2 kernel_image[1]

Patientez…
Patientez….
Patientez…..

Félicitations ! La compilation est terminée. Vous venez de créer votre noyau en .deb.
Il se trouve dans le répertoire /usr/linux. Ne reste plus qu’à l’installer :

root@keu:/usr/src/$ dpkg -i kernel-image-2.4.27_2_i386.deb

Si tout se déroule correctement, votre grub.lst est modifié. Vous pourrez alors rebooter sur votre noyau recompilé.

Enjoy 😉

Lien associé : le HOWTO français de patch-o-matic

Notes

[1] L’option –revision=2 vous permet de numéroter vos essais. Elle ne supporte que des digits.

Tadpu

Amatrice éclairée de nouvelles technologies. J'espère que mes quelques articles vous distrairont et vous éclaireront. Rédactrice de tadpu.com

5 réponses

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


*