{"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\/sk\/blog\/news\/vypusk-paketnogo-filtra-nftables-1-0-6","title":{"rendered":"Vydanie paketov\u00e9ho filtra nftables 1.0.6","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bol uvo\u013enen\u00fd bal\u00edk filtrov nftables 1.0.6, ktor\u00fd unifikuje rozhrania pre filtrovanie paketov pre IPv4, IPv6, ARP a sie\u0165ov\u00e9 mosty (s cie\u013eom nahradi\u0165 iptables, ip6tables, arptables a ebtables). Bal\u00edk nftables obsahuje komponenty filtrovacieho syst\u00e9mu, ktor\u00e9 funguj\u00fa v u\u017e\u00edvate\u013eskom priestore, zatia\u013e \u010do na \u00farovni jadra zabezpe\u010duje pr\u00e1cu subsyst\u00e9m nf_tables, ktor\u00fd je s\u00fa\u010das\u0165ou jadra Linux od verzie 3.13. Na \u00farovni jadra sa poskytuje len v\u0161eobecn\u00e9 rozhranie, ktor\u00e9 nez\u00e1vis\u00ed od konkr\u00e9tneho protokolu a poskytuje z\u00e1kladn\u00e9 funkcie na extrahovanie \u00fadajov z paketov, vykon\u00e1vanie oper\u00e1ci\u00ed s \u00fadajmi a riadenie toku.    <\/p>\n<p>Pravidl\u00e1 filtr\u00e1cie a \u0161pecifick\u00e9 spracovate\u013esk\u00e9 moduly pre protokoly s\u00fa kompilovan\u00e9 do bajtk\u00f3du v u\u017e\u00edvate\u013eskom priestore, po \u010dom je tento bajtk\u00f3d na\u010d\u00edtan\u00fd do jadra pomocou rozhrania Netlink a vykon\u00e1va sa v jadre na \u0161peci\u00e1lnom <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sk\/vps\/abuzoustojchivye-vps\/\"   title=\"virtu\u00e1lnom stroji\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4332\">virtu\u00e1lnom stroji<\/a>, pripom\u00ednaj\u00facom BPF (Berkeley Packet Filters). Tak\u00fdto pr\u00edstup umo\u017e\u0148uje v\u00fdznamne zn\u00ed\u017ei\u0165 ve\u013ekos\u0165 k\u00f3du filtr\u00e1cie, ktor\u00fd funguje na \u00farovni jadra a prenies\u0165 v\u0161etky funkcie parsovania pravidiel a logiky pr\u00e1ce s protokolmi do u\u017e\u00edvate\u013esk\u00e9ho priestoru.    <\/p>\n<p>Hlavn\u00e9 zmeny:  <\/p>\n<ul>\n<li class=\"l\"> V optimaliz\u00e1tore pravidiel, ktor\u00fd sa aktivuje pri pou\u017eit\u00ed mo\u017enosti &#171;-o\/&#8212;optimize&#187;, bola implementovan\u00e1 automatick\u00e1 kompresia pravidiel ich kombinovan\u00edm a konvertovan\u00edm na mapov\u00e9 a setov\u00e9 zoznamy. Napr\u00edklad pravidl\u00e1         # 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 vykonan\u00ed &#171;nft -o -c -f ruleset.nft&#187; bud\u00fa transformovan\u00e9 nasledovne:         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 m\u00f4\u017ee tie\u017e prev\u00e1dza\u0165 pravidl\u00e1 na kompaktnej\u0161\u00ed form\u00e1t, v ktorom u\u017e s\u00fa pou\u017eit\u00e9 jednoduch\u00e9 setov\u00e9 zoznamy, ako napr\u00edklad pravidl\u00e1:         # 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;Na prev\u00e1dzku, ktor\u00fa vytv\u00e1rame, ver\u00edme&#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 vykonan\u00ed &#171;nft -o -c -f ruleset.nft&#187; bud\u00fa zabalen\u00e9 nasledovne:         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\"> Rie\u0161en\u00fd probl\u00e9m s generovan\u00edm bajtk\u00f3du na zl\u00fa\u010denie intervalov, v ktor\u00fdch sa pou\u017e\u00edvaj\u00fa typy s r\u00f4znym poraden\u00edm bajtov, napr\u00edklad IPv4 (sie\u0165ov\u00e9 poradie bajtov) a meta mark (syst\u00e9mov\u00e9 poradie bajtov).        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\"> Zaveden\u00e9 porovn\u00e1vanie zriedkav\u00fdch protokolov pri pou\u017eit\u00ed raw-v\u00fdrazov, napr\u00edklad:         meta l4proto 91 @th,400,16 0x0 accept\n<li class=\"l\"> Rie\u0161en\u00e9 probl\u00e9my so zap\u00ednan\u00edm pravidiel s intervalmi:         insert rule x y tcp sport { 3478-3497, 16384-16387 } counter accept\n<li class=\"l\"> Zlep\u0161en\u00e9 API JSON, ktor\u00e9 pridalo podporu pre v\u00fdrazy v set- a map-zoznamoch.\n<li class=\"l\"> V roz\u0161\u00edreniach k python kni\u017enici nftables je povolen\u00e9 na\u010d\u00edtanie s\u00faborov pravidiel na spracovanie v re\u017eime kontroly (&#171;-c&#187;) a pridala sa podpora pre extern\u00e9 defin\u00edcie premenn\u00fdch.\n<li class=\"l\"> V prvkoch set-zoznamov povolen\u00e9 prid\u00e1vanie koment\u00e1rov.\n<li class=\"l\"> V byte ratelimit povolen\u00e9 uvedenie nulovej hodnoty.    <\/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.4 - 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\/sk\/blog\/news\/vypusk-paketnogo-filtra-nftables-1-0-6\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\/sk\/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\udd47Vydanie paketov\u00e9ho filtra nftables 1.0.6 | ProHoster","description":"Zverejnen\u00e9 vydanie paketov\u00e9ho filtr\u00e1cie nftables 1.0.6, ktor\u00e9 zjednocuje filtre paketov pre IPv4, IPv6, ARP a sie\u0165ov\u00e9 mosty (mieri na n\u00e1hradu iptables, ip6tables, arptables a ebtables).","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/vypusk-paketnogo-filtra-nftables-1-0-6","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/106246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=106246"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/106246\/revisions"}],"predecessor-version":[{"id":164207,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/106246\/revisions\/164207"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=106246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=106246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=106246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}