nftables-pakettisuodattimen julkaisu 1.0.2

Pakettisuodattimen nftables 1.0.2 -julkaisu on julkaistu, ja se yhdistää IPv4:n, IPv6:n, ARP:n ja verkkosiltojen pakettisuodatusrajapinnat (joka on tarkoitettu korvaamaan iptables, ip6table, arptables ja ebtables). Tarvittavat muutokset nftables 1.0.2 -julkaisun toimimiseen sisältyvät Linux-ytimen 5.17-rc:hen.

Paketti nftables sisältää pakettisuodatinkomponentteja, jotka toimivat käyttäjätilassa, kun taas ydintason työn tarjoaa nf_tables-alijärjestelmä, joka on ollut osa Linux-ydintä julkaisusta 3.13 lähtien. Ydintaso tarjoaa vain yleisen protokollasta riippumattoman rajapinnan, joka tarjoaa perustoiminnot datan poimimiseen paketeista, datatoimintojen suorittamiseen ja vuon ohjaukseen.

Suodatussäännöt ja protokollakohtaiset käsittelijät käännetään käyttäjätilassa tavukoodiksi, jonka jälkeen tämä tavukoodi ladataan ytimeen Netlink-rajapinnan avulla ja suoritetaan ytimessä erityisessä BPF:ää (Berkeley Packet Filters) muistuttavassa virtuaalikoneessa. Tämän lähestymistavan avulla voit pienentää merkittävästi ydintasolla käynnissä olevan suodatuskoodin kokoa ja siirtää kaikki jäsennyssääntöjen ja protokollien kanssa työskentelyn logiikan toiminnot käyttäjätilaan.

Tärkeimmät innovaatiot:

  • Sääntöjen optimointitila on lisätty, joka on otettu käyttöön uudella "-o" ("--optimize") -vaihtoehdolla, joka voidaan yhdistää "--check"-vaihtoehdon kanssa tarkistaaksesi ja optimoidaksesi sääntötiedostoon tehdyt muutokset lataamatta sitä. . Optimoinnin avulla voit yhdistää samanlaisia ​​sääntöjä, esimerkiksi säännöt: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 hyväksy meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 accept ip saddr .1.1.1.1 accept ip saddr 2.2.2.2d2.2.2.2. .3.3.3.3 hyväksy ip saddr XNUMX ip daddr XNUMX drop

    yhdistetään meta iifname : ksi. ip saddr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3, eth1 . 1.1.1.2. 2.2.2.5 } hyväksy ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : hyväksyä, 2.2.2.2 . 3.3.3.3 : pudota }

    Käyttöesimerkki: # nft -c -o -f ruleset.test Yhdistäminen: 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 säännöt

  • Joukkoluettelot toteuttavat mahdollisuuden määrittää ip- ja tcp-asetukset sekä sctp-osat: set s5 { ip-vaihtoehdon tyyppi ra arvoelementit = { 1, 1024 } } set s7 { sctp-kappaleen tyyppi init num-inbound-streams elements = { 1, 4 } } ketju c5 { ip vaihtoehto ra arvo @s5 hyväksy } ketju c7 { sctp chunk init num-inbound-streams @s7 accept }
  • Lisätty tuki TCP-vaihtoehdoille fastopen, md5sig ja mptcp.
  • Lisätty tuki mp-tcp-alatyypin käyttämiselle kartoituksissa: tcp option mptcp alatyyppi 1
  • Parannettu ydinpuolen suodatuskoodi.
  • Flowtable tukee nyt täysin JSON-muotoa.
  • Mahdollisuus käyttää "hylkäämis"-toimintoa Ethernet-kehysten sovitustoiminnoissa on tarjottu. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 hylkää

Lähde: opennet.ru

Lisää kommentti