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

منتشر شده انتشار فیلتر بسته nftables 0.9.3، به عنوان جایگزینی برای iptables، ip6table، arptables و ebtable با یکپارچه سازی رابط های فیلتر بسته برای IPv4، IPv6، ARP و پل های شبکه توسعه می یابد. بسته nftables شامل اجزای فیلتر بسته فضای کاربر است، در حالی که کار در سطح هسته توسط زیرسیستم nf_tables ارائه می شود که از زمان انتشار 3.13 بخشی از هسته لینوکس بوده است. تغییرات مورد نیاز برای انتشار nftables 0.9.3 در شاخه هسته 5.5 لینوکس آینده گنجانده شده است.

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

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

  • پشتیبانی از تطبیق بسته ها بر اساس زمان. می‌توانید هم محدوده زمانی و هم محدوده تاریخی را که در آن قانون راه‌اندازی می‌شود، تعریف کنید و راه‌اندازی را در روزهای جداگانه هفته پیکربندی کنید. همچنین یک گزینه جدید "-T" برای نمایش زمان دوره در چند ثانیه اضافه شده است.

    متا زمان \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
    متا ساعت \"17:00\" - \"19:00\"
    متا روز \"جمعه\"

  • پشتیبانی از بازیابی و ذخیره علائم SELinux (secmark).

    ct secmark مجموعه متا secmark
    متا secmark مجموعه ct secmark

  • پشتیبانی از لیست های نقشه synproxy، به شما این امکان را می دهد که بیش از یک قانون در هر باطن تعریف کنید.

    میز آی پی فو {
    synproxy https-synproxy {
    mss 1460
    wscale 7
    مهر زمانی sack-perm
    }

    synproxy other-synproxy {
    mss 1460
    wscale 5
    }

    زنجیره قبل از {
    نوع فیلتر hook prerouting priority raw; پذیرش سیاست
    tcp dport 8888 tcp flags syn notrack
    }

    نوار زنجیر {
    نوع فیلتر قلاب جلو فیلتر اولویت; پذیرش سیاست
    وضعیت ct نامعتبر، نام synproxy ردیابی نشده ip saddr map { 192.168.1.0/24 : "https-synproxy", 192.168.2.0/24 : "other-synproxy" }
    }
    }

  • توانایی حذف پویا عناصر مجموعه از قوانین پردازش بسته.

    nft add rule ... حذف @set5 { ip6 saddr . ip6 daddr}

  • پشتیبانی از نقشه برداری VLAN با شناسه و پروتکل تعریف شده در ابرداده رابط پل شبکه.

    متا ibrpvid 100
    متا ایبرو پروتو ولان

  • گزینه "-t" ("--tse") برای حذف عناصر مجموعه‌ها هنگام نمایش قوانین. اجرای "nft -t list ruleset" خروجی خواهد داشت:

    جدول ip x {
    مجموعه y {
    ipv4_addr را تایپ کنید
    }
    }

    و با “nft list ruleset”

    جدول ip x {
    مجموعه y {
    ipv4_addr را تایپ کنید
    عناصر = { 192.168.10.2, 192.168.20.1،
    192.168.4.4, 192.168.2.34 }
    }
    }

  • امکان تعیین بیش از یک دستگاه در زنجیره های netdev (فقط با هسته 5.5 کار می کند) برای ترکیب قوانین رایج فیلتر.

    جدول netdev x را اضافه کنید
    اضافه کردن زنجیره netdev xy { \
    دستگاه های ورودی قلاب فیلتر را تایپ کنید = { eth0, eth1 } اولویت 0;
    }

  • امکان افزودن توضیحات انواع داده ها.

    #nft ipv4_addr را توصیف کنید
    نوع داده ipv4_addr (آدرس IPv4) (عدد صحیح نوع پایه)، 32 بیت

  • امکان ساخت رابط CLI با کتابخانه linenoise به جای libreadline.

    ./configure --with-cli=linenoise

منبع: opennet.ru

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