nftables 1.0.2
Опубликован выпуск пакетного фильтра nftables 1.0.2, унифицирующего интерфейсы фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов (нацелен на замену iptables, ip6table, arptables и ebtables). Необходимые для работы выпуска nftables 1.0.2 изменения включены в состав ядра Linux 5.17-rc.

В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. На уровне ядра предоставляется лишь общий интерфейс, не зависящий от конкретного протокола и предоставляющий базовые функции извлечения данных из пакетов, выполнения операций с данными и управления потоком.

Непосредственно правила фильтрации и специфичные для протоколов обработчики компилируются в байткод в пространстве пользователя, после чего данный байткод загружается в ядро при помощи интерфейса Netlink и выполняется в ядре в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters). Подобный подход позволяет значительно сократить размер кода фильтрации, работающего на уровне ядра и вынести все функции разбора правил и логики работы с протоколами в пространство пользователя.
Основные новшества:
  • Добавлен режим оптимизации правил, включаемый при помощи новой опции "-o" ("--optimize"), которую можно комбинировать с опцией "--check" для проверки и оптимизации изменений в файле с набором правил без его фактической загрузки. Оптимизация позволяет объединять похожие правила, например, правила:
    
        meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accept
        meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 accept
        ip saddr 1.1.1.1 ip daddr 2.2.2.2 accept
        ip saddr 2.2.2.2 ip daddr 3.3.3.3 drop
    
    будут объединены в
    
        meta iifname . ip saddr . ip daddr { eth1 . 1.1.1.1 . 2.2.2.3, eth1 . 1.1.1.2 . 2.2.2.5 } accept
        ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : accept, 2.2.2.2 . 3.3.3.3 : drop }
    
    Пример использования:
    
    # nft -c -o -f ruleset.test
    Merging:
      ruleset.nft:16:3-37:  ip daddr 192.168.0.1 counter accept
      ruleset.nft:17:3-37:  ip daddr 192.168.0.2 counter accept
      ruleset.nft:18:3-37:  ip daddr 192.168.0.3 counter accept
    into:
      ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packets 0 bytes 0 accept
    
  • В set-списках реализована возможность указания ip- и tcp-опций, а также chunk-ов sctp:
    
            set s5 {
                typeof ip option ra value
                elements = { 1, 1024 }
         }
    
         set s7 {
                typeof sctp chunk init num-inbound-streams
                elements = { 1, 4 }
         }
    
         chain c5 {
                ip option ra value @s5 accept
         }
    
         chain c7 {
                sctp chunk init num-inbound-streams @s7 accept
         }
    
  • Добавлена поддержка TCP-опций fastopen, md5sig и mptcp.
  • Добавлена поддержка использования в сопоставлениях подтипа mp-tcp:
    
            tcp option mptcp subtype 1
    
  • Улучшен код фильтрации, работающий на стороне ядра.
  • Для flowtable реализована полная поддержка формата JSON.
  • Предоставлена возможность использования действия "reject" в операциях сопоставления Ethernet-кадров.
    
            ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 reject
    
Бульба
2022-04-10 05:39:21
Avatar
Не понимаю под какими веществами можно было сделать такой синтаксис
fet4
2022-04-10 16:52:32
Avatar
Если у тебя не хватает ума понять его это не значит что он плохой.
Ви маєте увійти під своїм обліковим записом

loading

