{"id":76505,"date":"2020-04-02T19:42:00","date_gmt":"2020-04-02T17:42:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-paketnogo-filtra-nftables-0-9-4"},"modified":"2020-04-02T19:42:00","modified_gmt":"2020-04-02T17:42:00","slug":"vypusk-paketnogo-filtra-nftables-0-9-4","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/vypusk-paketnogo-filtra-nftables-0-9-4","title":{"rendered":"Publication du filtre de paquets nftables 0.9.4","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/marc.info\/?l=netfilter&#038;m=158575148505527&#038;w=2\">Publi\u00e9<\/a><\/noindex> publication du filtre de paquets <noindex><a rel=\"nofollow\" href=\"https:\/\/netfilter.org\/projects\/nftables\/\">nftables 0.9.4<\/a><\/noindex>, se d\u00e9veloppant comme un remplacement d'iptables, ip6tables, arptables et ebtables gr\u00e2ce \u00e0 l'unification des interfaces de filtrage de paquets pour IPv4, IPv6, ARP et les ponts r\u00e9seau. Le paquet nftables comprend des composants de filtrage de paquets fonctionnant en espace utilisateur, tandis qu'au niveau du noyau, le fonctionnement est assur\u00e9 par le sous-syst\u00e8me nf_tables, int\u00e9gr\u00e9 dans le noyau Linux depuis la version 3.13. Les modifications n\u00e9cessaires au fonctionnement de la version nftables 0.9.4 sont incluses dans la future branche du noyau. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52632\">Linux 5.6<\/a><\/noindex>.<\/p>\n<p>Au niveau du noyau, un seul interface g\u00e9n\u00e9ral est fourni, sans d\u00e9pendance \u00e0 un protocole sp\u00e9cifique, offrant des fonctions de base pour extraire des donn\u00e9es des paquets, effectuer des op\u00e9rations sur les donn\u00e9es et g\u00e9rer le flux. Les r\u00e8gles de filtrage sp\u00e9cifiques et les gestionnaires de protocoles sont compil\u00e9s en bytecode en espace utilisateur, apr\u00e8s quoi ce bytecode est charg\u00e9 dans le noyau via l'interface Netlink et ex\u00e9cut\u00e9 dans le noyau dans une machine virtuelle sp\u00e9ciale, ressemblant \u00e0 BPF (Berkeley Packet Filters). Cette approche permet de r\u00e9duire consid\u00e9rablement la taille du code de filtrage fonctionnant au niveau du noyau et de d\u00e9porter toutes les fonctions d'analyse des r\u00e8gles et de logique de traitement des protocoles en espace utilisateur.<\/p>\n<p>Les principales nouveaut\u00e9s :\n<\/p>\n<ul>\n<li class=\"l\"> Prise en charge des plages dans les jointures (concat\u00e9nation, associations d'adresses et de ports facilitant la correspondance). Par exemple, pour un ensemble \u00ab whitelist \u00bb, dont les \u00e9l\u00e9ments sont une concat\u00e9nation, sp\u00e9cifier le drapeau \u00ab interval \u00bb indiquera que l'ensemble peut inclure des plages dans la jointure (pour la jointure \u00ab ipv4_addr . ipv4_addr . inet_service \u00bb, il \u00e9tait auparavant possible de lister des correspondances exactes telles que \u00ab 192.168.10.35 . 192.68.11.123 . 80 \u00bb, alors qu'il est maintenant possible de sp\u00e9cifier des groupes d'adresses \u00ab 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125 . 80 \u00bb):\n<p>    table ip foo {<br \/>\n           set whitelist {<br \/>\n                   type ipv4_addr . ipv4_addr . inet_service<br \/>\n                   flags interval<br \/>\n                   elements = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125 . 80 }<br \/>\n           }<\/p>\n<p>           chain bar {<br \/>\n                   type filter hook prerouting priority filter; policy drop;<br \/>\n                   ip saddr . ip daddr . tcp dport @whitelist accept<br \/>\n           }<br \/>\n    }<\/p>\n<li class=\"l\"> Dans les ensembles et les listes de mappage, il est d\u00e9sormais possible d'utiliser la directive \u00ab typeof \u00bb, qui d\u00e9finit le format de l'\u00e9l\u00e9ment lors de la correspondance.<br \/>\n Par exemple :<\/p>\n<p>     table ip foo {<br \/>\n            set whitelist {<br \/>\n                    typeof ip saddr<br \/>\n                    elements = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }<br \/>\n            }<\/p>\n<p>            chain bar {<br \/>\n                    type filter hook prerouting priority filter; policy drop;<br \/>\n                    ip daddr @whitelist accept<br \/>\n            }<br \/>\n     }<\/p>\n<p>     table ip foo {<br \/>\n            map addr2mark {<br \/>\n                typeof ip saddr : meta mark<br \/>\n                elements = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }<br \/>\n            }<br \/>\n     }<\/p>\n<li class=\"l\"> Ajout de la possibilit\u00e9 d'utiliser des connexions dans les liaisons NAT, ce qui permet de sp\u00e9cifier l'adresse et le port lors de la d\u00e9finition des transformations NAT bas\u00e9es sur des listes de mappage ou des ensembles nomm\u00e9s :\n<p>      nft add rule ip nat pre dnat ip addr . port to ip saddr map { 1.1.1.1 : 2.2.2.2 . 30 }<\/p>\n<p>      nft add map ip nat destinations { type ipv4_addr . inet_service : ipv4_addr . inet_service \\; }<br \/>\n      nft add rule ip nat pre dnat ip addr . port to ip saddr . tcp dport map @destinations<\/p>\n<li class=\"l\"> Prise en charge de l'acc\u00e9l\u00e9ration mat\u00e9rielle en d\u00e9chargeant certaines op\u00e9rations de filtrage sur la carte r\u00e9seau. L'acc\u00e9l\u00e9ration est activ\u00e9e via l'utilitaire ethtool (\u00ab ethtool -K eth0 hw-tc-offload on \u00bb), puis activ\u00e9e dans nftables pour la cha\u00eene principale \u00e0 l'aide du drapeau \u00ab offload \u00bb. Lors de l'utilisation du noyau Linux 5.6, l'acc\u00e9l\u00e9ration mat\u00e9rielle est prise en charge pour la correspondance des champs d'en-t\u00eate et la v\u00e9rification de l'interface entrante en combinaison avec la r\u00e9ception, le rejet, la duplication (dup) et le redirigement (fwd) des paquets. Dans l'exemple ci-dessous, les op\u00e9rations de rejet des paquets en provenance de l'adresse 192.168.30.20 sont effectu\u00e9es au niveau de la carte r\u00e9seau, sans transmettre les paquets au noyau:\n<p>     # cat file.nft<br \/>\n     table netdev x {<br \/>\n            cha\u00eene y {<br \/>\n                type filter hook ingress device eth0 priority 10; flags offload;<br \/>\n                ip saddr 192.168.30.20 drop<br \/>\n            }<br \/>\n     }<br \/>\n     # nft -f file.nft<\/p>\n<li class=\"l\"> Am\u00e9lioration de l'information sur l'emplacement de l'erreur dans les r\u00e8gles.\n<p>     # nft delete rule ip y z handle 7<br \/>\n     Erreur : Impossible de traiter la r\u00e8gle : Aucun fichier ou r\u00e9pertoire de ce type<br \/>\n     delete rule ip y z handle 7<br \/>\n                    ^<\/p>\n<p>     # nft delete rule ip x x handle 7<br \/>\n     Erreur : Impossible de traiter la r\u00e8gle : Aucun fichier ou r\u00e9pertoire de ce type<br \/>\n     delete rule ip x x handle 7<br \/>\n                               ^<\/p>\n<p>     # nft delete table twst<br \/>\n     Erreur : Aucun fichier ou r\u00e9pertoire de ce type ; vouliez-vous dire table \u00ab test \u00bb dans la famille ip ?<br \/>\n     delete table twst<br \/>\n                  ^^^^<\/p>\n<p>Dans le premier exemple, il est montr\u00e9 que la table \u00ab y \u00bb est absente du syst\u00e8me, dans le second, qu'il manque un gestionnaire \u00ab 7 \u00bb, et dans le troisi\u00e8me, qu'un indice de fautes de frappe est donn\u00e9 lors de la saisie du nom de la table.<\/p>\n<li class=\"l\"> Ajout de la prise en charge de la v\u00e9rification de l'interface esclave via la sp\u00e9cification \u00ab meta sdif \u00bb ou \u00ab meta sdifname \u00bb :\n<p>        \u2026 meta sdifname vrf1 \u2026<\/p>\n<li class=\"l\"> Ajout de la prise en charge de l'op\u00e9ration de d\u00e9calage \u00e0 droite ou \u00e0 gauche. Par exemple, pour d\u00e9caler une \u00e9tiquette de paquet existante \u00e0 gauche de 1 bit et d\u00e9finir le bit inf\u00e9rieur \u00e0 1 :\n<p>        \u2026 meta mark set meta mark lshift 1 or 0x1 \u2026<\/p>\n<li class=\"l\"> L'option \u00ab -V \u00bb a \u00e9t\u00e9 mise en \u0153uvre pour afficher des informations d\u00e9taill\u00e9es sur la version.\n<p>     # nft -V<br \/>\n       nftables v0.9.4 (Jive at Five)<br \/>\n          cli : readline<br \/>\n          json : yes<br \/>\n          minigmp : no<br \/>\n          libxtables : yes<\/p>\n<li class=\"l\"> Les options de ligne de commande doivent d\u00e9sormais \u00eatre sp\u00e9cifi\u00e9es avant les commandes. Par exemple, il faut indiquer \u00ab nft -a list ruleset \u00bb, alors que la commande \u00ab nft list ruleset -a \u00bb g\u00e9n\u00e9rera une erreur.\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source : <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52656\">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 0.9.4, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043c\u0435\u043d\u044b iptables, ip6table, arptables \u0438 ebtables \u0437\u0430 \u0441\u0447\u0451\u0442 \u0443\u043d\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \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. \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 [&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-76505","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - 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\" \/>\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\/fr\/blog\/news\/vypusk-paketnogo-filtra-nftables-0-9-4\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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 0.9.4 | 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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/vypusk-paketnogo-filtra-nftables-0-9-4\" \/>\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=\"2020-04-02T17:42:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-02T17:42:00+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\udd47Version de filtrage par paquets nftables 0.9.4 | ProHoster","description":"Publication de la version du filtre de paquets","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/vypusk-paketnogo-filtra-nftables-0-9-4","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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 0.9.4 | 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","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/vypusk-paketnogo-filtra-nftables-0-9-4","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":"2020-04-02T17:42:00+00:00","article:modified_time":"2020-04-02T17:42:00+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"76505","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:35:41","updated":"2022-10-07 02:56:47","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/76505","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=76505"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/76505\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=76505"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=76505"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=76505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}