Izlazak paketnog filtra nftables 0.9.3

Objavljeno izlazak paketskog filtera nftables 0.9.3, koji se razvija kao zamjena za iptables, ip6tables, arptables i ebtables ujedinjavajući sučelja za filtriranje paketa za IPv4, IPv6, ARP i mrežne mostove. Paket nftables uključuje komponente paketskog filtra koje rade u korisničkom prostoru, dok na razini jezgre rad osigurava podsustav nf_tables, koji je dio jezgre Linuxa od verzije 3.13. Potrebne promjene za rad verzije nftables 0.9.3 uključene su u buduću granu jezgre Linux 5.5.

Na razini jezgre osigurava se samo opće sučelje koje ne ovisi o određenom protokolu i osigurava osnovne funkcije ekstrakcije podataka iz paketa, izvršavanje operacija s podacima i upravljanje tokom. Logika filtriranja i specifični protokol handleri kompajliraju se u bajtkod u korisničkom prostoru, a zatim se taj bajtkod učitava u jezgru putem Netlink sučelja i izvršava u posebnoj virtualnoj mašini koja podsjeća na BPF (Berkeley Packet Filters). Ovaj pristup značajno smanjuje veličinu koda filtriranja koji radi na razini jezgre i premješta sve funkcije analize pravila i logike rada s protokolima u korisnički prostor.

Glavne novine:

  • Podrška za vremensko usklađivanje paketa. Mogu se odrediti kako rasponi vremena i datuma u kojima će pravilo aktivirati, tako i podešavanje aktiviranja u posebne dane u tjednu. Također je dodana nova opcija „-T“ za ispis epohe vremena u sekundama.

    meta time "2019-12-24 16:00" — "2020-01-02 7:00"
    meta hour "17:00" — "19:00"
    meta day "Fri"

  • Podrška za vraćanje i spremanje SELinux oznaka (secmark).

    ct secmark set meta secmark
    meta secmark set ct secmark

  • Podrška za map-liste synproxy, omogućujući definiranje više od jednog pravila za backend.

    table ip foo {
    synproxy https-synproxy {
    mss 1460
    wscale 7
    timestamp sack-perm
    }

    synproxy other-synproxy {
    mss 1460
    wscale 5
    }

    chain pre {
    type filter hook prerouting priority raw; policy accept;
    tcp dport 8888 tcp flags syn notrack
    }

    chain bar {
    type filter hook forward priority filter; policy accept;
    ct state invalid, untracked synproxy name ip saddr map { 192.168.1.0/24 : "https-synproxy", 192.168.2.0/24 : "other-synproxy" }
    }
    }

  • Mogućnost dinamičkog uklanjanja elemenata set-skupova iz pravila obrade paketa.

    nft add rule … delete @set5 { ip6 saddr . ip6 daddr }

  • Podrška za usklađivanje VLAN-a po identifikatoru i protokolu, definiranim u metapodacima sučelja mrežnog mosta;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Opcija «-t» («—terse») za isključivanje elemenata set-nabora prilikom prikaza pravila. Kada se izvrši «nft -t list ruleset» bit će prikazano:

    tablica ip x {
    set y {
    tip ipv4_addr
    }
    }

    A kada je «nft list ruleset»

    tablica ip x {
    set y {
    tip ipv4_addr
    elements = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Mogućnost navođenja više uređaja u netdev lancima (radi samo s kernelom 5.5) za kombiniranje standardnih pravila filtriranja.

    dodaj tablicu netdev x
    dodaj lanac netdev x y { \
    tip filter hook ingress uređaji = { eth0, eth1 } prioritet 0;
    }

  • Mogućnost dodavanja opisa tipova podataka.

    # nft describe ipv4_addr
    datatype ipv4_addr (IPv4 adresa) (basetype integer), 32 bita

  • Mogućnost sastavljanja CLI sučelja s bibliotekom linenoise umjesto libreadline.

    ./configure --with-cli=linenoise

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster