انتشار فیلتر بسته nftables 1.0.2

انتشار فیلتر بسته nftables 1.0.2 منتشر شده است که رابط های فیلتر بسته را برای IPv4، IPv6، ARP و پل های شبکه یکپارچه می کند (با هدف جایگزینی iptables، ip6table، arptables و ebtables). تغییرات مورد نیاز برای اجرای nftables 1.0.2 در هسته لینوکس 5.17-rc گنجانده شده است.

بسته nftables شامل اجزای فیلتر بسته است که در فضای کاربر اجرا می شود، در حالی که کار در سطح هسته توسط زیرسیستم nf_tables ارائه می شود که از زمان انتشار 3.13 بخشی از هسته لینوکس بوده است. سطح هسته تنها یک رابط عمومی مستقل از پروتکل ارائه می دهد که عملکردهای اساسی را برای استخراج داده ها از بسته ها، انجام عملیات داده و کنترل جریان ارائه می دهد.

قوانین فیلتر و کنترل کننده های خاص پروتکل در بایت کد در فضای کاربر کامپایل می شوند، پس از آن این بایت کد با استفاده از رابط Netlink در هسته بارگذاری می شود و در هسته در یک ماشین مجازی ویژه که یادآور BPF (فیلترهای بسته برکلی) است، اجرا می شود. این رویکرد به شما این امکان را می دهد که اندازه کدهای فیلترینگ در حال اجرا در سطح هسته را به میزان قابل توجهی کاهش دهید و تمام عملکردهای تجزیه قوانین و منطق کار با پروتکل ها را به فضای کاربر منتقل کنید.

نوآوری های اصلی:

  • یک حالت بهینه سازی قوانین اضافه شده است که با استفاده از گزینه جدید "-o" ("--بهینه سازی") فعال شده است، که می تواند با گزینه "--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 قبول ip daddr 1.1.1.1 ip daddr . .2.2.2.2 قبول ip sadr 2.2.2.2 ip daddr 3.3.3.3 drop

    در متا iifname ترکیب می شود. ip sadr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3، eth1. 1.1.1.2. 2.2.2.5 } ip sadr را قبول کنید. ip daddr vmap { 1.1.1.1 . 2.2.2.2: قبول، 2.2.2.2. 3.3.3.3: رها کردن }

    مثال استفاده: # nft -c -o -f ruleset.test ادغام: 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 شمارنده پذیرش در: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } بسته های شمارنده 0 بایت 0 پذیرش

  • لیست های مجموعه توانایی تعیین گزینه های ip و tcp و همچنین تکه های sctp را پیاده سازی می کنند: set s5 { typeof ip option ra value element = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams element = { 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 mptcp subtype 1
  • کد فیلترینگ سمت هسته بهبود یافته
  • Flowtable اکنون از فرمت JSON پشتیبانی کامل دارد.
  • امکان استفاده از عمل "رد" در عملیات تطبیق فریم اترنت فراهم شده است. ether sadr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 رد

منبع: opennet.ru

اضافه کردن نظر