=koF%w,g4Oi$k&P$9v"?b&A0hJ|LHn^n{:>8fnMS+[]]]]]ldo*бm7rݭbX~#g~١ĀυMD;hUC3_ ڴ9tt>|3x <| @~  9x3epboP+4t6+ڞFl%B,o XVml(|7ݷB+7r0++Dž6k@6 Еehʯzknph \Rc5ABGWE{s\YZy\%{u`XRcetiy %u56TPetUc̩(/uC#w=?)(c; Y:ͳKZE|6eVRC'!A zC~NYvgӶCŧv#L$tR{JTpLzБpږNyN )5;ϛN{: $~m x\K{4x0<R0Cu(|K$˔_EB{>]oB 7d1 <ጷc4/5B1+rp];^/1]dcaߦAPSőAzj+jVIm^Z%fE#jѨtR_֊2}ݱKkeKՊQZյjIUjXVaik%ѪY.T%^^WO.:bXf(VzemM׊U!2m. "j0kERWEsR1kFZ{QH bIrX4jWzZ]_3rSZuE ijJZiŚ^ղ^[׋՚RTV+F}\2-aдUXZFEjfJ+&B HuŭBq l*˥Vb#PmU ]P& p5"lM3n hV7vk-/mJ|:QsPgolU6v JFrh@\w:h|դ j%x'=vhm ((Lft'd}  [-U"Uˠ@;T u3t >bwP ~ ?~6sϠSU!d91lX"ކu &hR_F:&yv'5@<@ᵰB+*{^Ka\RNORV;JKUVqqS`%08찡2C :G =[{,H̞-˅F}jԸc};1-X~;48 f!zbV{W*R"N^^t;+ͥjHtpcV>e܆ cc`ÏZнiE5b$ > $8;֘e cmԓ'H/hB99a>mUۢ ;zA̅lz3or"\|v,ànNXzSp݃*fembQe]j^h537pA \]ԯ^_ZFGۮhbxkHsެޮUsWXګoۻ{|`=x{i˸#fCbO߬tJr `Kt c$-ZL-4\\ʕ-b D4lQ?R*վlMUwfİ(HAUeDF(#mIX6n{NJt TN=~ 4]p6X >4AC.?|'p cB?B",`p2C(X;csŶo`txYFvL_0I|ϤjWӡw~y']"0 ĕo3kM(Yu4й ZIe^Kc5[ LߣQwƛa(]?w#61؃k>/+2iߢ2x4G1h?`3D#}&cO{h14`*=DHM)S>R0E/)#˾Z/ =Wy+f=4nPD3 PR94aW8 XJ}@!fǬHnVVì.bbt>c"H6ŎE@7dn%L71'e5zŹf$J=H2hըAV@٦ Bö\eG 7:6 E2mj {N\qnl$9YHqQ  riAIII9vUh=͗TKd Q)Kp>b>ڄBF0 J$65#ВV7Xc٤ʆY<\р7%R:.:08[FOkT >k!uDP 0ܙC$E'a#'<qӜCy4KI;$=;:{XF +Rcnm2-.cK|!Z. !q6j\̫IQG|RoZxH931Wx9MJq' 3BdKy9[d7*>=&EpD?tdGq$*yq0|>jǍ ?zsiUD3h?$cT=2`<* 9KO At\{^XT&T/ KR𳋠T̔cƊP<xrr;y0 @la! Jvou?Hu4 $dz(D]w<|X(atc.'>8ېX2x@\ڿR܍ᇘt>#>Dzvu-}; wlܘ#?Pܙ|g=35_?`T/=>r}fv'IXs ZSM=P*-&|-/ڎRcċ9/pb%a)m+ CajJK4h[a* "Sr5fF&$ g.NjDDdi%󃟢er=ӳmx1<#f=ST(f@{aπGb *J["ȡx_1BX E93[vvFlk5Bao{~0~A OJ=$$5 0ʴ9Nϵ~13-P2 HRݴUvsN괊QBݘޫ^|>}OCˡ{5G 3I9SR{Ȕ7wsc92~$$xߓBL2oʰ#t" ЕrDx)0PV {gۯ\sv땭[[wB)^&!c+BwaT.whV %} a@Tm%*A`o(hr g{ X7PyR5̯x>xK9B-ˀkkiuܠ^@v(r/Ek3LpԸ¥m:$xmśERɃxAߤ>;dbcc}ЌK5[zx\OjFǟg)UqA NI43&xm邼3}SSv6"H`vv]ΐjݮkN cOe#ߩ0ڟC@yq9 ~-33CtHJ@ѓn=߱}e^wJ޹{/nqΕNqįM`X+7;{^P̓{oݻ7ݺz?Y-_zݻ;oިݹ{ _.YKOo߹;M~py1$Urr ߦJuEl}†R*.t(X6Zɗ97VOU :ijX=/F^Q-8> x4e^,VA eXW%[9#cf@y, `*%#zI9xGxP7Ԝaeet0-B*N`uVϷ˼y