nftables پیکٹ فلٹر 1.0.0 ریلیز

پیکٹ فلٹر nftables 1.0.0 کا اجراء شائع کیا گیا ہے، IPv4، IPv6، ARP اور نیٹ ورک برجز کے لیے پیکٹ فلٹرنگ انٹرفیس کو متحد کرتے ہوئے (جس کا مقصد iptables، ip6table، arptables اور ebtables کو تبدیل کرنا ہے)۔ کام کرنے کے لیے nftables 1.0.0 ریلیز کے لیے درکار تبدیلیاں لینکس 5.13 کرنل میں شامل ہیں۔ ورژن نمبر میں ایک اہم تبدیلی کسی بنیادی تبدیلیوں سے منسلک نہیں ہے، لیکن یہ صرف اعشاریہ اشارے میں نمبر کے مسلسل تسلسل کا نتیجہ ہے (پچھلی ریلیز 0.9.9 تھی)۔

nftables پیکج میں پیکٹ فلٹر کے اجزاء شامل ہیں جو صارف کی جگہ پر چلتے ہیں، جبکہ کرنل لیول کا کام nf_tables سب سسٹم کے ذریعے فراہم کیا جاتا ہے، جو کہ ریلیز 3.13 کے بعد سے لینکس کرنل کا حصہ ہے۔ کرنل لیول صرف ایک عام پروٹوکول سے آزاد انٹرفیس فراہم کرتا ہے جو پیکٹوں سے ڈیٹا نکالنے، ڈیٹا آپریشنز کرنے، اور فلو کنٹرول کے لیے بنیادی کام فراہم کرتا ہے۔

فلٹرنگ کے قواعد اور پروٹوکول سے متعلق مخصوص ہینڈلرز کو صارف کی جگہ میں بائٹ کوڈ میں مرتب کیا جاتا ہے، جس کے بعد اس بائی کوڈ کو نیٹ لنک انٹرفیس کا استعمال کرتے ہوئے کرنل میں لوڈ کیا جاتا ہے اور BPF (برکلے پیکٹ فلٹرز) کی یاد دلانے والی خصوصی ورچوئل مشین میں کرنل میں عمل میں لایا جاتا ہے۔ یہ نقطہ نظر آپ کو کرنل کی سطح پر چلنے والے فلٹرنگ کوڈ کے سائز کو نمایاں طور پر کم کرنے اور پروٹوکول کے ساتھ کام کرنے کے لیے اصولوں اور منطق کو پارس کرنے کے تمام افعال کو صارف کی جگہ میں منتقل کرنے کی اجازت دیتا ہے۔

اہم اختراعات:

  • سیٹ لسٹوں میں "*" ماسک عنصر کے لیے سپورٹ شامل کر دی گئی ہے، جو کسی بھی پیکج کے لیے متحرک ہوتی ہے جو سیٹ میں بیان کردہ دیگر عناصر کے تحت نہیں آتے ہیں۔ ٹیبل x { نقشہ بلاک لسٹ { قسم ipv4_addr : فیصلے کے جھنڈے وقفہ عناصر = { 192.168.0.0/16 : قبول کریں، 10.0.0.0/8 : قبول کریں، * : ڈراپ } } چین y { ٹائپ فلٹر ہک پریوٹنگ ترجیح 0؛ پالیسی قبول کریں؛ ip saddr vmap @blocklist } }
  • "--define" آپشن کا استعمال کرتے ہوئے کمانڈ لائن سے متغیرات کی وضاحت ممکن ہے۔ # cat test.nft ٹیبل netdev x { چین y { ٹائپ فلٹر ہک انگریس ڈیوائسز = $dev ترجیح 0؛ پالیسی ڈراپ؛ } } # nft — define dev="{ eth0, eth1 }" -f test.nft
  • نقشہ کی فہرستوں میں، مستقل (بیان) اظہار کے استعمال کی اجازت ہے: ٹیبل انیٹ فلٹر { نقشہ پورٹ میپ { قسم inet_service : فیصلہ کاؤنٹر عناصر = { 22 کاؤنٹر پیکٹ 0 بائٹس 0 : جمپ ssh_input، * کاؤنٹر پیکٹ 0 بائٹس 0 : ڈراپ } } سلسلہ ssh_input { } chain wan_input { tcp dport vmap @portmap } سلسلہ پری روٹنگ { ٹائپ فلٹر ہک پریروٹنگ ترجیح خام؛ پالیسی قبول کریں؛ iif vmap { "lo" : jump wan_input } }
  • دیئے گئے پیکٹ فیملی کے لیے ہینڈلرز کی فہرست ظاہر کرنے کے لیے "لسٹ ہکس" کمانڈ شامل کی گئی: # nft list hooks ip device eth0 family ip { hook ingress { +0000000010 chain netdev xy [nf_tables] +0000000300 chain inet mw [nf_tables in] { -0000000100 چین ip ab [nf_tables] +0000000300 چین انیٹ ایم زیڈ [nf_tables] } ہک فارورڈ { -0000000225 selinux_ipv4_forward 0000000000 چین ip ac [nf_tables]0000000225_4 آؤٹ پٹ 0000000225_آؤٹ پٹ } ہک پوسٹروٹنگ { +4 XNUMX selinux_ipvXNUMX_postroute } }
  • قطار کے بلاکس jhash، symhash، اور numgen کے تاثرات کو صارف کی جگہ میں قطاروں میں پیکٹ تقسیم کرنے کے لیے جوڑنے کی اجازت دیتے ہیں۔ … symhash mod 65536 تک قطار … numgen inc mod 65536 … jhash oif کی قطار میں جھنڈوں کو بائی پاس کریں۔ میٹا مارک موڈ 32 "قطار" کو نقشہ کی فہرستوں کے ساتھ بھی ملایا جا سکتا ہے تاکہ صوابدیدی کلیدوں کی بنیاد پر صارف کی جگہ میں قطار کا انتخاب کیا جا سکے۔ ... قطار کے جھنڈے oifname کے نقشے کو بائی پاس کریں { "eth0" : 0, "ppp0" : 2, "eth1" : 2 }
  • متغیرات کو بڑھانا ممکن ہے جس میں کئی نقشوں میں سیٹ لسٹ شامل ہو۔ انٹرفیس کی وضاحت کریں = { eth0, eth1 } ٹیبل ip x { چین y { ٹائپ فلٹر ہک ان پٹ ترجیح 0؛ پالیسی قبول کریں؛ iifname vmap { lo : accept, $interfaces : drop } } } # nft -f x.nft # nft فہرست رولسیٹ ٹیبل ip x { چین y { ٹائپ فلٹر ہک ان پٹ ترجیح 0؛ پالیسی قبول کریں؛ iifname vmap { "lo" : قبول کریں، "eth0" : ڈراپ، "eth1" : ڈراپ } }
  • وقفوں پر vmaps (فیصلے کا نقشہ) کو یکجا کرنے کی اجازت ہے: # nft ضابطہ شامل کریں xy tcp dport ۔ ip saddr vmap { 1025-65535 . 192.168.10.2 : قبول کریں }
  • NAT میپنگ کے لیے آسان نحو۔ ایڈریس رینجز کی وضاحت کرنے کی اجازت ہے: ... snat to ip saddr map { 10.141.11.4 : 192.168.2.2-192.168.2.4 } یا واضح IP ایڈریس اور پورٹس: ... dnat to ip saddr map { 10.141.11.4. . 192.168.2.3 } یا IP رینجز اور پورٹس کے مجموعے: ... dnat to ip saddr ۔ tcp dport نقشہ { 80 192.168.1.2: 80-10.141.10.2۔ 10.141.10.5-8888 }

ماخذ: opennet.ru

نیا تبصرہ شامل کریں