nftables csomagszűrő kiadás 0.9.3

közzétett csomagszűrő kiadás nftables 0.9.3, az iptables, ip6table, arptables és ebtables helyettesítésére fejlesztették ki az IPv4, IPv6, ARP és hálózati hidak csomagszűrő felületeinek egységesítésével. Az nftables csomag felhasználói térben futó csomagszűrő komponenseket tartalmaz, míg a kernel szintű munkát az nf_tables alrendszer biztosítja, amely a 3.13-as kiadás óta a Linux kernel része. Az nftables 0.9.3-as kiadás működéséhez szükséges változtatásokat a hamarosan megjelenő Linux 5.5-ös kernelág tartalmazza.

A kernelszint csak egy általános, protokoll-független interfészt biztosít, amely alapvető funkciókat biztosít az adatok csomagokból történő kinyeréséhez, adatműveletek végrehajtásához és az áramlásvezérléshez. Magát a szűrési logikát és a protokoll-specifikus kezelőket a felhasználói térben bájtkódba fordítják, majd ezt a bájtkódot a Netlink interfész segítségével betöltik a kernelbe, és egy speciális, BPF-re (Berkeley Packet Filters) emlékeztető virtuális gépen hajtják végre. Ez a megközelítés lehetővé teszi a kernel szintjén futó szűrőkód méretének jelentős csökkentését, és a protokollokkal való munkavégzéshez szükséges elemzési szabályok és logikák összes funkciójának áthelyezését a felhasználói térbe.

Főbb újítások:

  • Támogatás a csomagok idő szerinti egyeztetéséhez. Meghatározhatja az idő- és dátumtartományokat is, amelyekben a szabály aktiválásra kerül, és beállíthatja az aktiválást a hét egyes napjain. Szintén hozzáadott egy új "-T" opciót az epochális idő másodpercekben történő megjelenítéséhez.

    meta idő \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
    meta óra \"17:00\" - \"19:00\"
    meta nap \"Péntek\"

  • Támogatás a SELinux jelek helyreállításához és mentéséhez (secmark).

    ct secmark set meta secmark
    meta secmark set ct secmark

  • A synproxy leképezési listák támogatása, amely lehetővé teszi egynél több szabály meghatározását háttérrendszerenként.

    table ip foo {
    synproxy https-synproxy {
    mss 1460
    wskála 7
    időbélyeg zsák-perm
    }

    synproxy other-synproxy {
    mss 1460
    wskála 5
    }

    lánc pre {
    típusú filter hook prerouting priority raw; szabályzat elfogadása;
    tcp dport 8888 tcp flags syn notrack
    }

    láncrúd {
    típusú szűrő hook forward priority szűrő; szabályzat elfogadása;
    ct állapot érvénytelen, nyomon nem követett synproxy név ip saddr map { 192.168.1.0/24 : "https-synproxy", 192.168.2.0/24 : "egyéb-synproxy" }
    }
    }

  • Lehetőség a halmazelemek dinamikus eltávolítására a csomagfeldolgozási szabályokból.

    nft szabály hozzáadása ... törlés @set5 { ip6 saddr . ip6 apa}

  • A VLAN-leképezés támogatása a hálózati híd interfész metaadataiban meghatározott azonosító és protokoll alapján;

    meta ibrpvid 100
    meta ibrvproto vlan

  • A "-t" ("--terse") opció a halmazkészletek elemeinek kizárásához szabályok megjelenítésekor. Az "nft -t list rulet" futtatása a következőt fogja eredményezni:

    táblázat ip x {
    set y {
    írja be az ipv4_addr
    }
    }

    És az „nft lista szabályaival”

    táblázat ip x {
    set y {
    írja be az ipv4_addr
    elemek = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Egynél több eszköz megadása a netdev láncokban (csak az 5.5-ös rendszermaggal működik) a közös szűrési szabályok kombinálása érdekében.

    netdev x tábla hozzáadása
    lánc hozzáadása netdev x y { \
    típusú szűrő horog bemeneti eszközök = { eth0, eth1 } prioritás 0;
    }

  • Lehetőség adattípusok leírásának hozzáadására.

    # nft írja le az ipv4_addr
    adattípus ipv4_addr (IPv4 cím) (alaptípus egész szám), 32 bit

  • Lehetőség CLI interfész felépítésére a linenoise könyvtárral a libreadline helyett.

    ./configure --with-cli=linenoise

Forrás: opennet.ru

Hozzászólás