nftables-pakettisuodattimen julkaisu 1.0.6

Pakettisuodattimen nftables 1.0.6 -julkaisu on julkaistu, ja se yhdistää IPv4:n, IPv6:n, ARP:n ja verkkosiltojen pakettisuodatusrajapinnat (joka on tarkoitettu korvaamaan iptables, ip6table, arptables ja ebtables). 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.

Suurimmat muutokset:

  • Sääntöjen optimoija, jota kutsutaan, kun "-o/—optimize" on määritetty, sisältää automaattisen sääntöjen pakkaamisen yhdistämällä ne ja muuntamalla ne kartta- ja joukkoluetteloiksi. Esimerkiksi säännöt # cat ruleset.nft table ip x { ketju y { type filter hook input priority filter; politiikan lasku; 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.4 hyväksy meta iifname eth1 ip saddr 1.1.1.2 ip daddr. .2.2.3.0 .24 ip daddr 1-1.1.1.2 accept meta iifname eth2.2.4.0 ip saddr 2.2.4.10 ip daddr 2 accept } }, kun komento "nft -o -c -f ruleset.nft" on suoritettu, muunnetaan seuraavasti: ruleet . nft:1.1.1.3:2.2.2.5-4: meta iifname eth17 ip saddr 74 ip daddr 1 hyväksy säännöt.nft:1.1.1.1:2.2.2.3-5: meta iifname eth17 ip saddr 74 ip daddr 1nft. : 1.1.1.2:2.2.2.4-6: meta iifname eth17 ip saddr 77 ip daddr 1/1.1.1.2 hyväksy säännöt.nft:2.2.3.0:24-7: meta iifname eth17 ip saddr 83 ip daddr 1..1.1.1.2. hyväksy säännöt.nft:2.2.4.0:2.2.4.10-8: meta iifname eth17 ip saddr 74 ip daddr 2 accept into: iifname . ip saddr. ip daddr { eth1.1.1.3 . 2.2.2.5. 1, eth1.1.1.1 . 2.2.2.3. 1, eth1.1.1.2 . 2.2.2.4. 1/1.1.1.2, eth2.2.3.0 . 24. 1-1.1.1.2, eth2.2.4.0. 2.2.4.10. 2 } hyväksy
  • Optimoija voi myös muuntaa säännöt, jotka jo käyttävät yksinkertaisia ​​joukkoluetteloita, tiiviimpään muotoon, esimerkiksi säännöt: # cat ruletti.nft table ip filter { chain input { type filter hook input priority filter; politiikan lasku; iifname “lo” hyväksy ct tila perustettu, liittyvä hyväksy kommentti “Liikeessä olemme lähtöisin, luotamme” iifname “enp0s31f6” ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 } ip daddr 123 ip daddr. 32768 hyväksyä IIFNAME "ENP65535S0F31" IP Saddr {6, 64.59.144.17} ip daddr 64.59.150.133 UDP Sport 10.0.0.149 UDP Dport 53-32768 Hyväksy}} "nft -c -c -f -sääntöjä.nft" -tapahtuman jälkeen. : ruleset.nft:65535:6-22: iifname "enp149s0f31" ip saddr { 6, 209.115.181.102 } ip daddr 216.197.228.230 udp urheilu 10.0.0.149 udp urheilu 123:32768etn65535 7etn22 143etn0 31. :6-64.59.144.17: iifname "enp64.59.150.133s10.0.0.149f53" ip saddr { 32768, 65535 } ip daddr 0 udp sport 31 udp dport 6-209.115.181.102 hyväksyä kohtaan: iifname. ip saddr. ip isä udp urheilu. udp dport { enp10.0.0.149s123f32768 . 65535. 0. 31. 6-216.197.228.230, enp10.0.0.149s123f32768. 65535. 0. 31. 6-64.59.144.17, enp10.0.0.149s53f32768. 65535. 0. 31. 6-64.59.150.133, enp10.0.0.149s53f32768. 65535. XNUMX. XNUMX. XNUMX-XNUMX } hyväksy
  • Ratkaistu ongelma tavukoodin luomisessa, kun yhdistetään aikavälejä, joissa käytetään eri tavujärjestyksen tyyppejä, kuten IPv4 (verkkotavujärjestys) ja metamerkki (järjestelmän tavujärjestys). taulukko ip x { kartta w { ip saddr . metamerkki: tuomiolippujen intervallilaskurielementit = {127.0.0.1-127.0.0.4. 0x123434-0xb00122 : hyväksy, 192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff : hyväksy, } } ketju k { tyyppi suodatin koukku tuloprioriteettisuodatin; politiikan lasku; ip saddr. metamerkki vmap @w } }
  • Parannettu harvinaisten protokollien vertailu, kun käytetään raakalausekkeita, esimerkiksi: meta l4proto 91 @th,400,16 0x0 accept
  • Ongelmat sääntöjen käyttöönotossa aikavälein on ratkaistu: lisää sääntö xy tcp sport { 3478-3497, 16384-16387 } counter accept
  • JSON-sovellusliittymää on parannettu sisältämään tuki joukko- ja karttaluetteloiden lausekkeille.
  • Nftables python -kirjaston laajennukset mahdollistavat sääntöjoukkojen lataamisen tarkistustilassa ("-c") tapahtuvaa käsittelyä varten ja lisäävät tuen muuttujien ulkoiselle määrittelylle.
  • Kommenttien lisääminen on sallittu joukkoluetteloelementeissä.
  • Tavunopeusrajoitus mahdollistaa nolla-arvon määrittämisen.

Lähde: opennet.ru

Lisää kommentti