nftables paketni filter 0.9.2 izdanje

održan otpuštanje paketnog filtera nftables 0.9.2, koji se razvija kao zamjena za iptables, ip6table, arptables i ebtables objedinjavanjem interfejsa za filtriranje paketa za IPv4, IPv6, ARP i mrežne mostove. Paket nftables uključuje komponente za filtriranje paketa koje rade u korisničkom prostoru, dok funkcionalnost na nivou kernela obezbjeđuje podsistem nf_tables, koji je dio kernela. Linux начиная с выпуска 3.13. Необходимые для работы выпуска nftables 0.9.2 изменения включения в состав ядра Linux 5.3.

Nivo kernela pruža samo generički interfejs nezavisan od protokola koji obezbeđuje osnovne funkcije za izdvajanje podataka iz paketa, izvođenje operacija sa podacima i kontrolu toka. Sama logika filtriranja i rukovaoci specifični za protokol se kompajliraju u bajtkod u korisničkom prostoru, nakon čega se ovaj bajt kod učitava u kernel pomoću Netlink interfejsa i izvršava u posebnoj virtuelnoj mašini koja podseća na BPF (Berkeley Packet Filters). Ovaj pristup vam omogućava da značajno smanjite veličinu koda za filtriranje koji radi na nivou kernela i premestite sve funkcije raščlanjivanja pravila i logike za rad sa protokolima u korisnički prostor.

Glavne inovacije:

  • Mogućnost provjere broja porta iz zaglavlja paketa transportnog sloja, bez obzira na tip protokola sloja 4:

    dodaj pravilo xy ip protokol { tcp, udp } th dport 53

  • Podrška za obnavljanje životnog vijeka skupa elemenata:

    dodaj element ip xy { 1.1.1.1 timeout 30s ističe 15s }

  • Mogućnost provjere pojedinačnih opcija (lsrr, rr, ssrr i ra) iz IPv4 paketa:

    dodaj pravilo xy ip opcija rr postoji drop

    Za opcije rutiranja, moguće je provjeriti tip, ptr, dužinu i addr polja:

    dodajte pravilo xy ip opciju rr tip 1 drop

  • Sada je moguće specificirati mrežne prefikse i raspon adresa u izrazima:

    iifname ens3 snat na 10.0.0.0/28
    iifname ens3 snat na 10.0.0.1-10.0.0.15

  • Podrška za korištenje varijabli u definicijama lanca:

    define default_policy = prihvatiti
    add chain ip foo bar { type filter hook input priority filter; politika $default_policy }

  • Prioritet lanca sada se može odrediti i numerički i simbolički:

    definiraj prio = filter
    definiraj prionum = 10
    definiraj prioffset = "filter - 150"

    dodaj tablicu ip foo
    dodaj lanac ip foo bar { tip filter kuka prioritet unosa $prio; }
    add chain ip foo ber { tip filter kuka ulazni prioritet $prionum; }
    add chain ip foo bor { tip filter kuka ulazni prioritet $prioffset; }

  • Implementirana je podrška za synproxy modul. Na primjer, da biste stavili TCP port 8888 pod sinproksi zaštitu, možete koristiti sljedeći skup pravila:

    tablica ip x {
    lanac y {
    tip filter kuka prerouting prioritet neobrađen; prihvatiti politiku;
    tcp dport 8888 tcp flags syn notrack
    }

    lanac z {
    tip filter zakaka prioritetni filter naprijed; prihvatiti politiku;
    tcp dport 8888 ct stanje nevažeće, nepraćen sinproksi mss 1460 \\
    wscale 7 vremenska oznaka sack-perm ct stanje nevažeće ispuštanje
    }
    }

  • Da biste definirali očekivane dodatne veze povezane s trenutnom vezom u conntrack tablici, koje se koriste u protokolima i scenarijima koji zahtijevaju višestruke veze, sada možete definirati politike putem standardnih skupova pravila. Na primjer, da odredite koje se sljedeće veze s portom 8888 očekuju nakon povezivanja na TCP port 5432, možete odrediti sljedeća pravila:

    tabela x {
    ct očekivanje myexpect {
    protokol tcp
    dport 5432
    timeout 1h
    veličina 12
    l3proto ip
    }

    lančani ulaz {
    tip filter kuka prioritet unosa 0;
    ct state novi tcp dport 8888 ct očekivanje postavljeno myexpect
    ct stanje uspostavljeno, odgovarajući brojač prihvati
    }
    }

izvor: opennet.ru

Kupite pouzdan hosting za sajtove sa DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster