nftables paket filtri 1.0.6 versiyasi

IPv1.0.6, IPv4, ARP va tarmoq ko'priklari (iptables, ip6table, arptables va ebtables almashtirishga qaratilgan) uchun paketli filtrlash interfeyslarini birlashtiruvchi nftables 6 paketli filtri nashr etildi. nftables to'plami foydalanuvchi maydonida ishlaydigan paket filtri komponentlarini o'z ichiga oladi, yadro darajasidagi ish esa 3.13 versiyasidan beri Linux yadrosining bir qismi bo'lgan nf_tables quyi tizimi tomonidan ta'minlanadi. Yadro darajasi faqat paketlardan ma'lumotlarni olish, ma'lumotlar operatsiyalarini bajarish va oqimlarni boshqarish uchun asosiy funktsiyalarni ta'minlovchi umumiy protokoldan mustaqil interfeysni ta'minlaydi.

Filtrlash qoidalari va protokolga xos ishlov beruvchilar foydalanuvchi maydonida bayt-kodga kompilyatsiya qilinadi, shundan so'ng bu bayt kod Netlink interfeysi yordamida yadroga yuklanadi va yadroda BPF (Berkeley Packet Filters) ni eslatuvchi maxsus virtual mashinada bajariladi. Ushbu yondashuv yadro darajasida ishlaydigan filtrlash kodining hajmini sezilarli darajada kamaytirish va protokollar bilan ishlash uchun tahlil qilish qoidalari va mantiqining barcha funktsiyalarini foydalanuvchi maydoniga ko'chirish imkonini beradi.

Asosiy o'zgarishlar:

  • “-o/—optimallashtirish” opsiyasi belgilanganda chaqiriladigan qoidalar optimallashtiruvchisi qoidalarni birlashtirish va ularni xarita va roʻyxatlar roʻyxatiga aylantirish orqali avtomatik qadoqlashga ega. Masalan, qoidalar # cat ruleset.nft table ip x { zanjir y { turi filtri kancasi kiritish ustuvor filtri; siyosatning pasayishi; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 qabul qiling meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 qabul qiling meta iifname eth1 ip saddr 1.1.1.2 ip daddr IP saddr 2.2.3.0i qabul qiling/24. .1 ip daddr 1.1.1.2-2.2.4.0 qabul meta iifname eth2.2.4.10 ip saddr 2 ip daddr 1.1.1.3 qabul qiling } } “nft -o -c -f ruleset.nft” bajarilgandan so‘ng quyidagiga aylantiriladi: qoidalar to‘plami nft:2.2.2.5:4-17: meta iifname eth74 ip saddr 1 ip daddr 1.1.1.1 accept ruleset.nft:2.2.2.3:5-17: meta iifname eth74 ip saddr 1 ip dadft 1.1.1.2 qoidalarini qabul qiling. : 2.2.2.4:6-17: meta iifname eth77 ip saddr 1 ip daddr 1.1.1.2/2.2.3.0 qabul qilish ruleset.nft:24:7-17: meta iifname eth83 ip saddr 1 ip daddr 1.1.1.2-2.2.4.0. accept ruleset.nft:2.2.4.10:8-17: meta iifname eth74 ip saddr 2 ip daddr 1.1.1.3 qabul qiling: iifname. ip saddr. ip daddr {eth2.2.2.5. 1. 1.1.1.1, et2.2.2.3. 1. 1.1.1.2, et2.2.2.4. 1. 1.1.1.2/2.2.3.0, eth24 . 1. 1.1.1.2-2.2.4.0, et2.2.4.10. 2. 1.1.1.3 } qabul qilish
  • Optimizator oddiy to'plamlar ro'yxatidan allaqachon foydalanadigan qoidalarni yanada ixcham shaklga o'zgartirishi mumkin, masalan: # cat ruleset.nft table ip filter { zanjir kiritish { type filter kancasi kiritish ustuvor filtri; siyosatning pasayishi; iifname “lo” qabul qilish ct holati o‘rnatilgan, tegishli qabul izoh “Biz kelib chiqadigan trafikda, biz ishonamiz” iifname “enp0s31f6” ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 sport123ud qabul qilish d32768ud iifname "enp65535s0f31" ip saddr { 6, 64.59.144.17 } ip daddr 64.59.150.133 udp sport 10.0.0.149 udp dport 53-32768 qabul qilish } } to'plamini qabul qilish } } } }} to'plami - exetocu bo'ladi. : ruleset.nft:65535:6-22: iifname "enp149s0f31" ip saddr {6, 209.115.181.102 } ip daddr 216.197.228.230 udp sport 10.0.0.149 udp sport 123 ud32768: qoidalarini qabul qilish: ud65535. - 7: iifname "enp22s143f0" ip saddr {31, 6} ip daddr 64.59.144.17 udp sport 64.59.150.133 udp dport 10.0.0.149-53 ichiga qabul qiling: iifname . ip saddr. ip daddr. udp sport. udp dport {enp32768s65535f0. 31. 6. 209.115.181.102. 10.0.0.149-123, enp32768s65535f0. 31. 6. 216.197.228.230. 10.0.0.149-123, enp32768s65535f0. 31. 6. 64.59.144.17. 10.0.0.149-53, enp32768s65535f0. 31. 6. 64.59.150.133. 10.0.0.149-53 } qabul qiling
  • IPv4 (tarmoq bayt tartibi) va meta belgisi (tizim bayt tartibi) kabi turli bayt tartibidagi turlardan foydalanadigan intervallarni birlashtirish uchun bayt kodini yaratish muammosi hal qilindi. jadval ip x {xarita w { typeof ip saddr. meta belgisi: hukm bayroqlari interval qarshi elementlar = {127.0.0.1-127.0.0.4. 0x123434-0xb00122: qabul qilish, 192.168.0.10-192.168.1.20. 0x0000aa00-0x0000aaff : qabul qilish, } } zanjir k { turi filtri kancasi kiritish ustuvor filtri; siyosatning pasayishi; ip saddr. meta belgisi vmap @w }}
  • Xom ifodalardan foydalanganda kam uchraydigan protokollarni taqqoslash yaxshilandi, masalan: meta l4proto 91 @th,400,16 0x0 qabul qilinadi
  • Qoidalarni vaqt oralig'ida yoqish bilan bog'liq muammolar hal qilindi: insert qoida xy tcp sport { 3478-3497, 16384-16387 } counter qabul
  • JSON API toʻplam va xaritalar roʻyxatidagi ifodalarni qoʻllab-quvvatlash uchun takomillashtirildi.
  • Nftables python kutubxonasiga kengaytmalar tekshirish rejimida ("-c") ishlov berish uchun qoidalar to'plamini yuklash imkonini beradi va o'zgaruvchilarning tashqi ta'rifini qo'llab-quvvatlaydi.
  • Izohlar roʻyxati elementlarida qoʻshishga ruxsat beriladi.
  • Bayt tezligi chegarasi nol qiymatni belgilash imkonini beradi.

Manba: opennet.ru

a Izoh qo'shish