Нусхаи филтри бастаи nftables 1.0.6

Нашри филтри пакети nftables 1.0.6 нашр шуд, ки интерфейсҳои филтркунии бастаҳоро барои IPv4, IPv6, ARP ва пулҳои шабакавӣ муттаҳид мекунад (ба ивази iptables, ip6table, arptables ва ebtables). Бастаи nftables ҷузъҳои филтри пакети фазои корбарро дар бар мегирад, дар ҳоле ки кори сатҳи ядро ​​аз ҷониби зерсистемаи nf_tables таъмин карда мешавад, ки аз замони нашри 3.13 қисми ядрои Linux мебошад. Сатҳи ядро ​​​​танҳо интерфейси мустақили протоколро таъмин мекунад, ки вазифаҳои асосиро барои истихроҷи додаҳо аз пакетҳо, иҷрои амалиёти додаҳо ва назорати ҷараён таъмин мекунад.

Қоидаҳои филтркунӣ ва коркардкунандагони мушаххаси протокол дар фазои корбар ба байткод тартиб дода мешаванд, ки баъд аз он ин байт код бо истифода аз интерфейси Netlink ба ядро ​​бор карда мешавад ва дар ядро ​​дар мошини махсуси виртуалӣ, ки BPF-ро (Беркли Пакет Филтрҳо) ба ёд меорад, иҷро мешавад. Ин равиш ба шумо имкон медиҳад, ки андозаи коди филтркуниро, ки дар сатҳи ядро ​​кор мекунад, хеле кам кунед ва тамоми функсияҳои қоидаҳои таҳлил ва мантиқи кор бо протоколҳоро ба фазои корбар интиқол диҳед.

Тағйироти асосӣ:

  • Оптимизатори қоидаҳо, ки ҳангоми муайян кардани опсияи "-o/—optimize" даъват карда мешавад, дорои бастабандии автоматии қоидаҳо тавассути якҷоя кардани онҳо ва табдил додани онҳо ба харитаҳо ва рӯйхатҳо мебошад. Масалан, қоидаҳо # cat ruleset.nft table ip x { chain y { type филтр қалмоқ филтри афзалияти вуруд; паст кардани сиёсат; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 қабул кардани мета iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 қабул кардани meta iifname eth1 ip saddr 1.1.1.2 ip daddr ipname 2.2.3.0. .24 ip daddr 1-1.1.1.2 қабули meta iifname eth2.2.4.0 ip saddr 2.2.4.10 ip daddr 2 қабул } } пас аз иҷрои "nft -o -c -f ruleset.nft" ба таври зерин табдил дода мешавад: ruleset .nft:1.1.1.3:2.2.2.5-4: meta iifname eth17 ip saddr 74 ip daddr 1 қабули ruleset.nft:1.1.1.1:2.2.2.3-5: meta iifname eth17 ip saddr 74 ip dadft 1 қабули қоидаҳо.n : 1.1.1.2:2.2.2.4-6: meta iifname eth17 ip saddr 77 ip daddr 1/1.1.1.2 қабули ruleset.nft:2.2.3.0:24-7: мета iifname eth17 ip saddr 83 ip daddr 1-1.1.1.2. ruleset.nft:2.2.4.0:2.2.4.10-8-ро қабул кунед: meta iifname eth17 ip saddr 74 ip daddr 2 қабул кунед: iifname. ip саддр. ip daddr {eth1.1.1.3. 2.2.2.5. 1, eth1.1.1.1. 2.2.2.3. 1, eth1.1.1.2. 2.2.2.4. 1/1.1.1.2, eth2.2.3.0. 24. 1-1.1.1.2, eth2.2.4.0. 2.2.4.10. 2 } қабул кунед
  • Оптимизатор инчунин метавонад қоидаҳоеро, ки аллакай рӯйхати маҷмӯи оддиро истифода мебаранд, ба шакли паймоне табдил диҳад, масалан қоидаҳо: # cat ruleset.nft table ip filter { chain input { type filter hook филтри афзалияти вуруд; паст кардани сиёсат; iifname "lo" қабул ct ҳолати таъсис, алоқаманд қабул шарҳ "Дар трафики мо сарчашма, мо боварӣ дорем" iifname "enp0s31f6" ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149ud sportport123ud қабул iifname "enp32768s65535f0" ip saddr {31, 6 } ip daddr 64.59.144.17 udp sport 64.59.150.133 udp dport 10.0.0.149-53 қабул } } пас аз қоидаҳои бастаи -ffftc риоя хоҳад шуд -ffftc. : ruleset.nft: 32768: 65535-6: iifname "enp22s149f0" IP saddr {31, 6 } IP daddr 209.115.181.102 udp варзиш 216.197.228.230 udp қоидаҳои қабул: udp 10.0.0.149: udp. - 123: iifname "enp32768s65535f7" ip saddr {22, 143 } ip daddr 0 UDP варзиш 31 UDP dport 6-64.59.144.17 қабул ба: iifname. ip саддр. ип падар. udp варзиш. udp dport {enp64.59.150.133s10.0.0.149f53. 32768. 65535. 0. 31-6, enp209.115.181.102s10.0.0.149f123. 32768. 65535. 0. 31-6, enp216.197.228.230s10.0.0.149f123. 32768. 65535. 0. 31-6, enp64.59.144.17s10.0.0.149f53. 32768. 65535. 0. 31-6 } кабул кунед
  • Мушкилоти тавлиди байткод барои муттаҳид кардани фосилаҳое, ки намудҳоро бо тартиби байтҳои гуногун истифода мебаранд, ба монанди IPv4 (тартиби байтҳои шабака) ва мета тамға (тартиби байтҳои система) ҳал карда шуд. ҷадвали ip x {харитаи w { typeof ip saddr. тамғаи мета: ҳукми парчамҳои фосилаи зидди унсурҳои = {127.0.0.1-127.0.0.4. 0x123434-0xb00122: қабул, 192.168.0.10-192.168.1.20. 0x0000aa00-0x0000aaff: қабул, } } занҷири k { навъи филтр қалмоқе филтри афзалияти вуруди; паст кардани сиёсат; ip саддр. meta mark vmap @w } }
  • Муқоисаи беҳтаршудаи протоколҳои нодир ҳангоми истифодаи ифодаҳои хом, масалан: meta l4proto 91 @th,400,16 0x0 қабул
  • Мушкилот бо фаъолсозии қоидаҳо дар фосилаҳо ҳал карда шуданд: insert rule xy tcp sport { 3478-3497, 16384-16387 } counter қабул
  • API JSON такмил дода шудааст, то дастгирии ифодаҳоро дар рӯйхати маҷмӯаҳо ва харитаҳо дар бар гирад.
  • Васеъкуниҳо ба китобхонаи python nftables имкон медиҳанд, ки маҷмӯи қоидаҳо барои коркард дар ҳолати тасдиқ ("-c") бор карда шаванд ва барои таърифи берунии тағирёбандаҳо дастгирӣ илова карда шаванд.
  • Илова кардани шарҳҳо дар унсурҳои рӯйхати маҷмӯи иҷозат дода мешавад.
  • Маҳдудияти суръати байт имкон медиҳад, ки арзиши сифр муайян карда шавад.

Манбаъ: opennet.ru

Илова Эзоҳ