nftables packet filter 1.0.7 nga pagpagawas

Ang nftables 1.0.7 packet filter release gimantala, naghiusa sa packet filtering interfaces para sa IPv4, IPv6, ARP ug network bridges (nga gitumong sa pag-ilis sa mga iptables, ip6table, arptables ug ebtables). Ang nftables package naglakip sa packet filter components nga nagdagan sa user space, samtang ang kernel level gihatag sa nf_tables subsystem, nga nahimong bahin sa Linux kernel sukad sa pagpagawas sa 3.13. Sa lebel sa kernel, usa lamang ka generic nga protocol-independent nga interface ang gihatag nga naghatag ug sukaranan nga mga gimbuhaton alang sa pagkuha sa datos gikan sa mga pakete, pagpahigayon sa mga operasyon sa datos, ug pagkontrol sa dagan.

Ang mga lagda sa pagsala sa ilang kaugalingon ug mga tigdumala nga espesipiko sa protocol gihugpong ngadto sa user-space bytecode, pagkahuman niini nga bytecode gikarga sa kernel gamit ang Netlink interface ug gipatuman sa kernel sa usa ka espesyal nga virtual machine nga susama sa BPF (Berkeley Packet Filters). Kini nga pamaagi nagpaposible nga makunhuran ang gidak-on sa code sa pagsala nga nagdagan sa lebel sa kernel ug ibalhin ang tanan nga mga gimbuhaton sa mga lagda sa pag-parse ug ang lohika sa pagtrabaho kauban ang mga protocol sa wanang sa gumagamit.

Panguna nga mga pagbag-o:

  • Alang sa mga sistema nga nagpadagan sa Linux kernel 6.2+, suporta alang sa vxlan, geneve, gre, ug gretap protocol mappings gidugang, nga nagtugot sa yano nga mga ekspresyon sa pagsusi sa mga ulohan sa mga encapsulated packet. Pananglitan, aron masusi ang IP address sa header sa usa ka nested packet gikan sa VxLAN, mahimo nimong gamiton ang mga lagda (nga wala kinahanglana nga una nga i-de-encapsulate ang VxLAN header ug ihigot ang filter sa vxlan0 interface): ... udp dport 4789 vxlan ip protocol udp ... udp dport 4789 vxlan ip saddr 1.2.3.0. 24/4789 ... udp dport 1.2.3.4 vxlan ip saddr . vxlan ip dadr { 4.3.2.1 . XNUMX }
  • Suporta alang sa awtomatik nga paghiusa sa mga nahibilin human mapatuman ang partial nga pagtangtang sa usa ka set-list nga elemento, nga nagtugot kanimo sa pagtangtang sa usa ka elemento o bahin sa usa ka range gikan sa usa ka kasamtangan nga range (kaniadto, ang usa ka range mahimo lamang nga matangtang sa hingpit). Pananglitan, human matangtang ang elemento 25 gikan sa usa ka set list nga adunay mga han-ay nga 24-30 ug 40-50, ang listahan magpabilin nga 24, 26-30 ug 40-50. Ang mga pag-ayo nga gikinahanglan alang sa pag-automerging aron magtrabaho itanyag sa mga pagpagawas sa pagpadayon sa mga lig-on nga sanga sa 5.10+ nga kernel. # nft list ruleset table ip x {set y {typeof tcp dport flags interval auto-merge nga mga elemento = {24-30, 40-50}}} # nft delete element ip x y {25} # nft list ruleset table ip x {set y {typeof tcp dport flags interval auto-merge nga mga elemento = {24, 26-30, 40-50}}}
  • Gitugotan ang paggamit sa mga kontak ug mga han-ay kung magmapa sa address translation (NAT). table ip nat { chain prerouting { type nat hook prerouting priority dstnat; pagdawat sa palisiya; dnat sa ip daddr. tcp dport nga mapa {10.1.1.136. 80: 1.1.2.69. 1024, 10.1.1.10-10.1.1.20. 8888-8889: 1.1.2.69. 2048-2049 } padayon } }
  • Gidugang nga suporta alang sa "katapusan" nga ekspresyon, nga nagtugot kanimo nga mahibal-an ang oras sa katapusan nga paggamit sa usa ka elemento sa lagda o set nga lista. Ang bahin gisuportahan sugod sa Linux kernel 5.14. lamesa ip x {set y {typeof ip daddr. tcp dport gidak-on 65535 flags dinamiko,timeout katapusan nga timeout 1h} ​​chain z {type filter hook output priority filter; pagdawat sa palisiya; update @y { ip daddr . tcp dport } } } # nft list set ip x y table ip x {set y {typeof ip daddr. tcp dport nga gidak-on 65535 nga mga bandera nga dinamiko, timeout katapusan nga timeout 1h elemento = {172.217.17.14. 443 katapusang gigamit 1s591ms timeout 1h mo-expire 59m58s409ms, 172.67.69.19 . 443 katapusang gigamit 4s636ms timeout 1h mo-expire 59m55s364ms, 142.250.201.72 . 443 katapusang gigamit 4s748ms timeout 1h mo-expire 59m55s252ms, 172.67.70.134 . 443 katapusang gigamit 4s688ms timeout 1h mo-expire 59m55s312ms, 35.241.9.150 . 443 katapusang gigamit 5s204ms timeout 1h mo-expire 59m54s796ms, 138.201.122.174 . 443 katapusang gigamit 4s537ms timeout 1h mo-expire 59m55s463ms, 34.160.144.191 . 443 katapusang gigamit 5s205ms timeout 1h mo-expire 59m54s795ms, 130.211.23.194 . 443 katapusang gigamit 4s436ms timeout 1h mo-expire 59m55s564ms } } }
  • Gidugang ang abilidad sa paghubit sa mga quota sa mga set list. Pananglitan, aron matino ang quota sa trapiko alang sa matag target nga IP address, mahimo nimong itakda ang: table netdev x {set y {typeof ip daddr size 65535 quota over 10000 mbytes } chain y {type filter hook egress device "eth0" priority filter; pagdawat sa palisiya; ip daddr @y drop } } # nft add element inet x y { 8.8.8.8 } # ping -c 2 8.8.8.8 # nft list ruleset table netdev x {set y {type ipv4_addr size 65535 quota nga sobra sa 10000 mbytes nga mga elemento = {8.8.8.8. 10000 nga quota nga sobra sa 196 ka mbytes gigamit nga 0 bytes } } chain y { type filter hook egress device β€œethXNUMX” priority filter; pagdawat sa palisiya; ip daddr @y drop } }
  • Gitugotan ang paggamit sa mga constant sa set list. Pananglitan, kon gamiton ang destinasyon nga adres ug VLAN ID isip listahan nga yawe, direkta nimong ipiho ang numero sa VLAN (daddr. 123): table netdev t {set s {typeof ether saddr. vlan id size 2048 flags dynamic,timeout timeout 1m } chain c {type filter hook ingress device eth0 priority 0; pagdawat sa palisiya; ether type != 8021q update @s { ether daddr . 123 } counter } }
  • Gidugang ang usa ka bag-ong "pagguba" nga mando nga wala’y kondisyon nga pagtangtang sa mga butang (dili sama sa pagtangtang nga mando, dili kini makamugna og ENOENT kung sulayan ang pagtangtang sa usa ka nawala nga butang). Nagkinahanglan labing menos Linux kernel 6.3-rc sa pagtrabaho. gub-a ang lamesa ip filter

Source: opennet.ru

Idugang sa usa ka comment