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

پیکٹ فلٹر nftables 1.0.7 کا اجراء شائع کیا گیا ہے، IPv4، IPv6، ARP اور نیٹ ورک پلوں کے لیے پیکٹ فلٹرنگ انٹرفیس کو یکجا کرتے ہوئے (جس کا مقصد iptables، ip6table، arptables اور ebtables کو تبدیل کرنا ہے)۔ nftables پیکج میں پیکٹ فلٹر کے اجزاء شامل ہیں جو صارف کی جگہ پر چلتے ہیں، جبکہ کرنل لیول کا کام nf_tables سب سسٹم کے ذریعے فراہم کیا جاتا ہے، جو کہ ریلیز 3.13 کے بعد سے لینکس کرنل کا حصہ ہے۔ کرنل لیول صرف ایک عام پروٹوکول سے آزاد انٹرفیس فراہم کرتا ہے جو پیکٹوں سے ڈیٹا نکالنے، ڈیٹا آپریشنز کرنے، اور فلو کنٹرول کے لیے بنیادی کام فراہم کرتا ہے۔

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

اہم تبدیلیاں:

  • لینکس کرنل 6.2+ چلانے والے سسٹمز کے لیے، vxlan، geneve، gre، اور gretap پروٹوکول میپنگس کے لیے سپورٹ شامل کیا گیا ہے، جس سے سادہ اظہار کو انکیپسلیٹڈ پیکٹوں میں ہیڈر چیک کرنے کی اجازت ملتی ہے۔ مثال کے طور پر، VxLAN سے نیسٹڈ پیکٹ کے ہیڈر میں آئی پی ایڈریس کو چیک کرنے کے لیے، آپ اب قواعد استعمال کر سکتے ہیں (پہلے VxLAN ہیڈر کو ڈی-انکیپسلیٹ کرنے اور فلٹر کو vxlan0 انٹرفیس سے منسلک کرنے کی ضرورت کے بغیر): ... udp dport 4789 vxlan ip protocol udp ... udp dport 4789 vxlan ip saddr 1.2.3.0. 24/4789 ... udp dport 1.2.3.4 vxlan ip saddr . vxlan ip daddr { 4.3.2.1 . XNUMX }
  • سیٹ لسٹ عنصر کے جزوی طور پر حذف ہونے کے بعد باقیات کے خودکار انضمام کے لیے سپورٹ کو لاگو کیا گیا ہے، جو آپ کو موجودہ رینج سے کسی عنصر یا رینج کے کسی حصے کو حذف کرنے کی اجازت دیتا ہے (پہلے، ایک رینج کو صرف مکمل طور پر حذف کیا جا سکتا تھا)۔ مثال کے طور پر، 25-24 اور 30-40 کی رینج والی سیٹ فہرست سے عنصر 50 کو ہٹانے کے بعد، فہرست 24، 26-30 اور 40-50 رہے گی۔ خود کار طریقے سے کام کرنے کے لیے درکار اصلاحات 5.10+ کرنل کی مستحکم شاخوں کی دیکھ بھال کی ریلیز میں پیش کی جائیں گی۔ # nft فہرست رولسیٹ ٹیبل ip x { سیٹ y { قسم کا tcp dport پرچم وقفہ آٹو ضم عناصر = { 24-30, 40-50 } } } # nft حذف عنصر ip xy { 25 } # nft فہرست رولسیٹ ٹیبل ip x { سیٹ y { قسم کی tcp dport پرچموں کا وقفہ آٹو ضم کرنے والے عناصر = { 24, 26-30, 40-50 } }
  • ایڈریس ٹرانسلیشن (NAT) کی نقشہ سازی کرتے وقت رابطوں اور رینجز کے استعمال کی اجازت دیتا ہے۔ ٹیبل آئی پی نیٹ { چین پری روٹنگ { ٹائپ نیٹ ہک پری روٹنگ ترجیحی ڈی ایس ٹی نیٹ؛ پالیسی قبول کریں؛ dnat to ip daddr. tcp dport نقشہ { 10.1.1.136 . 80: 1.1.2.69۔ 1024، 10.1.1.10-10.1.1.20 8888-8889: 1.1.2.69۔ 2048-2049 } مسلسل } }
  • "آخری" اظہار کے لیے سپورٹ شامل کیا گیا، جو آپ کو اصول کے عنصر یا سیٹ لسٹ کے آخری استعمال کا وقت معلوم کرنے کی اجازت دیتا ہے۔ لینکس کرنل 5.14 سے شروع ہونے والی خصوصیت کو سپورٹ کیا جاتا ہے۔ ٹیبل ip x { سیٹ y { ip daddr کی قسم tcp dport سائز 65535 پرچم متحرک، ٹائم آؤٹ آخری ٹائم آؤٹ 1h } چین z { قسم فلٹر ہک آؤٹ پٹ ترجیحی فلٹر؛ پالیسی قبول کریں؛ اپ ڈیٹ @y { ip daddr . tcp dport } } } # nft فہرست سیٹ ip xy ٹیبل ip x { سیٹ y { ip daddr کی قسم۔ tcp dport سائز 65535 پرچم متحرک، ٹائم آؤٹ آخری ٹائم آؤٹ 1h عناصر = {172.217.17.14 ۔ 443 آخری بار استعمال کیا گیا 1s591ms ٹائم آؤٹ 1h ختم ہو جائے گا 59m58s409ms، 172.67.69.19 ۔ 443 آخری بار استعمال کیا گیا 4s636ms ٹائم آؤٹ 1h ختم ہو جائے گا 59m55s364ms، 142.250.201.72 ۔ 443 آخری استعمال شدہ 4s748ms ٹائم آؤٹ 1h 59m55s252ms، 172.67.70.134 کو ختم ہو جائے گا۔ 443 آخری استعمال شدہ 4s688ms ٹائم آؤٹ 1h 59m55s312ms، 35.241.9.150 کو ختم ہو جائے گا۔ 443 آخری بار استعمال کیا گیا 5s204ms ٹائم آؤٹ 1h ختم ہو جائے گا 59m54s796ms، 138.201.122.174 ۔ 443 آخری بار استعمال کیا گیا 4s537ms ٹائم آؤٹ 1h ختم ہو جائے گا 59m55s463ms، 34.160.144.191 ۔ 443 آخری بار استعمال کیا گیا 5s205ms ٹائم آؤٹ 1h ختم ہو جائے گا 59m54s795ms، 130.211.23.194 ۔ 443 آخری استعمال شدہ 4s436ms ٹائم آؤٹ 1h ختم ہو جائے گا 59m55s564ms } }
  • سیٹ فہرستوں میں کوٹہ کی وضاحت کرنے کی صلاحیت شامل کی گئی۔ مثال کے طور پر، ہر ٹارگٹ آئی پی ایڈریس کے لیے ٹریفک کوٹہ کا تعین کرنے کے لیے، آپ یہ بتا سکتے ہیں: ٹیبل netdev x { سیٹ y { typeof ip daddr size 65535 کوٹہ 10000 mbytes سے زیادہ } چین y { ٹائپ فلٹر ہک ایگریس ڈیوائس "eth0" ترجیحی فلٹر؛ پالیسی قبول کریں؛ ip daddr @y ڈراپ } } # nft عنصر inet xy { 8.8.8.8 } # ping -c 2 8.8.8.8 # nft فہرست رولسیٹ ٹیبل netdev x { سیٹ y { ٹائپ ipv4_addr سائز 65535 کوٹہ 10000 mbytes = 8.8.8.8 عناصر سے زیادہ۔ 10000 کوٹہ 196 mbytes سے زیادہ استعمال کیا گیا 0 بائٹس } } چین y { ٹائپ فلٹر ہک ایگریس ڈیوائس "ethXNUMX" ترجیحی فلٹر؛ پالیسی قبول کریں؛ ip daddr @y ڈراپ } }
  • سیٹ لسٹوں میں مستقل کے استعمال کی اجازت ہے۔ مثال کے طور پر، فہرست کی کلید کے طور پر منزل کا پتہ اور VLAN ID استعمال کرتے وقت، آپ براہ راست VLAN نمبر (daddr. 123): table netdev t { set s { typeof ether saddr . vlan id سائز 2048 پرچم متحرک، ٹائم آؤٹ ٹائم آؤٹ 1m } چین c { ٹائپ فلٹر ہک انگریس ڈیوائس ایتھ0 ترجیح 0؛ پالیسی قبول کریں؛ ایتھر قسم != 8021q اپ ڈیٹ @s { ether daddr . 123 } کاؤنٹر } }
  • اشیاء کو غیر مشروط طور پر حذف کرنے کے لیے ایک نیا "destroy" کمانڈ شامل کیا گیا (delete کمانڈ کے برعکس، یہ کسی گمشدہ چیز کو حذف کرنے کی کوشش کرتے وقت ENOENT پیدا نہیں کرتا ہے)۔ کام کرنے کے لیے کم از کم لینکس کرنل 6.3-rc کی ضرورت ہے۔ ٹیبل آئی پی فلٹر کو تباہ کریں۔

ماخذ: opennet.ru

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