Izdanje filtra paketa nftables 1.0.2

Objavljeno je izdanje filtera paketa nftables 1.0.2, koje objedinjuje sučelja za filtriranje paketa za IPv4, IPv6, ARP i mrežne mostove (s ciljem zamjene iptables, ip6table, arptables i ebtables). Promjene potrebne za rad izdanja nftables 1.0.2 uključene su u Linux kernel 5.17-rc.

Paket nftables uključuje komponente filtera paketa koje se izvode u korisničkom prostoru, dok rad na razini kernela osigurava podsustav nf_tables, koji je dio Linux kernela od izdanja 3.13. Razina kernela pruža samo generičko sučelje neovisno o protokolu koje pruža osnovne funkcije za izdvajanje podataka iz paketa, izvođenje podatkovnih operacija i kontrolu toka.

Pravila filtriranja i rukovatelji specifični za protokol kompajliraju se u bajt kod u korisničkom prostoru, nakon čega se ovaj bajt kod učitava u kernel pomoću Netlink sučelja i izvršava u kernelu u posebnom virtualnom stroju koji podsjeća na BPF (Berkeley Packet Filters). Ovaj pristup vam omogućuje da značajno smanjite veličinu koda za filtriranje koji se izvodi na razini jezgre i premjestite sve funkcije pravila parsiranja i logike za rad s protokolima u korisnički prostor.

Glavne inovacije:

  • Dodan je način optimizacije pravila, omogućen korištenjem nove opcije "-o" ("--optimize"), koja se može kombinirati s opcijom "--check" za provjeru i optimizaciju promjena u datoteci skupa pravila bez stvarnog učitavanja . Optimizacija vam omogućuje kombiniranje sličnih pravila, na primjer pravila: 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 .2.2.2.2 prihvatiti ip saddr 3.3.3.3 ip daddr XNUMX drop

    će se kombinirati u meta iifname. ip saddr. ip daddr {eth1. 1.1.1.1. 2.2.2.3, eth1. 1.1.1.2. 2.2.2.5 } prihvati ip saddr. ip daddr vmap { 1.1.1.1. 2.2.2.2 : prihvatiti, 2.2.2.2 . 3.3.3.3 : drop }

    Primjer upotrebe: # nft -c -o -f ruleset.test Spajanje: ruleset.nft:16:3-37: ip daddr 192.168.0.1 counter accept rules.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 into: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packets 0 bytes 0 accept

  • Popisi skupova implementiraju mogućnost određivanja ip i tcp opcija, kao i sctp dijelova: set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } lanac c5 { ip option ra value @s5 accept } chain c7 { sctp chunk init num-inbound-streams @s7 accept }
  • Dodana podrška za TCP opcije fastopen, md5sig i mptcp.
  • Dodana podrška za korištenje mp-tcp podtipa u preslikavanjima: tcp opcija mptcp podtip 1
  • Poboljšan kod za filtriranje na strani jezgre.
  • Flowtable sada ima punu podršku za JSON format.
  • Omogućena je mogućnost korištenja radnje "odbaci" u operacijama podudaranja Ethernet okvira. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 odbaci

Izvor: opennet.ru

Dodajte komentar