Sortie du filtre de paquets nftables 1.0.2

La publication de la version 1.0.2 du filtre de paquets nftables, unifiant les interfaces de filtrage de paquets pour IPv4, IPv6, ARP et les ponts réseau (visant à remplacer iptables, ip6tables, arptables et ebtables), a été réalisée. Les modifications nécessaires pour le fonctionnement de la version nftables 1.0.2 sont incluses dans le noyau Linux 5.17-rc.

Le paquet nftables comprend des composants du filtre de paquets fonctionnant dans l'espace utilisateur, tandis qu'au niveau du noyau, le fonctionnement est assuré par la sous-système nf_tables, intégré dans le noyau Linux depuis la version 3.13. Au niveau du noyau, une interface générale est fournie, indépendante du protocole spécifique, offrant des fonctions de base pour l'extraction de données des paquets, l'exécution d'opérations sur les données et la gestion de flux.

Les règles de filtrage et les gestionnaires spécifiques aux protocoles sont compilés en bytecode dans l'espace utilisateur, après quoi ce bytecode est chargé dans le noyau via l'interface Netlink et exécuté dans le noyau dans une structure spéciale une machine virtuelle, similaire aux BPF (Berkeley Packet Filters). Cette approche permet de réduire considérablement la taille du code de filtrage fonctionnant au niveau du noyau et de transférer toutes les fonctions de parsing des règles et de logique de traitement des protocoles dans l'espace utilisateur.

Les principales nouveautés :

  • Un mode d'optimisation des règles a été ajouté, activé grâce à la nouvelle option « -o » (« —optimize »), qui peut être combinée avec l'option « —check » pour vérifier et optimiser les modifications dans le fichier de règles sans le charger effectivement. L'optimisation permet de regrouper des règles similaires, par exemple, les règles : meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accept meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 accept ip saddr 1.1.1.1 ip daddr 2.2.2.2 accept ip saddr 2.2.2.2 ip daddr 3.3.3.3 drop

    seront combinées en meta iifname . ip saddr . ip daddr { eth1 . 1.1.1.1 . 2.2.2.3, eth1 . 1.1.1.2 . 2.2.2.5 } accept ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : accept, 2.2.2.2 . 3.3.3.3 : drop }

    Exemple d'utilisation : # nft -c -o -f ruleset.test Fusion : ruleset.nft:16:3-37: ip daddr 192.168.0.1 counter accept ruleset.nft:17:3-37: ip daddr 192.168.0.2 counter accept ruleset.nft:18:3-37: ip daddr 192.168.0.3 counter accept dans : ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packets 0 bytes 0 accept

  • Dans les listes set, il est désormais possible d'indiquer des options ip et tcp ainsi que des chunks sctp : set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } chain c5 { ip option ra value @s5 accept } chain c7 { sctp chunk init num-inbound-streams @s7 accept }
  • Ajout de la prise en charge des options TCP fastopen, md5sig et mptcp.
  • Ajout de la prise en charge de l'utilisation dans les correspondances du sous-type mp-tcp : tcp option mptcp subtype 1
  • Le code de filtrage fonctionnant du côté du noyau a été amélioré.
  • Pour flowtable, une prise en charge complète du format JSON a été réalisée.
  • Il est désormais possible d'utiliser l'action « reject » dans les opérations de correspondance des cadres Ethernet. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 reject

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster