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

Нашри маҷмӯи филтрҳои nftables 0.9.9 нашр шуд, ки интерфейсҳои филтркунии бастаҳоро барои IPv4, IPv6, ARP ва пулҳои шабакавӣ муттаҳид мекунад (барои иваз кардани iptables, ip6table, arptables ва ebtables). Ҳамзамон, нашри китобхонаи ҳамроҳи libnftnl 1.2.0 нашр шуд, ки API-и сатҳи пастро барои ҳамкорӣ бо зерсистемаи nf_tables таъмин мекунад. Тағйироте, ки барои версияи nftables 0.9.9 барои кор заруранд, ба ядрои Linux 5.13-rc1 дохил карда шудаанд.

Бастаи nftables ҷузъҳои филтри бастаҳоро дар бар мегирад, ки дар фазои корбар кор мекунанд, дар ҳоле ки кори сатҳи ядро ​​аз ҷониби зерсистемаи nf_tables таъмин карда мешавад, ки аз замони нашри 3.13 қисми ядрои Linux мебошад. Сатҳи ядро ​​​​танҳо интерфейси мустақили протоколро таъмин мекунад, ки вазифаҳои асосиро барои истихроҷи додаҳо аз пакетҳо, иҷрои амалиёти додаҳо ва назорати ҷараён таъмин мекунад.

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

Навовариҳои асосӣ:

  • Қобилияти интиқол додани коркарди ҷадвали ҷараён ба тарафи адаптери шабакавӣ амалӣ карда шуд, ки бо истифода аз парчами "борфарорӣ" фаъол карда шудааст. Flowtable як механизми оптимизатсияи роҳи масири маҷмӯа мебошад, ки дар он гузариши пурраи ҳамаи занҷирҳои коркарди қоидаҳо танҳо ба бастаи аввал татбиқ карда мешавад ва ҳамаи бастаҳои дигари ҷараён мустақиман интиқол дода мешаванд. table ip global { flowtable f { филтри афзалиятноки вуруди қалмоқ + 1 дастгоҳ = { lan3, lan0, wan } боркунии парчамҳо } занҷир ба пеш { навъи филтр қалмоқ ба пеш филтри афзалиятнок; қабули сиёсат; ip protocol { tcp, udp } flow add @f } занҷири пост { навъи nat hook филтри авлавияти баъди масир; қабули сиёсат; oifname "wan" маскарад } }
  • Дастгирии иловашуда барои пайваст кардани парчами соҳиб ба ҷадвал барои таъмини истифодаи истисноии ҷадвал тавассути раванд. Вақте ки раванд қатъ мешавад, ҷадвали бо он алоқаманд ба таври худкор нест карда мешавад. Маълумот дар бораи раванд дар қоидаҳои партов дар шакли шарҳ нишон дода мешавад: table ip x { # progname nft flags owner chain y { type filter hook input priority filter; қабули сиёсат; бастаҳои муқобил 1 байт 309 } }
  • Дастгирии иловашуда барои мушаххасоти IEEE 802.1ad (stacking VLAN ё QinQ), ки воситаи иваз кардани тегҳои сершумори VLAN-ро ба чаҳорчӯбаи ягонаи Ethernet муайян мекунад. Масалан, барои санҷидани намуди чаҳорчӯбаи берунии Ethernet 8021ad ва vlan id=342, шумо метавонед сохти ... ether type 802.1ad vlan id 342-ро барои санҷидани намуди берунии чаҳорчӯбаи Ethernet 8021ad/vlan id=1, дар дохили 802.1 истифода баред. q/vlan id=2 ва бастабандии минбаъдаи IP: ... навъи ether 8021ad vlan id 1 vlan навъи 8021q vlan id 2 vlan навъи ip counter
  • Дастгирии иловашуда барои идоракунии захираҳо бо истифода аз гурӯҳҳои ягонаи иерархия v2. Тафовути калидӣ байни cgroups v2 ва v1 ин истифодаи иерархияи умумии гурӯҳҳо барои ҳама намудҳои захираҳо аст, ба ҷои иерархияи алоҳида барои тақсимоти захираҳои CPU, танзими истеъмоли хотира ва барои вуруд / баромад. Масалан, барои санҷидани он ки оё аҷдоди розетка дар сатҳи якуми cgroupv2 ба ниқоби "system.slice" мувофиқат мекунад, шумо метавонед аз сохти зерин истифода баред: ... socket cgroupv2 level 1 "system.slice"
  • Имконияти тафтиши ҷузъҳои бастаҳои SCTP илова карда шуд (функсияе, ки барои ин зарур аст, дар ядрои Linux 5.14 пайдо мешавад). Масалан, барои санҷидани он, ки оё пакет дорои порча бо навъи 'data' ва майдони 'type': ... sctp chunk data мавҷуд аст ... sctp chunk data type 0
  • Иҷрои амалиёти боркунии қоида бо истифода аз байрақи "-f" тақрибан ду маротиба суръат гирифт. Истехсоли руйхати коидахо низ тезонда шуд.
  • Шакли паймоне барои санҷидани гузоштани битҳои парчам пешбинӣ шудааст. Масалан, барои санҷидани он, ки битҳои ҳолати snat ва dnat муқаррар нашудаанд, шумо метавонед муайян кунед: ... ct status ! snat,dnat барои санҷидани он, ки бити syn дар битниқоби syn,ack насб шудааст: ... tcp flags syn / syn,ack барои санҷидани он, ки битҳои fin ва аввал дар ниқоби бит танзим нашудаанд, syn,ack,fin,rst: ... парчамҳои tcp! = fin,rst / syn,ack,fin,rst
  • Ба калимаи калидии "ҳукм" дар таърифҳои маҷмӯи/харитаи навъи иҷозат иҷозат диҳед: map xm { typeof iifname илова кунед. протоколи ip th dport: ҳукм ;}

Манбаъ: opennet.ru

Илова Эзоҳ