Lansarea filtrului de pachete nftables 0.9.2

A avut loc lansarea filtrului de pachete nftables 0.9.2, dezvoltându-se ca o alternativă la iptables, ip6tables, arptables și ebtables prin unificarea interfețelor de filtrare a pachetelor pentru IPv4, IPv6, ARP și punți de rețea. Pachetul nftables include componente ale filtrului de pachete care funcționează în spațiul utilizatorului, în timp ce la nivelul nucleului, funcționalitatea este asigurată de subsistemul nf_tables, parte integrantă a nucleului Linux începând cu versiunea 3.13. Modificările necesare pentru funcționarea versiunii nftables 0.9.2 sunt incluse în nucleul Linux 5.3.

La nivelul nucleului, se oferă doar o interfață generală, independentă de protocolul specific, care furnizează funcții de bază pentru extragerea datelor din pachete, efectuarea operațiunilor asupra datelor și gestionarea fluxului. Logica de filtrare și handler-ele specifice protocolului sunt compilate în bytecode în spațiul utilizatorului, după care acest bytecode este încărcat în nucleu prin intermediul interfeței Netlink și este executat într-o mașină virtuală specială, similară cu BPF (Berkeley Packet Filters). Această abordare permite reducerea semnificativă a dimensiunii codului de filtrare care rulează la nivelul nucleului și externalizarea tuturor funcțiilor de analiză a regulilor și logicii de lucru cu protocoalele în spațiul utilizatorului.

Noutăți principale:

  • Posibilitatea de a verifica numărul de port din antetul pachetului de nivel de transport, indiferent de tipul protocolului de nivel 4:

    add rule x y ip protocol { tcp, udp } th dport 53

  • Suport pentru restaurarea timpului de viață al unui set de elemente:

    add element ip x y { 1.1.1.1 timeout 30s expires 15s }

  • Posibilitatea de a verifica opțiuni individuale (lsrr, rr, ssrr și ra) din pachetele IPv4:

    add rule x y ip option rr exists drop

    Pentru opțiunile de rutare, verificarea câmpurilor type, ptr, length și addr este posibilă:

    add rule x y ip option rr type 1 drop

  • În expresii este acum permisă specificarea prefixelor de rețea și a intervalelor de adrese:

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

  • Suport pentru utilizarea variabilelor în definițiile lanțurilor:

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

  • Specificația priorității lanțului poate fi realizată atât în format numeric, cât și simbolic:

    define prio = filter
    define prionum = 10
    define prioffset = «filter — 150»

    add table ip foo
    add chain ip foo bar { type filter hook input priority $prio; }
    add chain ip foo ber { type filter hook input priority $prionum; }
    add chain ip foo bor { type filter hook input priority $prioffset; }

  • Suport pentru modulul synproxy. De exemplu, pentru a proteja portul TCP 8888 cu synproxy, se pot folosi următoarele reguli:

    tabelă ip x {
    lanț y {
    tip filtru hook prerouting prioritate raw; politică acceptare;
    tcp dport 8888 tcp flags syn notrack
    }

    lanț z {
    tip filtru hook forward prioritate filter; politică acceptare;
    tcp dport 8888 ct state invalid,untracked synproxy mss 1460 \
    wscale 7 timestamp sack-perm ct state invalid drop
    }
    }

  • Pentru a determina în tabelul conntrack conexiunile așteptate suplimentare asociate cu conexiunea curentă, care sunt aplicate în protocoalele și scenariile care necesită stabilirea mai multor conexiuni, acum se pot stabili politici prin intermediul seturilor standard de reguli. De exemplu, pentru a determina conexiuni așteptate către portul TCP 8888 pentru conexiuni ulterioare către portul 5432 se pot specifica următoarele reguli:

    tabelă x {
    ct expectation myexpect {
    protocol tcp
    dport 5432
    timeout 1h
    size 12
    l3proto ip
    }

    lanț input {
    tip filtru hook input prioritate 0;
    ct state new tcp dport 8888 ct expectation set myexpect
    ct state established,related counter accept
    }
    }

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster