nftables paketni filter 1.0.2 izdanje

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

Paket nftables uključuje komponente filtera paketa koje se pokreću u korisničkom prostoru, dok nivo kernela obezbjeđuje nf_tables podsistem, koji je dio Linux kernela od izdanja 3.13. Na nivou kernela, obezbeđen je samo generički interfejs nezavisan od protokola koji obezbeđuje osnovne funkcije za izdvajanje podataka iz paketa, izvođenje operacija nad podacima i kontrolu toka.

Sama pravila filtriranja i rukovaoci specifični za protokol se kompajliraju u bajt-kod korisničkog prostora, nakon čega se ovaj bajt kod učitava u kernel pomoću Netlink interfejsa i izvršava u kernelu u posebnoj virtuelnoj mašini koja liči na BPF (Berkeley paketni filteri). Ovaj pristup omogućava značajno smanjenje veličine koda za filtriranje koji radi na nivou kernela i premještanje svih funkcija raščlanjivanja pravila i logike rada s protokolima u korisnički prostor.

Glavne inovacije:

  • Dodan je način optimizacije pravila, omogućen pomoću 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ćava da kombinujete slična pravila, na primer 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. .2.2.2.2 prihvatiti ip saddr 2.2.2.2 ip daddr 3.3.3.3 drop

    će biti kombinovan 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 } prihvatiti ip saddr. ip daddr vmap { 1.1.1.1 . 2.2.2.2 : prihvatiti, 2.2.2.2 . 3.3.3.3 : ispusti }

    Primjer upotrebe: # nft -c -o -f ruleset.test Spajanje: 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 brojač prihvati u: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } brojač paketa 0 bajtova 0 prihvati

  • Set liste implementiraju mogućnost specificiranja 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 opcija ra vrijednost @s5 prihvati } lanac c7 { sctp chunk init num-inbound-streams @s7 prihvati }
  • Dodata podrška za TCP opcije fastopen, md5sig i mptcp.
  • Dodata podrška za korištenje podtipa mp-tcp u mapiranju: tcp opcija mptcp podtip 1
  • Poboljšan kod za filtriranje na strani kernela.
  • Flowtable sada ima punu podršku za JSON format.
  • Omogućena je mogućnost korištenja akcije „odbacivanje“ u operacijama usklađivanja Ethernet okvira. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 odbiti

izvor: opennet.ru

Dodajte komentar