Présentation de NFtables

Chapitre Progression:

Ça y est ! Nous sommes au premier chapitre de ce cours sur NFtables. Tout d'abord, laissez-moi vous y souhaiter la bienvenue 🙂

Dans ce premier chapitre, nous allons parler un peu de ce qu'est NFtables. NFtables est une réécriture du projet IPtables dont la première version est parue le 18 mars 2009. C'est le chef du projet NetFilter, Patrick Mac Hardy, qui travaille sur ce nouvel outil.

I. Un petit mot sur le pare-feu Linux NetFilter

NetFilter est le pare-feu Linux. IPtables et NFtables ne sont que des intermédiaires permettant de configurer NetFilter. NetFilter est donc un framework permettant d'incorporer un pare-feu au sein du noyau Linux et il est présent depuis la version 2.4 du noyau Linux. Il fonctionne en mettant en place des accroches ou crochet (hooks) dans le noyau Linux permettant d'intercepter les paquets réseau qui y transitent (en émission ou en réception) pour ensuite indiquer s'ils peuvent passer ou non, ou si d'autres actions doivent y être appliquées. Nous détaillerons cette partie un peu plus tard pour que toi cela soit bien clair ! 🙂

Il faut tout de même savoir comment fonctionne cet ensemble pour comprendre ce qu'implique le changement d'IPtables à NFtables.

Historiquement, c'est via les commandes "iptables" et "ip6tables" que l'on configurait le pare-feu NetFilter. Elles permettent donc de définir des règles de pare-feu qui peuvent transformer, bloquer des paquets ou inscrire des évènements dans les journaux lors de leur passage par exemple.

NFtables est donc la relève d'IPtables, qui sont tous deux des interfaces en ligne de commande permettant de configurer NetFilter qui lui ne bouge pas.

Mais au faite, pourquoi NFtables ?

NFtables semble avoir été nommé ainsi en rapport à "NetFilter" qui est le pare-feu Linux.

II. IPtables, quelques défauts

Pour une utilisation basique, IPtables est simple d'utilisation. Cependant, ses limites se font plus rapidement sentir sur de grosses infrastructures avec des centaines ou des milliers de règles.

  • Le code est, selon son propre créateur, mal écrit et pas toujours compatible 64 bits avec parfois des fonctions en doublons.
  • La gestion des modifications d'un grand nombre de règles n'est pas optimisée. Il fait en sorte de recharger toutes les règles à chaque insertion/suppression d'une règle, perdant ainsi toutes les connexions en cours.
  • On ne peut spécifier qu'une action par règle. On ne peut pas bloquer une requête et l'inscrire dans les logs avec une seule règle par exemple, cela nécessite alors des règles en double.
  • Trop de modules (138) avec des options et configurations aussi nombreuses.

Ce n'est ici pas une liste exhaustive, mais elles sont tirées des conclusions du chef du projet lors d'une présentation en 2008 intitulée "nftables a successor to iptables, ip6tables, ebtables and arptables". Globalement, il faut savoir qu'IPtables commence à dater au niveau de la façon dont il a été écrit (design de code) mais également au niveau fonctionnel.

III. Les nouveautés de NFtables

Globalement, NFtables a été conçu dans l'optique de résoudre les problèmes est les faiblesses d'IPtables. On peut souligner notamment les problèmes de performance lors de la mise à jour des règles en grand nombre.

On retrouvera également la possibilité de mettre des expressions spécifiques dans les règles NFtables afin d'avoir besoin d'écrire moins de règles qu'IPtables pour une même efficacité, une réduction de la duplication des règles.

Au final, ce sont plusieurs commandes qui vont être remplacées par NFtables :

  • iptables: administration des règles du pare-feu pour IPv4
  • ip6tables: administration des règles du pare-feu pour IPv6
  • arptables: administration des règles du pare-feu pour ARP
  • ebtables: administration des règles du pare-feu pour la configuration de bridge (pont)

Tout cela promet nombre de fonctionnalité très intéressantes, mais nécessite également de revoir la façon dont on va devoir les configurer. C'est ce que nous allons voir dans la suite du cours.

Commençons par installer NFtables. Nous allons voir l'exemple d'installation sur Debian 8. Il faut savoir que NFtables est fait pour fonctionner sur les noyaux Linux supérieurs ou égaux à la version 3.13. Nous allons dans le prochain chapitre, voir comment se procurer cette version du noyau via une mise à jour.

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

    Mickael Dorigny

    Fondateur d'IT-Connect.fr et d'Information-security.fr. Auditeur sécurité chez Amossys.

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