Release van de pakketfilter nftables 1.0.5

De release van de nftables pakketfilter 1.0.5 is gepubliceerd, die de filtering interfaces voor IPv4, IPv6, ARP en netwerkschakels uniformiseert (gericht op het vervangen van iptables, ip6tables, arptables en ebtables). Tegelijkertijd is de bijbehorende libnftnl 1.2.3 bibliotheek uitgebracht, die een laag-niveau API biedt voor interactie met het nf_tables subsysteem.

De nftables-pakket bevat gebruikersruimte componenten van de pakketfilter, terwijl op kernniveau het nf_tables subsysteem de werking verzorgt, dat deel uitmaakt van de Linux-kernel sinds versie 3.13. Op kernniveau wordt slechts een algemene interface geboden, niet afhankelijk van een specifiek protocol en die basisfunctionaliteiten biedt voor het extraheren van gegevens uit pakketten, het uitvoeren van gegevensbewerkingen en het beheren van stromingen.

Directe filtratieregels en protocolspecifieke verwerkers worden in bytecode gecompileerd in de gebruikersruimte, waarna deze bytecode via de Netlink-interface in de kern wordt geladen en in de kern wordt uitgevoerd in een speciale een virtuele machine, die doet denken aan BPF (Berkeley Packet Filters). Deze aanpak maakt het mogelijk om de grootte van de filtering code die op kernniveau draait aanzienlijk te verkleinen en alle functies voor het parseren van regels en de logica voor de werking met protocollen naar de gebruikersruimte te verplaatsen.

Belangrijkste wijzigingen:

  • In de regelsoptimizer, die wordt aangeroepen met de optie '-o/–optimize', zijn problemen opgelost met het combineren van regels, map- en set-lijsten. # cat ruleset.nft table ip x { chain y { type nat hook postrouting priority srcnat; policy drop; ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80 ip saddr 2.2.2.2 tcp dport 8001 snat to 5.5.5.5:90 } } # nft -o -c -f ruleset.nft Merging: ruleset.nft:4:3-52: ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80 ruleset.nft:5:3-52: ip saddr 2.2.2.2 tcp dport 8001 snat to 5.5.5.5:90 into: snat to ip saddr . tcp dport map { 1.1.1.1 . 8000 : 4.4.4.4 . 80, 2.2.2.2 . 8001 : 5.5.5.5 . 90 }
  • Bij het combineren van ethernet- en vlan-elementen is er een dynamische set-lijst gedefinieerd, die wordt gevuld op basis van de parameters van het pakketpad. add table netdev x add chain netdev x y { type filter hook ingress device enp0s25 priority 0; } add set netdev x macset { typeof ether daddr . vlan id; flags dynamic,timeout; } add rule netdev x y update @macset { ether daddr . vlan id timeout 60s } add rule netdev x y ether saddr . vlan id { 0a:0b:0c:0d:0e:0f . 42, 0a:0b:0c:0d:0e:0f . 4095 } counter accept
  • Er is ondersteuning toegevoegd voor het weergeven van regels met map-lijsten die maskers in de namen van interfaces bevatten. table inet filter { chain INPUT { iifname vmap { «eth0» : jump input_lan, «wg*» : jump input_vpn } } chain input_lan {} chain input_vpn {} }
  • Regressieve veranderingen die leiden tot onjuiste lexicale analyse van geldige regels zijn verholpen.
  • Problemen met trage verwerking en automatisch samenvoegen van grote lijsten met elementen die waarde-intervallen definiëren, zijn opgelost.
  • Een crash bij het toevoegen van elementen aan een onjuiste set-lijst is verholpen.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster