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

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

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

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

  • کنکشنز میں رینجز کے لیے سپورٹ (جوڑنا، پتوں کے کچھ بنڈلز اور پورٹس جو موازنہ کو آسان بناتے ہیں)۔ مثال کے طور پر، ایک سیٹ "وائٹ لسٹ" کے لیے جس کے عناصر ایک اٹیچمنٹ ہیں، "وقفہ" جھنڈا بتانا اس بات کی نشاندہی کرے گا کہ سیٹ اٹیچمنٹ میں رینجز کو شامل کر سکتا ہے (منسلک "ipv4_addr. ipv4_addr. inet_service" کے لیے پہلے درست فہرست بنانا ممکن تھا۔ فارم "192.168.10.35. 192.68.11.123" کے مماثل ہیں، اور اب آپ پتے کے گروپس کی وضاحت کر سکتے ہیں "80-192.168.10.35-192.168.10.40:"

    ٹیبل ip foo {
    وائٹ لسٹ سیٹ کریں {
    ipv4_addr ٹائپ کریں۔ ipv4_addr. inet_service
    پرچم وقفہ
    عناصر = { 192.168.10.35-192.168.10.40 192.68.11.123-192.168.11.125. 80}
    }

    سلسلہ بار {
    قسم فلٹر ہک prerouting ترجیحی فلٹر؛ پالیسی ڈراپ؛
    آئی پی صدر ip daddr. tcp dport @whitelist قبول کریں۔
    }
    }

  • سیٹ اور نقشہ کی فہرستوں میں، "typeof" ہدایت کا استعمال ممکن ہے، جو مماثل ہونے پر عنصر کی شکل کا تعین کرتا ہے۔
    مثال کے طور پر:

    ٹیبل ip foo {
    وائٹ لسٹ سیٹ کریں {
    آئی پی صدر کی قسم
    عناصر = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    سلسلہ بار {
    قسم فلٹر ہک prerouting ترجیحی فلٹر؛ پالیسی ڈراپ؛
    ip daddr@whitelist قبول کرتے ہیں۔
    }
    }

    ٹیبل ip foo {
    نقشہ addr2mark {
    آئی پی صدر کی قسم: میٹا مارک
    عناصر = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • NAT بائنڈنگز میں جوائنز استعمال کرنے کی اہلیت شامل کی گئی ہے، جو آپ کو نقشہ کی فہرستوں یا نامزد سیٹوں کی بنیاد پر NAT تبدیلیوں کی وضاحت کرتے وقت پتہ اور پورٹ کی وضاحت کرنے کی اجازت دیتا ہے:

    این ایف ٹی ایڈ رول آئی پی نیٹ پری ڈی این اے ٹی آئی پی ایڈر۔ پورٹ سے آئی پی صدر نقشہ { 1.1.1.1 : 2.2.2.2 تیس }

    nft نقشہ ip nat منزلیں شامل کریں { ٹائپ کریں ipv4_addr ۔ inet_service: ipv4_addr. inet_service \\; }
    این ایف ٹی ایڈ رول آئی پی نیٹ پری ڈی این اے ٹی آئی پی ایڈر۔ پورٹ سے آئی پی صدر۔ tcp dport نقشہ @ destinations

  • نیٹ ورک کارڈ کے ذریعے کئے گئے کچھ فلٹرنگ آپریشنز کے ساتھ ہارڈویئر ایکسلریشن کے لیے سپورٹ۔ ایکسلریشن ایتھول یوٹیلیٹی ("ethtool -K eth0 hw-tc-offload on") کے ذریعے فعال کیا جاتا ہے، جس کے بعد اسے "آف لوڈ" پرچم کا استعمال کرتے ہوئے مین چین کے لیے nftables میں چالو کیا جاتا ہے۔ لینکس کرنل 5.6 استعمال کرتے وقت، ہارڈویئر ایکسلریشن کو ہیڈر فیلڈ میچنگ اور آنے والے انٹرفیس کے معائنے کے لیے سپورٹ کیا جاتا ہے جس میں وصول کرنے، ضائع کرنے، ڈپلیکیٹنگ (dup) اور فارورڈنگ (fwd) پیکٹ کے ساتھ مل کر۔ نیچے دی گئی مثال میں، 192.168.30.20 ایڈریس سے آنے والے پیکٹوں کو چھوڑنے کی کارروائیاں نیٹ ورک کارڈ کی سطح پر کی جاتی ہیں، پیکٹوں کو کرنل تک منتقل کیے بغیر:

    # cat file.nft
    ٹیبل netdev x {
    سلسلہ y {
    ٹائپ فلٹر ہک انگریس ڈیوائس ایتھ0 ترجیح 10؛ جھنڈے اتارنے؛
    آئی پی صدر 192.168.30.20 ڈراپ
    }
    }
    # nft -f file.nft

  • قواعد میں خرابی کے مقام کے بارے میں بہتر معلومات۔

    # nft ڈیلیٹ رول ip yz ہینڈل 7
    خرابی: اصول پر کارروائی نہیں ہو سکی: ایسی کوئی فائل یا ڈائریکٹری نہیں۔
    اصول ip yz ہینڈل 7 کو حذف کریں۔
    ^

    # nft ڈیلیٹ رول ip xx ہینڈل 7
    خرابی: اصول پر کارروائی نہیں ہو سکی: ایسی کوئی فائل یا ڈائریکٹری نہیں۔
    قاعدہ آئی پی ایکس ایکس ہینڈل 7 کو حذف کریں۔
    ^

    # nft ٹیبل twst کو حذف کریں۔
    خرابی: ایسی کوئی فائل یا ڈائریکٹری نہیں؛ کیا آپ کا مطلب فیملی آئی پی میں ٹیبل 'ٹیسٹ' سے ہے؟
    ٹیبل twst کو حذف کریں۔
    ۔

    پہلی مثال یہ ظاہر کرتی ہے کہ ٹیبل "y" سسٹم میں نہیں ہے، دوسری یہ کہ "7" ہینڈلر غائب ہے، اور تیسری یہ کہ ٹیبل کا نام ٹائپ کرتے وقت ٹائپو پرامپٹ ظاہر ہوتا ہے۔

  • "meta sdif" یا "meta sdifname" کی وضاحت کر کے غلام انٹرفیس کو چیک کرنے کے لیے معاونت شامل کی گئی:

    ... meta sdifname vrf1 ...

  • دائیں یا بائیں شفٹ آپریشنز کے لیے سپورٹ شامل کی گئی۔ مثال کے طور پر، ایک موجودہ پیکٹ لیبل کو 1 بٹ سے چھوڑنے اور معمولی بٹ کو 1 پر سیٹ کرنے کے لیے:

    … میٹا مارک سیٹ میٹا مارک lshift 1 یا 0x1 …

  • توسیع شدہ ورژن کی معلومات کو ظاہر کرنے کے لیے "-V" اختیار کو نافذ کیا گیا۔

    # nft -V
    nftables v0.9.4 (Jive at Five)
    cli: readline
    json: ہاں
    minigmp: نہیں
    libxtables: ہاں

  • کمانڈ لائن کے اختیارات کو اب کمانڈ سے پہلے بیان کرنا ضروری ہے۔ مثال کے طور پر، آپ کو "nft -a list ruleset" کی وضاحت کرنے کی ضرورت ہے، اور "nft list ruleset -a" چلانے کے نتیجے میں ایک خرابی ہوگی۔

    ماخذ: opennet.ru

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