Izid paketnega filtera nftables 1.0.2

Objavljen je izdanak paketskog filtarskog sistema nftables 1.0.2, koji standardizuje interfejse filtracije paketa za IPv4, IPv6, ARP i mrežne mostove (cilj je zameniti iptables, ip6tables, arptables i ebtables). Neophodne izmene za rad izdanja nftables 1.0.2 uključene su u sastav jezgra Linux 5.17-rc.

U paket nftables uključene su komponente paketnog filtriranja koje rade u prostoru korisnika, dok na nivou kernela rad obezbeđuje podsystem nf_tables, koji je deo kernela Linux od izdanja 3.13. Na nivou kernela pruža se samo opšti interfejs, nezavistan od konkretnih protokola i obezbeđuje osnovne funkcije za ekstrakciju podataka iz paketa, izvršavanje operacija sa podacima i upravljanje protokom.

Pravila filtriranja i specifični obrtnici za protokole se direktno kompajluju u bajt kod u prostoru korisnika, nakon čega se ovaj bajt kod učitava u kernel preko Netlink interfejsa i izvršava u kernelu u specijalnoj virtualni napravi, podsećajući na BPF (Berkeley Packet Filters). Ovakav pristup omogućava značajno smanjenje veličine koda filtracije koji radi na nivou kernela i iznosi sve funkcije parsiranja pravila i logike rada sa protokolima u prostor korisnika.

Glavne novosti:

  • Dodata je opcija optimizacije pravila, koja se aktivira novom opcijom „-o“ („—optimize“), koja se može kombinovati sa opcijom „—check“ za proveru i optimizaciju izmena u datoteci sa skupom pravila bez njenog stvarnog učitavanja. Optimizacija omogućava spajanje sličnih 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 daddr 2.2.2.2 accept ip saddr 2.2.2.2 ip daddr 3.3.3.3 drop

    biće spojena 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 } accept ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : accept, 2.2.2.2 . 3.3.3.3 : drop }

    Primer korišćenja: # nft -c -o -f ruleset.test Merging: 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 counter accept u: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packets 0 bytes 0 accept

  • U set-listama je implementirana mogućnost navođenja ip- i tcp-opcija, kao i chunk-ova sctp: set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } chain c5 { ip option ra value @s5 accept } chain c7 { sctp chunk init num-inbound-streams @s7 accept }
  • Dodata je podrška za TCP opcije fastopen, md5sig i mptcp.
  • Dodata je podrška za korišćenje u uslovima podtipa mp-tcp: tcp option mptcp subtype 1
  • Poboljšan je kod filtracije koji radi na strani jezgra.
  • Za flowtable je implementirana potpuna podrška za JSON format.
  • Omogućena je upotreba akcije „reject“ u operacijama uslovnog prepoznavanja Ethernet okvira. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 reject

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster