Avaldati pakettfiltri nftables 1.1.6 vĂ€ljaanne, mis ĂŒhtlustab pakettide filtreerimise liideseid IPv4, IPv6, ARP ja vĂ”rgu sillade jaoks (sihtides asendada iptables, ip6tables, arptables ja ebtables). Samuti avaldati kaasneva teegi libnftnl 1.3.1 vĂ€ljaanne, mis pakub madala taseme API-d nf_tables sĂŒsteemiga suhtlemiseks.
Nftables'i paketti kuuluvad kasutajaruumi töötavad pakettfilteri komponendid, samas kui tuuma tasemel tagab töö nf_tables sĂŒsteem, mis on osa Linuxi tuumast alates versioonist 3.13. Tuuma tasemel pakutakse vaid ĂŒldist liidest, mis ei sĂ”ltu konkreetsest protokollist ja pakub pĂ”hifunktsioone andmete vĂ€ljavĂ”tmiseks pakettidest, andmetega töötamiseks ja voogude haldamiseks.
Filtreerimise reeglid ja protokollile spetsiifilised töötlejad kompileeritakse kasutajaruumi baidikoodiks, seejÀrel laaditakse see baidikood tuuma Netlink liidese abil ja tÀidetakse tuumas spetsiaalses virtuaalses masinas, mis meenutab BPF-i (Berkeley Packet Filters). Selline lÀhenemine vÔimaldab oluliselt vÀhendada tuuma tasemel töötava filtreerimiskoodi suurust ja viia kÔik reeglite tÔlgendamise ja protokollidega töötamise funktsioonid kasutajaruumi.
Peamised muudatused:
- TÀielik tugi kergete tunnelite mallidele, nagu vxlan, geneve ja 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 } } Enne reeglite laadimist tuleb luua vÔrguliides erspan1: ip link add dev erspan1 type erspan external
- Lisatud tugi maskide jaoks vÔrgu liideste nimedes netdevi töötlemisse, nÀiteks sisenemisse suunatud liiklusfiltri pÔhiehestruktuuri lisamiseks kÔigi vlan seadmete jaoks saab nÀidata: table netdev t { chain c { type filter hook ingress devices = { "vlan*", "veth0" } priority filter; policy accept; } }
- Linuxi kerneliga sĂŒsteemides 6.18+ on rakendatud L2-raamide edastusvĂ”ime toetamine vĂ”rgu sillade liideste jaoks kohalikuks töötlemiseks, nĂ€iteks kĂ”ikide Ethernet-raamide suunamiseks IP-stĂ€kki MAC-aadressile de:ad:00:00:be:ef vĂ”ib nĂ€idata: 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 } }
- Lisatud uus infrastruktuur fuzz-testimiseks, kasutades tööriistakomplekti afl++ (american fuzzy lop++), aktiveeritakse ehitusprotsessi kÀigus lÀbi "./configure --with-fuzzer".
Allikas: opennet.ru
