Vydání paketového filtru nftables 1.1.6

Bylo zveřejněno vydání paketového filtru nftables 1.1.6, které sjednocuje rozhraní pro filtrování paketů pro IPv4, IPv6, ARP a síťové mosty (zaměřené na nahrazení iptables, ip6table, arptables a ebtables). Ve stejnou dobu bylo zveřejněno vydání doprovodné knihovny libnftnl 1.3.1, která poskytuje nízkoúrovňové API pro interakci se subsystémem nf_tables.

Balíček nftables obsahuje komponenty pro filtrování paketů, které fungují v uživatelském prostoru, zatímco práci na úrovni jádra zajišťuje subsystém nf_tables, který je součástí jádra. Linux Od verze 3.13 je na úrovni jádra k dispozici pouze generické rozhraní nezávislé na protokolu, které poskytuje základní funkce pro extrakci dat z paketů, provádění operací s daty a řízení toku.

Samotná pravidla filtrování a obslužné rutiny specifické pro protokol jsou v uživatelském prostoru zkompilovány do bajtkódu, načež je tento bajtkód načten do jádra pomocí rozhraní Netlink a spuštěn v jádře ve speciálním virtuální stroj, připomínající BPF (Berkeley Packet Filters). Tento přístup umožňuje výrazné zmenšení velikosti filtrovacího kódu běžícího na úrovni jádra a přesouvá veškerou analýzu pravidel a logiku protokolu do uživatelského prostoru.

Hlavní změny:

  • Plná podpora pro lehké šablony tunelů, jako jsou vxlan, geneve a erspan: table netdev global { tunnel t1 { id 10 ip saddr 192.168.2.10 ip daddr 192.168.2.11 sport 1025 dport 20020 ttl 1 erspan { version 1 index 2 } } tunnel t2 { id 10 ip saddr 192.168.3.10 ip daddr 192.168.3.11 sport 1025 dport 21021 ttl 1 erspan { version 1 index 2 } } chain in { type filter hook ingress device veth0 priority 0; název tunelu ip saddr map { 10.141.10.12 : "t1", 10.141.10.13 : "t2" } fwd to erspan1 } } Před načtením pravidel byste měli vytvořit síťové rozhraní erspan1: ip link add dev erspan1 type erspan external
  • Přidána podpora pro masky v názvech síťových rozhraní v obslužných rutinách netdev. Například pro přidání základního řetězce do filtru příchozího provozu pro všechna zařízení VLAN můžete zadat: table netdev t { chain c { type filter hook ingress devices = { "vlan*", "veth0" } priority filter; policy accept; } }
  • Na systémech s jádrem Linux Verze 6.18+ podporuje přenos rámců L2 do rozhraní síťového mostu pro lokální zpracování. Například pro směrování všech ethernetových rámců pro MAC adresu de:ad:00:00:be:ef do IP stacku můžete zadat: table bridge global { chain pre { type filter hook prerouting priority 0; policy accept; ether daddr de:ad:00:00:be:ef meta pkttype set host ether daddr set meta ibrhwaddr accept } }
  • Přidána nová infrastruktura pro fuzzing testování pomocí sady nástrojů afl++ (americký fuzzy lop++), která je povolena v době sestavení pomocí příkazu "./configure --with-fuzzer".

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster