Rilascio del filtro pacchetti nftables 0.9.3

Pubblicato rilascio del filtro pacchetti nftables 0.9.3, in fase di sviluppo come sostituto di iptables, ip6tables, arptables ed ebtables grazie all'unificazione delle interfacce di filtraggio dei pacchetti per IPv4, IPv6, ARP e ponti di rete. Il pacchetto nftables include componenti del filtro pacchetti che operano nello spazio utente, mentre a livello del kernel il funzionamento è assicurato dal sotto-sistema nf_tables, integrato nel kernel Linux a partire dalla versione 3.13. Le modifiche necessarie per il rilascio di nftables 0.9.3 sono incluse nella futura serie del kernel Linux 5.5.

A livello di kernel viene fornito solo un'interfaccia generale, indipendente dal protocollo specifico e che offre funzioni di base per l’estrazione dei dati dai pacchetti, l'esecuzione di operazioni sui dati e la gestione del flusso. La logica di filtraggio e i gestori specifici per i protocolli vengono compilati in bytecode nello spazio utente, dopo di che questo bytecode viene caricato nel kernel attraverso l'interfaccia Netlink ed eseguito in una speciale macchina virtuale simile ai BPF (Berkeley Packet Filters). Questo approccio consente di ridurre significativamente la dimensione del codice di filtraggio che opera a livello di kernel e di spostare tutte le funzioni di analisi delle regole e logiche di gestione dei protocolli nello spazio utente.

Novità principali:

  • Supporto per il confronto dei pacchetti per tempo. È possibile definire sia intervalli di tempo e date in cui la regola entrerà in vigore, sia impostare l’attivazione in determinati giorni della settimana. È stata inoltre aggiunta una nuova opzione "-T" per visualizzare il tempo epocale in secondi.

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

  • Supporto per il recupero e il salvataggio delle etichette SELinux (secmark).

    ct secmark set meta secmark
    meta secmark set ct secmark

  • Supporto per le liste map synproxy, che consentono di definire più di una regola per il 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» }
    }
    }

  • Possibilità di rimuovere dinamicamente elementi dai set di regole per l'elaborazione dei pacchetti.

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

  • Supporto per il confronto VLAN in base all'identificatore e al protocollo, definiti nei metadati dell'interfaccia del ponte di rete;

    meta ibrpvid 100
    meta ibrvproto vlan

  • L'opzione «-t» («—terse») per escludere gli elementi dei set durante la visualizzazione delle regole. Eseguendo «nft -t list ruleset» verrà visualizzato:

    tabella ip x {
    set y {
    tipo ipv4_addr
    }
    }

    Ma con «nft list ruleset»

    tabella ip x {
    set y {
    tipo ipv4_addr
    elementi = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Possibilità di specificare più di un dispositivo nelle catene netdev (funziona solo con il kernel 5.5) per unire regole di filtraggio standard.

    aggiungi tabella netdev x
    aggiungi catena netdev x y { \
    tipo filtro gancio ingress dispositivi = { eth0, eth1 } priorità 0;
    }

  • Possibilità di aggiungere descrizioni ai tipi di dati.

    # nft describe ipv4_addr
    datatype ipv4_addr (indirizzo IPv4) (basetype integer), 32 bit

  • Possibilità di costruire l'interfaccia CLI con la libreria linenoise invece di libreadline.

    .\/configure —with-cli=linenoise

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster