زنجیر کا نام ہک نہیں ہے: iptables بمقابلہ nftables
زنجیر ایک برتن ہے؛ ہک طے کرتا ہے کہ کرنل اسے دیکھتا ہے یا نہیں۔ قواعد میں ترمیم سے پہلے iptables کے بلٹ اِن اور nftables کے بنیادی زنجیروں کا موازنہ کریں۔
دونوں فائر وال آگے بھیجی جانے والی VPN ٹریفک کو فلٹر کر سکتے ہیں، اور وہ قواعد کو پیکٹ کے راستے سے مختلف طریقوں سے جوڑتے ہیں۔ iptables میں میز کے اندر بلٹ اِن زنجیریں ہوتی ہیں، اسی لیے FORWARD ایک نامزد ہک نقطے کے طور پر موجود ہے۔ nftables زنجیر کے نام کو اس کی قسم، ہک اور ترجیح سے الگ کرتا ہے، جس کا مطلب ہے کہ FORWARD نام کی عام زنجیر کچھ بھی فلٹر نہیں کرتی۔ دونوں ماڈلوں کا موازنہ بتاتا ہے کہ کیوں ایک ٹول میں درست دکھنے والا اندراج دوسرے میں کوئی اثر نہیں رکھتا۔
زنجیر ایک برتن ہے۔ کرنل اسے دیکھتا ہے یا نہیں، یہ عمل درآمد اور اس بات پر منحصر ہے کہ قواعد کا مجموعہ اسے کیسے جوڑتا ہے۔
دو ماڈل، دو مختلف جوڑ
iptables میں filter میز تین بلٹ اِن زنجیروں کے ساتھ آتی ہے، INPUT، FORWARD اور OUTPUT، اور -N صارف کی متعین کردہ زنجیر بناتا ہے جو صرف اسی وقت اثر کرتی ہے جب ان میں سے کسی ایک سے اس پر چھلانگ لگائی جائے۔ nftables کی کتابچہ اس کے بجائے بنیادی زنجیریں بیان کرتی ہے، جو اپنی قسم، ہک اور ترجیح کا اعلان کرتی ہیں، اور عام زنجیریں، جو ایسا نہیں کرتیں۔ بنیادی زنجیر کوئی بھی نام رکھ سکتی ہے، اور FORWARD نام کی عام زنجیر اپنے لیبل سے کوئی خصوصیت حاصل نہیں کرتی۔ یہی پورا فرق ہے، اور صرف قاعدے کا متن دکھانے والے سبق میں یہ نظر نہیں آتا۔
مطابقت کے بیک اینڈ دوسری وجہ جوڑتے ہیں کہ کمانڈ کے نام سے رویے کا اندازہ نہ لگایا جائے۔ iptables کی دستاویزات ایسی کارروائیاں بتاتی ہیں جو iptables-nft کے تحت مختلف ہیں، لہٰذا مقامی nftables، iptables-nft اور پرانے قواعد کے مجموعے کو ایک کی تین ہجے نہیں بلکہ تین نظام سمجھیں۔
خرابی کو اس کے حقیقی سیاق میں پڑھیں
غائب میز، اجازت کی ناکامی، دستیاب نہ ہونے والی کرنل سہولت اور غائب نامزد زنجیر چار مختلف نتائج ہیں، اور ان میں سے صرف ایک زنجیر کے بارے میں ہے۔ ٹول کا ورژن، مطلوبہ پتہ خاندان اور میز، نیٹ ورک نیم اسپیس اور پہلی درست خرابی درج کریں۔ پھر دیکھیں کہ قواعد کا مجموعہ کس جزو کا ہے: فائر وال سروس یا مصنوعات کے زیرِ انتظام گیٹ وے اپنی زنجیریں اور ترتیب بنا سکتے ہیں۔ ان کے ساتھ مقامی زنجیر شامل کرنا زیرِ انتظام پالیسی کو اچھوتا رکھتا ہے اور فہرست کو مزید الجھا دیتا ہے۔
کنٹینر کا نیم اسپیس میزبان سے مختلف قواعد کا مجموعہ رکھ سکتا ہے، اس لیے غلط سیاق میں چلائی گئی کمانڈ یہ نہیں دکھا سکتی کہ کون سی زنجیر نے آگے بھیجا گیا پیکٹ دیکھا۔ توقع کی گئی زنجیر نظر نہ آنے پر اختیارات بڑھانا تشخیص نہیں ہے۔
کاؤنٹر رسائی ثابت کرتے ہیں، فیصلہ نہیں
قاعدے کے کاؤنٹر بتاتے ہیں کہ کسی قاعدے تک رسائی ہوئی۔ وہ یہ نہیں بتاتے کہ بعد کے قاعدے نے کارروائی کی اجازت دی، اور یہ ثابت نہیں کرتے کہ ہر متبادل راستہ مسترد ہوا۔ انہیں ایک بے ضرر مجاز بہاؤ کے دوران، قواعد کی ترتیب اور زنجیر کے جوڑ کے ساتھ پڑھیں، اور فیصلے کے بجائے ایک مشاہدے کے طور پر لیں۔ drop قاعدے پر غیر صفر کاؤنٹر کا مطلب ہے کہ ٹریفک اس سے ٹکرائی؛ جو ٹکرایا نہیں اس کے بارے میں یہ کچھ نہیں کہتا۔
کرنل کی IP فارورڈنگ بالکل الگ ترتیب ہے۔ زنجیر کا موجود ہونا فارورڈنگ کو فعال نہیں کرتا، اور جانا پہچانا لیبل نہ ہونا یہ معنی نہیں رکھتا کہ فارورڈنگ رک گئی۔
جس بہاؤ کی آپ حفاظت کرنا چاہتے ہیں اس کی وضاحت کریں
ڈی کپسولیشن کے بعد ایک کلائنٹ درخواست لکھیں: اس کا ماخذ، منزل، پتہ خاندان، اور یہ کہ وہ گیٹ وے پر ختم ہوتی ہے یا اس سے گزرتی ہے۔ مقامی سروس کا ان پٹ اور آگے بھیجی گئی ٹریفک مختلف مقامات پر دیکھی جاتی ہے، اس لیے انہیں مختلف قواعد اور مختلف جانچ درکار ہے۔ پل والے VPN کے لیے پل کا راستہ بھی جانچیں، کیونکہ IP سطح کی زنجیر ایتھرنیٹ فریموں کی خودکار نگرانی نہیں کرتی۔
دور دراز گیٹ وے بدلنے سے پہلے خودمختار بحالی رسائی محفوظ رکھیں۔ پھر اسی قواعد کے مجموعے کے تحت مطلوبہ بہاؤ اور ضروری مستردات کی تصدیق کریں۔ جانا پہچانا نام رکھنے والی نئی خالی زنجیر مرمت نہیں ہے۔
موازنہ ایک سوال پر ختم ہوتا ہے: اس پیکٹ کے لیے کرنل واقعی کون سا ہک بلاتا ہے؟ اس کا جواب دیں، اور زنجیر کا نام پھر اہم نہیں رہتا۔