Uscita del filtro pacchetti nftables 1.1.6

È stato pubblicato il rilascio del filtro pacchetti nftables 1.1.6, che unifica le interfacce di filtraggio dei pacchetti per IPv4, IPv6, ARP e ponti di rete (mirato a sostituire iptables, ip6tables, arptables ed ebtables). Contemporaneamente è stato rilasciato anche il pacchetto associato libnftnl 1.3.1, che fornisce un'API a basso livello per interagire con il sottosistema nf_tables.

Il pacchetto nftables include componenti del filtro pacchetti che operano nello spazio utente, mentre a livello kernel, il funzionamento è garantito dal sottosistema nf_tables, incluso nel kernel Linux dalla versione 3.13. A livello kernel viene fornita solo un'interfaccia generica, non dipendente dal protocollo specifico, che offre funzionalità di base per l'estrazione dei dati dai pacchetti, l'esecuzione di operazioni sui dati e la gestione del flusso.

Le regole 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 tramite l'interfaccia Netlink e viene eseguito nel kernel in un'area speciale. macchina virtuale, che ricorda i BPF (Berkeley Packet Filters). Questo approccio consente di ridurre significativamente la dimensione del codice di filtraggio che opera a livello di kernel, spostando tutte le funzioni di analisi delle regole e la logica di gestione dei protocolli nello spazio utente.

Principali modifiche:

  • È stata fornita un'implementazione completa dei modelli di tunnel leggeri, come vxlan, geneve ed erspan: table netdev global { tunnel t1 { id 10 ip saddr 192.168.2.10 ip daddr 192.168.2.11 sport 1025 dport 20020 ttl 1 erspan { version 1 index 2 } } tunnel t2 { id 10 ip saddr 192.168.3.10 ip daddr 192.168.3.11 sport 1025 dport 21021 ttl 1 erspan { version 1 index 2 } } chain in { type filter hook ingress device veth0 priority 0; tunnel name ip saddr map { 10.141.10.12 : «t1», 10.141.10.13 : «t2» } fwd to erspan1 } } Prima di caricare le regole, è necessario creare l'interfaccia di rete erspan1: ip link add dev erspan1 type erspan external
  • È stata aggiunta la supporto per le maschere nei nomi delle interfacce di rete nei gestori netdev; per esempio, per aggiungere una catena di base nel filtro del traffico in entrata per tutti i dispositivi vlan, si può indicare: table netdev t { chain c { type filter hook ingress devices = { «vlan*», «veth0» } priority filter; policy accept; } }
  • Nei sistemi con kernel Linux 6.18+ è stata implementata la supporto per la trasmissione di frame L2 nell'interfaccia dei bridge di rete per l'elaborazione locale; per esempio, per indirizzare a uno stack IP tutti i frame Ethernet per l'indirizzo MAC de:ad:00:00:be:ef si può indicare: table bridge global { chain pre { type filter hook prerouting priority 0; policy accept; ether daddr de:ad:00:00:be:ef meta pkttype set host ether daddr set meta ibrhwaddr accept } }
  • È stata aggiunta una nuova infrastruttura per il fuzzing-testing utilizzando l'insieme di strumenti afl++ (american fuzzy lop++), abilitabile nella fase di costruzione tramite «./configure —with-fuzzer».

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