ĂshtĂ« publikuar lĂ«shimi i filtrit tĂ« paketave nftables 1.1.6, i cili unifikon ndĂ«rfaqet e filtrimit tĂ« paketave pĂ«r IPv4, IPv6, ARP dhe urat rrjetĂ« (shĂ«non qĂ«llimin pĂ«r tĂ« zĂ«vendĂ«suar iptables, ip6tables, arptables dhe ebtables). NjĂ«kohĂ«sisht, Ă«shtĂ« publikuar lĂ«shimi i bibliotekĂ«s pĂ«rkatĂ«se libnftnl 1.3.1, e cila ofron njĂ« API tĂ« nivelit tĂ« ulĂ«t pĂ«r ndĂ«rveprimin me nĂ«n-sistemin nf_tables.
Paketat nftables përfshijnë komponentët e filtrit të paketave që punojnë në hapësirën e përdoruesit, ndërsa në nivelin e bërthamor, funksionin e realizon nën-sistemi nf_tables, i pranishëm në bërthamën Linux që nga lëshimi 3.13. Në nivelin e bërthamor ofrohet vetëm një ndërfaqe e përgjithshme, e pavarur nga protokolli konkret dhe që ofron funksione bazike për nxjerrjen e të dhënave nga paketat, realizimin e operacioneve me të dhëna dhe menaxhimin e fluksit.
Rregullat e filtrimit dhe trajtuesit specifik për protokollet kompilohet në kodin e bytes në hapësirën e përdoruesit, pas së cilës ky kod bytes ngarkohet në bërthamë përmes ndërfaqes Netlink dhe ekzekutohet në bërthamë në një mjedis të veçantë. makinën virtuale, i ngjan Berkley Packet Filters (BPF). Qashtu, kjo qasje lejon të reduktohet ndjeshëm madhësia e kodit të filtrimit që funksionon në nivelin e bërthamës dhe të nxirren të gjitha funksionet e analizës së rregullave dhe logjikës së punës me protokollet në hapësirën e përdoruesit.
Ndryshimet kryesore:
- Sigurohet mbështetje e plotë për modelet e kanaleve të lehta, si vxlan, geneve dhe 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 } } Para ndërtimit të rregullave, duhet të krijohet ndërfaqja e rrjetit erspan1: ip link add dev erspan1 type erspan external
- Shtimi i mbështetjes për maskat në emrat e ndërfaqeve rrjetërore në trajtuesit netdev. Për shembull, për të shtuar një zinxhir bazë në filtrin e trafikut hyrës për të gjitha pajisjet vlan, mund të specifikoni: table netdev t { chain c { type filter hook ingress devices = { «vlan*», «veth0» } priority filter; policy accept; } }
- Në sistemet me bërthamë Linux 6.18+ është realizuar mbështetje për transmetimin e kadrove L2 në ndërfaqen e urave rrjetësore për përpunim lokal. Për shembull, për të drejtuar të gjitha kadrot Ethernet në IP stack për adresën MAC de:ad:00:00:be:ef, mund të specifikoni: 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 } }
- Shtimi i infrastrukturĂ«s sĂ« re pĂ«r fuzzing-testimin duke pĂ«rdorur mjetet afl++ (american fuzzy lop++), e cila aktivizohet nĂ« fazĂ«n e ndĂ«rtimit pĂ«rmes «./configure âwith-fuzzer».
Burimi: opennet.ru
