{"id":106246,"date":"2022-12-23T15:36:42","date_gmt":"2022-12-23T13:36:42","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-paketnogo-filtra-nftables-1-0-6"},"modified":"2022-12-23T15:36:42","modified_gmt":"2022-12-23T13:36:42","slug":"vypusk-paketnogo-filtra-nftables-1-0-6","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-paketnogo-filtra-nftables-1-0-6","title":{"rendered":"Verze bal\u00edkov\u00e9ho filtru nftables 1.0.6","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Byl vyd\u00e1n bal\u00ed\u010dek filtru nftables 1.0.6, kter\u00fd sjednocuje rozhran\u00ed pro filtraci paket\u016f pro IPv4, IPv6, ARP a s\u00ed\u0165ov\u00e9 mosty (zam\u011b\u0159en\u00fd na nahrazen\u00ed iptables, ip6tables, arptables a ebtables). Sou\u010d\u00e1st\u00ed bal\u00ed\u010dku nftables jsou komponenty filtru paket\u016f b\u011b\u017e\u00edc\u00ed v u\u017eivatelsk\u00e9m prostoru, zat\u00edmco na \u00farovni j\u00e1dra zaji\u0161\u0165uje fungov\u00e1n\u00ed subsystem nf_tables, kter\u00fd je sou\u010d\u00e1st\u00ed j\u00e1dra Linuxu od verze 3.13. Na \u00farovni j\u00e1dra je poskytov\u00e1no pouze obecn\u00e9 rozhran\u00ed, kter\u00e9 nez\u00e1vis\u00ed na konkr\u00e9tn\u00edm protokolu a poskytuje z\u00e1kladn\u00ed funkce pro extrakci dat z paket\u016f, prov\u00e1d\u011bn\u00ed operac\u00ed s daty a \u0159\u00edzen\u00ed toku.    <\/p>\n<p>Samotn\u00e1 pravidla filtrov\u00e1n\u00ed a specifick\u00e9 zpracovatele protokol\u016f se kompiluj\u00ed do bytecode v u\u017eivatelsk\u00e9m prostoru, pot\u00e9 je tento bytecode na\u010dten do j\u00e1dra pomoc\u00ed rozhran\u00ed Netlink a vykon\u00e1v\u00e1 se v j\u00e1d\u0159e v specializovan\u00e9 <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/cs\/vps\/abuzoustojchivye-vps\/\"   title=\"virtu\u00e1ln\u00edm stroji\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4332\">virtu\u00e1ln\u00edm stroji<\/a>podob\u011b jako BPF (Berkeley Packet Filters). Tento p\u0159\u00edstup v\u00fdrazn\u011b sni\u017euje velikost k\u00f3du filtrov\u00e1n\u00ed, kter\u00fd funguje na \u00farovni j\u00e1dra a p\u0159esouv\u00e1 v\u0161echny funkce anal\u00fdzy pravidel a logiky pr\u00e1ce s protokoly do u\u017eivatelsk\u00e9ho prostoru.    <\/p>\n<p>Hlavn\u00ed zm\u011bny:  <\/p>\n<ul>\n<li class=\"l\"> V optimaliz\u00e1toru pravidel, volan\u00e9m p\u0159i zad\u00e1n\u00ed volby &#171;-o\/&#8212;optimize&#187;, je zavedeno automatick\u00e9 balen\u00ed pravidel prost\u0159ednictv\u00edm jejich slou\u010den\u00ed a p\u0159eveden\u00ed na seznamy map a set. Nap\u0159\u00edklad pravidla:         # cat ruleset.nft       table ip x {              chain y {                     type filter hook input priority filter; policy drop;                     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.4 accept                     meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.3.0\/24 accept                     meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.4.0-2.2.4.10   accept                     meta iifname eth2 ip saddr 1.1.1.3 ip daddr 2.2.2.5 accept              }       }    po proveden\u00ed &#171;nft -o -c -f ruleset.nft&#187; budou p\u0159evedena n\u00e1sledovn\u011b:         ruleset.nft:4:17-74:                 meta iifname eth1 ip saddr 1.1.1.1 ip   daddr 2.2.2.3 accept       ruleset.nft:5:17-74:                 meta iifname eth1 ip saddr 1.1.1.2 ip   daddr 2.2.2.4 accept       ruleset.nft:6:17-77:                 meta iifname eth1 ip saddr 1.1.1.2 ip   daddr 2.2.3.0\/24 accept       ruleset.nft:7:17-83:                 meta iifname eth1 ip saddr 1.1.1.2 ip   daddr 2.2.4.0-2.2.4.10 accept       ruleset.nft:8:17-74:                 meta iifname eth2 ip saddr 1.1.1.3 ip   daddr 2.2.2.5 accept       do:               iifname . ip saddr . ip daddr { eth1 . 1.1.1.1 . 2.2.2.3, eth1 .   1.1.1.2 . 2.2.2.4, eth1 . 1.1.1.2 . 2.2.3.0\/24, eth1 . 1.1.1.2 .   2.2.4.0-2.2.4.10, eth2 . 1.1.1.3 . 2.2.2.5 } accept\n<li class=\"l\"> Optimaliz\u00e1tor tak\u00e9 m\u016f\u017ee p\u0159ev\u00e1d\u011bt do kompaktn\u011bj\u0161\u00ed formy pravidla, ve kter\u00fdch ji\u017e jsou pou\u017eity jednoduch\u00e9 seznamy set, nap\u0159\u00edklad pravidla:         # cat ruleset.nft       table ip filter {              chain input {                     type filter hook input priority filter; policy drop;                     iifname &#171;lo&#187; accept                     ct state established,related accept comment &#171;V provozu, kter\u00fd vych\u00e1z\u00ed, d\u016fv\u011b\u0159ujeme&#187;                     iifname &#171;enp0s31f6&#187; ip saddr { 209.115.181.102,   216.197.228.230 } ip daddr 10.0.0.149 udp sport 123 udp dport 32768-65535 accept                     iifname &#171;enp0s31f6&#187; ip saddr { 64.59.144.17, 64.59.150.133 }   ip daddr 10.0.0.149 udp sport 53 udp dport 32768-65535 accept             }       }    po proveden\u00ed &#171;nft -o -c -f ruleset.nft&#187; budou zabalena n\u00e1sleduj\u00edc\u00edm zp\u016fsobem:         ruleset.nft:6:22-149:                      iifname &#171;enp0s31f6&#187; ip saddr {   209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 udp sport 123 udp dport   32768-65535 accept       ruleset.nft:7:22-143:                      iifname &#171;enp0s31f6&#187; ip saddr {   64.59.144.17, 64.59.150.133 } ip daddr 10.0.0.149 udp sport 53 udp dport   32768-65535 accept       do:                  iifname . ip saddr . ip daddr . udp sport . udp dport {   enp0s31f6 . 209.115.181.102 . 10.0.0.149 . 123 . 32768-65535, enp0s31f6 .   216.197.228.230 . 10.0.0.149 . 123 . 32768-65535, enp0s31f6 . 64.59.144.17 .   10.0.0.149 . 53 . 32768-65535, enp0s31f6 . 64.59.150.133 . 10.0.0.149 . 53 .   32768-65535 } accept\n<li class=\"l\"> Byl vy\u0159e\u0161en probl\u00e9m s generov\u00e1n\u00edm bajtk\u00f3du pro slou\u010den\u00ed interval\u016f, ve kter\u00fdch jsou pou\u017eity typy s r\u016fzn\u00fdm po\u0159ad\u00edm bajt\u016f, nap\u0159\u00edklad IPv4 (s\u00ed\u0165ov\u00e9 po\u0159ad\u00ed bajt\u016f) a meta mark (syst\u00e9mov\u00e9 po\u0159ad\u00ed bajt\u016f).        table ip x {             map w {                   typeof ip saddr . meta mark : verdict                   flags interval                   counter                   elements = {                           127.0.0.1-127.0.0.4 . 0x123434-0xb00122 : accept,                           192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff :   accept,                   }            }            chain k {                   type filter hook input priority filter; policy drop;                   ip saddr . meta mark vmap @w            }      }\n<li class=\"l\"> Byla zavedena shoda vz\u00e1cn\u00fdch protokol\u016f p\u0159i pou\u017eit\u00ed raw-v\u00fdraz\u016f, nap\u0159\u00edklad:         meta l4proto 91 @th,400,16 0x0 accept\n<li class=\"l\"> Byly vy\u0159e\u0161eny probl\u00e9my s vkl\u00e1d\u00e1n\u00edm pravidel s intervaly:         insert rule x y tcp sport { 3478-3497, 16384-16387 } counter accept\n<li class=\"l\"> Bylo vylep\u0161eno API JSON, kter\u00e9 nyn\u00ed podporuje v\u00fdrazy v set- a map-seznamech.\n<li class=\"l\"> V roz\u0161\u00ed\u0159en\u00edch k python knihovn\u011b nftables je povoleno na\u010d\u00edt\u00e1n\u00ed sad pravidel pro zpracov\u00e1n\u00ed v re\u017eimu kontroly (&#171;-c&#187;) a byla p\u0159id\u00e1na podpora pro extern\u00ed definici prom\u011bnn\u00fdch.\n<li class=\"l\"> V prvc\u00edch set-seznam\u016f bylo umo\u017en\u011bno p\u0159id\u00e1v\u00e1n\u00ed koment\u00e1\u0159\u016f.\n<li class=\"l\"> V r\u00e1mci byte ratelimit byla povolena nula jako hodnota.    <\/ul>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=58378\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 nftables 1.0.6, \u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f IPv4, IPv6, ARP \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043c\u043e\u0441\u0442\u043e\u0432 (\u043d\u0430\u0446\u0435\u043b\u0435\u043d \u043d\u0430 \u0437\u0430\u043c\u0435\u043d\u0443 iptables, ip6table, arptables \u0438 ebtables). \u0412 \u043f\u0430\u043a\u0435\u0442 nftables \u0432\u0445\u043e\u0434\u044f\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u044f\u0434\u0440\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 nf_tables, \u0432\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u044f\u0434\u0440\u0430 Linux \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u044b\u043f\u0443\u0441\u043a\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-106246","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 nftables 1.0.6, \u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f IPv4, IPv6, ARP \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043c\u043e\u0441\u0442\u043e\u0432 (\u043d\u0430\u0446\u0435\u043b\u0435\u043d \u043d\u0430 \u0437\u0430\u043c\u0435\u043d\u0443 iptables, ip6table, arptables \u0438 ebtables).\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-paketnogo-filtra-nftables-1-0-6\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 nftables 1.0.6 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 nftables 1.0.6, \u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f IPv4, IPv6, ARP \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043c\u043e\u0441\u0442\u043e\u0432 (\u043d\u0430\u0446\u0435\u043b\u0435\u043d \u043d\u0430 \u0437\u0430\u043c\u0435\u043d\u0443 iptables, ip6table, arptables \u0438 ebtables).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-paketnogo-filtra-nftables-1-0-6\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-12-23T13:36:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-12-23T13:36:42+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Vyd\u00e1n\u00ed bal\u00edkov\u00e9ho filtru nftables 1.0.6 | ProHoster","description":"Bylo vyd\u00e1no vyd\u00e1n\u00ed paketov\u00e9ho filtr pro nftables 1.0.6, kter\u00e9 unifikuje rozhran\u00ed filtrov\u00e1n\u00ed paket\u016f pro IPv4, IPv6, ARP a s\u00ed\u0165ov\u00e9 mosty (c\u00edl\u00ed na nahrazen\u00ed iptables, ip6tables, arptables a ebtables).","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-paketnogo-filtra-nftables-1-0-6","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 nftables 1.0.6 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 nftables 1.0.6, \u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f IPv4, IPv6, ARP \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043c\u043e\u0441\u0442\u043e\u0432 (\u043d\u0430\u0446\u0435\u043b\u0435\u043d \u043d\u0430 \u0437\u0430\u043c\u0435\u043d\u0443 iptables, ip6table, arptables \u0438 ebtables).","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-paketnogo-filtra-nftables-1-0-6","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2022-12-23T13:36:42+00:00","article:modified_time":"2022-12-23T13:36:42+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/106246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=106246"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/106246\/revisions"}],"predecessor-version":[{"id":164207,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/106246\/revisions\/164207"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=106246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=106246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=106246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}