Installation de NFtables sur Debian

Progression du Module
0% Terminé

À l’heure de l’écriture de ce cours, NFtables n’est encore qu’en développement et est décrit un comme un logiciel "non stable". C’est notamment une des raisons qui font que NFtables ne soit pas présent dans la distribution Debian testing (Jessie) qui va prochainement devenir la distribution Debian stable.

Pour tester correctement NFtables et l’installer, il faut passer par une mise à jour de la distribution Debian vers sa version unstable (appelée "sid" pour "stills in developpement"), on pourra ainsi avoir à la fois les bonnes dépendances, les bons modules kernels et également la bonne version du kernel ("noyau"). Pour rappel, le kernel doit être dans une version supérieure à 3.13.

Sur une distribution Debian 8 (Jessie), on commence donc par la passer en version unstable ("sid"). Pour cela, on se rend dans le fichier /etc/apt/sources.list. Nous aurons quelque chose qui ressemble à cela :

installation-nftables-debian-01
Contenu du fichier sources.list

Nous allons modifier le contenu de ce fichier pour avoir cela :

installation-nftables-debian-02
Spécification sur les dépôts instables

Suite à cette modification, nous allons effectuer une mise à jour de nos dépôts puis une mise à jour de notre OS avec les commandes suivantes :

apt-get update
apt-get dist-upgrade

On va ensuite rebooter notre machine :

reboot

On pourra ensuite vérifier notre version de kernel notamment avec la commande "uname" :

uname -a

Voici ce que l'on devrait voir, une version de kernel Linux 3.16 qui permet de satisfaire les prérequis pour l'installation de NFtables :

installation-nftables-debian-03
Vérification de la version du kernel avec la commande "uname"

Note : La version SID de Debian est en constante évolution, il se peut donc que la version du kernel présente, ou celle des autres paquets que nous allons installer diffère de ce cours. Pas d'inquiétude, cela marchera de la même façon ;).

Pour information, NFtables se base principalement sur deux librairies pour travailler :

  • Libmnl : cette librairie permet de fournir une interface à NFtables afin de communiquer avec le noyau du système, certaines distributions peuvent le fournir (on le retrouvera donc dans les dépôts), mais ce n'est pas systématique, dans tous les cas, il est conseillé d'installer la version de développement ("-dev" du paquet). On peut trouver les sources du paquet ici : Librairie libmnl
  • Libnftnl : Il s'agit de la librairie propre à NFtables (aussi connue sous le nom de libnftables), elle fournit des API bas niveau pour transformer les messages netlink en objets (netlink étant une API se chargeant de la communication entre le kernel et les processus gérés par l'utilisateur courant, c'est par ce biais que l'échange avec le contrôle de NetFilter se fait). On peut trouver les sources du paquet : Librairie libnftnl

Passons à l'installation de ces librairies, la première (libmnl) peut se retrouver facilement dans les dépôts Debian sid. Plus clairement, cela nous arrange, car nous pouvons l'installer via la commande "apt-get" :

apt-get install libmnl-dev

On passe ensuite à l'installation de libnftl qui est également disponible dans les dépôts de Debian sid, ce qui est une des raisons pour laquelle il est plus simple d'installer NFtables sur cette version de Debian. On saisit donc la commande suivante :

apt-get install libnftnl-dev

Il nous faut alors récupérer NFtables depuis le dépôt git du projet (pensez à effectuer la commande "apt-get install git" si git n'est pas présent sur votre système). Mais on doit pour cela installer quelques outils pour que l'installation se passe correctement :

apt-get install autoconf bison flex libgmp-dev libreadline-dev

Puis l'on récupère le projet sur git et on le compile :

git clone git://git.netfilter.org/nftables
cd nftables
sh autogen.sh
./configure
make
make install

Il est ensuite conseillé de redémarrer le système via la commande "reboot".

Après le redémarrage, on va pouvoir utiliser la commande "nft" qui permet (comme IPtables et sa commande "iptables" en son temps) de paramétrer notre cher pare-feu NetFilter.

Bien ! Ce premier module est terminé, j'espère qu'il vous a plu et que vous avez hâte de lire la suite, car il y a encore des choses intéressantes à voir ! 🙂

Dans le prochain module, nous allons étudier plus en profondeur la composition de NFtables et son interaction avec NetFilter ainsi que les paquets qui transitent dans votre système. Nous étudierons la notion de "Hooks", fondamentale à une bonne compréhension du fonctionnement NFtables. Rendez-vous au prochain module ! 🙂

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

    Mickael Dorigny

    Co-fondateur d'IT-Connect.fr. Auditeur en sécurité des systèmes d'information chez Amossys

      mickael has 502 posts and counting.See all posts by mickael