Izdanje paketskog filtra nftables 1.1.6

Objavljen je izdanak paketnog filtra nftables 1.1.6, koji unificira sučelja filtriranja paketa za IPv4, IPv6, ARP i mrežne mostove (cilja na zamjenu iptables, ip6tables, arptables i ebtables). U isto vrijeme objavljeno je izdanak prateće biblioteke libnftnl 1.3.1, koja pruža niskonivovski API za interakciju s pod-sustavom nf_tables.

U paket nftables uključeni su komponente paketskog filtra koje rade u korisničkom prostoru, dok na razini jezgre rad osigurava pod-sustav nf_tables, koji je deo jezgre Linuxa od izdanja 3.13. Na razini jezgre pruža se samo opće sučelje koje nije ovisno o specifičnom protokolu i koje osigurava osnovne funkcije ekstrakcije podataka iz paketa, izvršavanja operacija s podacima i upravljanja protokom.

Izravno pravila filtriranja i specifični za protokole obrada se kompajliraju u bajtkod u korisničkom prostoru, nakon čega se taj bajtkod učitava u jezgru putem Netlink sučelja i izvršava u jezgru u posebnoj virtualnoj mašini, koja podsjeća na BPF (Berkeley Packet Filters). Ovaj pristup omogućava značajno smanjenje veličine koda filtriranja koji radi na razini jezgre i prebacivanje svih funkcija analize pravila i logike rada s protokolima u korisnički prostor.

Glavne promjene:

  • Osigurana je potpuna podrška za predloške laganih tunela, kao što su vxlan, geneve i 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; tunnel name ip saddr map { 10.141.10.12 : "t1", 10.141.10.13 : "t2" } fwd to erspan1 } } Prije učitavanja pravila potrebno je stvoriti mrežno sučelje erspan1: ip link add dev erspan1 type erspan external
  • Dodana je podrška za maske u nazivima mrežnih sučelja u procesorima netdev, na primjer, za dodavanje osnovnog lanca u filtar dolaznog prometa za sve uređaje vlan, može se navesti: table netdev t { chain c { type filter hook ingress devices = { "vlan*", "veth0" } priority filter; policy accept; } }
  • Na sustavima s Linux kernelom 6.18+ implementirana je podrška za prijenos L2 okvira u sučelje mrežnih mostova za lokalnu obradu, na primjer, za prosljeđivanje svih Ethernet okvira za MAC adresu de:ad:00:00:be:ef može se navesti: 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 } }
  • Dodana je nova infrastruktura za fuzzing-testiranje koristeći alat afl++ (american fuzzy lop++), koja se uključuje u fazi gradnje kroz "./configure --with-fuzzer".

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster