nftables filtre de paquets version 1.0.1

La version du filtre de paquets nftables 1.0.1 a été publiée, unifiant les interfaces de filtrage de paquets pour IPv4, IPv6, ARP et les ponts réseau (destiné à remplacer iptables, ip6table, arptables et ebtables). Les modifications requises pour que la version nftables 1.0.1 fonctionne sont incluses dans le noyau Linux 5.16-rc1.

Le package nftables comprend des composants de filtre de paquets qui s'exécutent dans l'espace utilisateur, tandis que le travail au niveau du noyau est assuré par le sous-système nf_tables, qui fait partie du noyau Linux depuis la version 3.13. Le niveau noyau fournit uniquement une interface générique indépendante du protocole qui fournit des fonctions de base pour extraire les données des paquets, effectuer des opérations sur les données et contrôler le flux.

Les règles de filtrage elles-mêmes et les gestionnaires spécifiques au protocole sont compilés en bytecode de l'espace utilisateur, après quoi ce bytecode est chargé dans le noyau à l'aide de l'interface Netlink et exécuté dans le noyau dans une machine virtuelle spéciale ressemblant à BPF (Berkeley Packet Filters). Cette approche permet de réduire considérablement la taille du code de filtrage s'exécutant au niveau du noyau et de déplacer toutes les fonctions de règles d'analyse et la logique de travail avec les protocoles dans l'espace utilisateur.

Principales nouveautés :

  • Consommation de mémoire réduite lors du chargement de grandes listes d’ensembles et de cartes.
  • Le rechargement des listes de décors et de cartes a été accéléré.
  • La sortie de tables et de chaînes sélectionnées dans de grands ensembles de règles a été accélérée. Par exemple, le temps d'exécution de la commande « nft list Ruleset » pour afficher un ensemble de règles de 100 3.049 lignes est de 1.969 secondes, et lors de la sortie uniquement des tables nat et filter (« nft list table nat », « nft list table filter ") est réduit à 0.697 et XNUMX seconde.
  • L'exécution des requêtes avec l'option « --terse » a été accélérée lors du traitement de règles avec de grandes listes d'ensembles et de cartes.
  • Il est possible de filtrer le trafic de la chaîne « egress », qui est traité au même niveau que le gestionnaire de sortie dans la chaîne netdev (hook de sortie), c'est-à-dire au stade où le pilote reçoit un paquet de la pile réseau du noyau. table netdev filtre { sortie de chaîne { type de filtre crochet dispositifs de sortie = { eth0, eth1 } priorité 0 ; méta priorité définie ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Permet la mise en correspondance et la modification des octets dans l'en-tête et le contenu d'un paquet à un décalage donné. # nft ajouter une règle xy @ih,32,32 0x14000000 compteur # nft ajouter une règle xy @ih,32,32 définir un compteur 0x14000000

Source: opennet.ru

Ajouter un commentaire