{"id":35676,"date":"2019-10-31T22:05:42","date_gmt":"2019-10-31T19:05:42","guid":{"rendered":"https:\/\/prohoster.info\/blog\/vypusk-paketnogo-filtra-nftables-0-9-1\/"},"modified":"2019-10-31T22:05:42","modified_gmt":"2019-10-31T19:05:42","slug":"vypusk-paketnogo-filtra-nftables-0-9-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/vypusk-paketnogo-filtra-nftables-0-9-1","title":{"rendered":"Ver\u00f6ffentlichung des Paketfilters nftables 0.9.1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Nach einem Jahr Entwicklung <noindex><a rel=\"nofollow\" href=\"https:\/\/marc.info\/?l=netfilter&#038;m=156139496810281\">vorgestellt<\/a><\/noindex> Freigabe des Paketfilters <noindex><a rel=\"nofollow\" href=\"https:\/\/netfilter.org\/projects\/nftables\/\">nftables 0.9.1<\/a><\/noindex>, das sich als Ersatz f\u00fcr iptables, ip6tables, arptables und ebtables entwickelt, indem es die Schnittstellen zur Paketfilterung f\u00fcr IPv4, IPv6, ARP und Netzwerkbr\u00fccken vereinheitlicht. Das nftables-Paket enth\u00e4lt Benutzermoduskomponenten des Paketfilters, w\u00e4hrend auf Kernel-Ebene das nf_tables-Subsystem bereitgestellt wird, das seit der Version 3.13 Teil des Linux-Kernels ist. <\/p>\n<p>Auf Kernel-Ebene wird lediglich eine allgemeine Schnittstelle bereitgestellt, die unabh\u00e4ngig vom spezifischen Protokoll die grundlegenden Funktionen zum Extrahieren von Daten aus Paketen, zum Ausf\u00fchren von Datenoperationen und zum Verwalten von Datenstr\u00f6men bietet.<br \/>\nDie Filterlogik und die protokollspezifischen Handler werden in Bytecode im Benutzermodus kompiliert, woraufhin dieser Bytecode \u00fcber die Netlink-Schnittstelle in den Kernel geladen und in einer speziellen virtuellen Maschine ausgef\u00fchrt wird, die BPF (Berkeley Packet Filters) \u00e4hnelt. Dieser Ansatz erm\u00f6glicht es, die Gr\u00f6\u00dfe des auf Kernel-Ebene arbeitenden Filtercodes erheblich zu reduzieren und alle Funktionen zur Regelinterpretation und logischen Verarbeitung der Protokolle in den Benutzermodus auszulagern.<\/p>\n<p>Hauptneuheiten:<\/p>\n<ul>\n<li class=\"l\"> Unterst\u00fctzung von IPsec, das die Zuordnung von Tunneladressen an Paket, IPsec-Anforderungs-ID und SPI (Security Parameter Index)-Tag erm\u00f6glicht. Zum Beispiel,\n<p>      ... ipsec in ip saddr 192.168.1.0\/24<br \/>\n      ... ipsec in spi 1-65536<\/p>\n<p>Es ist auch m\u00f6glich, die Durchreise \u00fcber ein IPsec-Tunnel zu \u00fcberpr\u00fcfen. Zum Beispiel, um Verkehr, der nicht \u00fcber IPsec l\u00e4uft, zu blockieren: <\/p>\n<p>      ... filter output rt ipsec missing drop<\/p>\n<li class=\"l\"> Unterst\u00fctzung des IGMP-Protokolls (Internet Group Management Protocol). Zum Beispiel, um eingehende IGMP-Anfragen nach Gruppenmitgliedschaft abzulehnen, kann folgende Regel verwendet werden:\n<p>      nft add rule netdev foo bar igmp type membership-query counter drop<\/p>\n<li class=\"l\"> M\u00f6glichkeit der Verwendung von Variablen zur Definition von Sprungketten (jump \/ goto). Zum Beispiel:\n<p>      define dest = ber<br \/>\n      add rule ip foo bar jump $dest<\/p>\n<li class=\"l\"> Unterst\u00fctzung von Masken zur Identifizierung von Betriebssystemen (OS Fingerprint) basierend auf den TTL-Werten im Header. Zum Beispiel, um Pakete abh\u00e4ngig vom Betriebssystem des Absenders zu kennzeichnen, kann der Befehl verwendet werden:\n<p>    ... meta mark set osf ttl skip name map { \u00abLinux\u00bb : 0x1,<br \/>\n                                              \u00abWindows\u00bb : 0x2,<br \/>\n                                              \u00abMacOS\u00bb : 0x3,<br \/>\n                                              \u00abunknown\u00bb : 0x0 }<br \/>\n    ... osf ttl skip version \u00abLinux:4.20\u00bb<\/p>\n<li class=\"l\"> M\u00f6glichkeit der Zuordnung der ARP-Adresse des Absenders zur IPv4-Adresse des Zielsystems. Zum Beispiel, um den Z\u00e4hler f\u00fcr ARP-Pakete zu erh\u00f6hen, die von der Adresse 192.168.2.1 gesendet werden, kann folgende Regel verwendet werden:\n<p>        table arp x {<br \/>\n                chain y {<br \/>\n                        type filter hook input priority filter; policy accept;<br \/>\n                        arp saddr ip 192.168.2.1 counter packets 1 bytes 46<br \/>\n                }<br \/>\n        }<\/p>\n<li class=\"l\"> Unterst\u00fctzung f\u00fcr transparentes Proxy-Passing von Anfragen (tproxy). Zum Beispiel, um Anfragen an Port 80 auf den Proxy-Port 8080 umzuleiten:\n<p>        table ip x {<br \/>\n                chain y {<br \/>\n                        type filter hook prerouting priority -150; policy accept;<br \/>\n                        tcp dport 80 tproxy to :8080<br \/>\n                }<br \/>\n        }<\/p>\n<li class=\"l\"> Unterst\u00fctzung f\u00fcr das Markieren von Sockets mit der M\u00f6glichkeit, das gesetzte Mark durch setsockopt() im SO_MARK-Modus abzurufen. Beispielsweise:\n<p>        table inet x {<br \/>\n                chain y {<br \/>\n                        type filter hook prerouting priority -150; policy accept;<br \/>\n                        tcp dport 8080 mark set socket mark<br \/>\n                }<br \/>\n        }<\/p>\n<li class=\"l\"> Unterst\u00fctzung f\u00fcr die Angabe von textbasierten Priorit\u00e4tsnamen f\u00fcr Ketten. Zum Beispiel:\n<p>        nft add chain ip x raw { type filter hook prerouting priority raw; }<br \/>\n        nft add chain ip x filter { type filter hook prerouting priority filter; }<br \/>\n        nft add chain ip x filter_later { type filter hook prerouting priority filter + 10; }<\/p>\n<li class=\"l\"> Unterst\u00fctzung f\u00fcr SELinux-Tags (Secmark). Zum Beispiel kann die Kennzeichnung \u00absshtag\u00bb im Zusammenhang mit dem SELinux-Kontext wie folgt ermittelt werden:\n<p>         nft add secmark inet filter sshtag \u00absystem_u:object_r:ssh_server_packet_t:s0\u00bb<\/p>\n<p>Und dann kann dieses Tag in Regeln verwendet werden:<\/p>\n<p>        nft add rule inet filter input tcp dport 22 meta secmark set \u00absshtag\u00bb<\/p>\n<p>        nft add map inet filter secmapping { type inet_service : secmark; }<br \/>\n        nft add element inet filter secmapping { 22 : \u00absshtag\u00bb }<br \/>\n        nft add rule inet filter input meta secmark set tcp dport map @secmapping<\/p>\n<li class=\"l\"> M\u00f6glichkeit zur Angabe von Protokollgebundenen Ports in Textform, wie sie in der Datei \/etc\/services definiert sind. Zum Beispiel:\n<p>        nft add rule x y tcp dport \u00abssh\u00bb<br \/>\n        nft list ruleset -l<br \/>\n        table x {<br \/>\n                chain y {<br \/>\n                        \u2026<br \/>\n                        tcp dport \u00abssh\u00bb<br \/>\n                }<br \/>\n        }<\/p>\n<li class=\"l\"> M\u00f6glichkeit zur \u00dcberpr\u00fcfung des Typs des Netzwerkinterfaces. Zum Beispiel:\n<p>        add rule inet raw prerouting meta iifkind \u00abvrf\u00bb accept<\/p>\n<li class=\"l\"> Die Unterst\u00fctzung f\u00fcr die dynamische Aktualisierung von Inhaltssets (sets) wurde verbessert, indem das Flag \u00abdynamic\u00bb explizit angegeben wird. Zum Beispiel zum Aktualisieren des Sets \u00abs\u00bb durch Hinzuf\u00fcgen der Quelladresse und Zur\u00fccksetzen des Eintrags, falls 30 Sekunden lang keine Pakete vorhanden sind:\n<p>        add table x<br \/>\n        add set x s { type ipv4_addr; size 128; timeout 30s; flags dynamic; }<br \/>\n        add chain x y { type filter hook input priority 0; }<br \/>\n        add rule x y update @s { ip saddr }<\/p>\n<li class=\"l\"> M\u00f6glichkeit, eine separate Bedingung f\u00fcr das Eintreten eines Zeit\u00fcberschreitens festzulegen. Zum Beispiel, um die Standard-Zeit\u00fcberschreitung f\u00fcr Pakete, die an Port 8888 ankommen, zu \u00e4ndern:\n<p>        table ip filter {<br \/>\n                ct timeout agressive-tcp {<br \/>\n                        protocol tcp;<br \/>\n                        l3proto ip;<br \/>\n                        policy = {established: 100, close_wait: 4, close: 4}<br \/>\n                }<br \/>\n                chain output {<br \/>\n                        \u2026<br \/>\n                        tcp dport 8888 ct timeout set \u00abagressive-tcp\u00bb<br \/>\n                }<br \/>\n        }<\/p>\n<li class=\"l\"> Unterst\u00fctzung f\u00fcr NAT f\u00fcr die Familie inet:\n<p>        table inet nat {<br \/>\n                \u2026<br \/>\n                ip6 daddr dead::2::1 dnat to dead:2::99<br \/>\n        }<\/p>\n<li class=\"l\"> Verbesserte Werkzeuge zur Ausgabe von Fehlerinformationen aufgrund von Tippfehlern:\n<p>        nft add chain filtre test<\/p>\n<p>        Fehler: Datei oder Verzeichnis nicht gefunden; meinten Sie die Tabelle \u00abfilter\u00bb in der Familie ip?<br \/>\n        add chain filtre test<br \/>\n                  ^^^^^^<\/p>\n<li class=\"l\"> M\u00f6glichkeit zur Angabe von Schnittstellennamen in Mengen (sets):\n<p>        set sc {<br \/>\n               type inet_service . ifname<br \/>\n               elements = { \u00abssh\u00bb . \u00abeth0\u00bb }<br \/>\n        }<\/p>\n<li class=\"l\"> Aktualisierter Syntax f\u00fcr flowtable-Regeln:\n<p>        nft add table x<br \/>\n        nft add flowtable x ft { hook ingress priority 0; devices = { eth0, wlan0 }; }<br \/>\n        \u2026<br \/>\n        nft add rule x forward ip protocol { tcp, udp } flow add @ft<\/p>\n<li class=\"l\"> Verbesserte Unterst\u00fctzung f\u00fcr JSON.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Quelle: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50952\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 nftables 0.9.1, \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 [&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-35676","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \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\/de\/blog\/news\/vypusk-paketnogo-filtra-nftables-0-9-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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.1 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \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\/de\/blog\/news\/vypusk-paketnogo-filtra-nftables-0-9-1\" \/>\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=\"2019-10-31T19:05:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:05: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\udd47Ver\u00f6ffentlichung des Paketfilters nftables 0.9.1 | ProHoster","description":"Nach einem Jahr Entwicklung wurde die Ver\u00f6ffentlichung des Paketfilters vorgestellt.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/vypusk-paketnogo-filtra-nftables-0-9-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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.1 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/vypusk-paketnogo-filtra-nftables-0-9-1","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":"2019-10-31T19:05:42+00:00","article:modified_time":"2019-10-31T19:05:42+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35676","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":"2026-01-22 00:20:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:58:28","updated":"2026-01-22 00:20:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/35676","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=35676"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/35676\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=35676"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=35676"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=35676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}