Meshnet، Docker اور ان کے درمیان اجازت
میش کا ایک پیر شائع شدہ کنٹینر تک پہنچتے ہوئے میزبان کی اجازت اور Docker کے ترجمے سے گزرتا ہے۔ دونوں کو الگ الگ جانچیں، ورنہ غلط دائرہ منظور کر لیں گے۔
دو URL کسی پیر کے براؤزر سے ایک جیسے دکھ سکتے ہیں اور فائر وال کے لیے بالکل مختلف باتیں معنی رکھ سکتے ہیں۔ ایک ایسی خدمت کی طرف اشارہ کرتا ہے جو خود میزبان پر سن رہی ہے۔ دوسرا ایسے میزبان پتے کی طرف اشارہ کرتا ہے جس کا پورٹ کنٹینر نیٹ ورک میں شائع ہوا ہے، جہاں ترجمے کا ایک مرحلہ کنکشن کو کسی اور IP کے حوالے کرتا ہے۔ پیر بہ پیر میش میں، جو ہر پیر کے لیے اجازت سے مقامی نیٹ ورک تک رسائی کنٹرول کرتا ہے، وہی فرق پوری جانچ ہے۔
اجازت میزبان کے آخری نقطے سے متعلق ہے، ترجمہ Docker سے متعلق ہے، اور لاگ اِن اطلاق سے متعلق ہے۔ تین فیصلے، دیکھنے کی تین جگہیں۔
اشاعت کے بعد منزل کی پیروی کریں
ایک Linux Docker میزبان لیں جو کنٹینر کا پورٹ 80 میزبان کے پورٹ 8080 پر شائع کرتا ہے۔ ایک پیر 8080 پر میزبان کے میش پتے سے جڑتا ہے، میزبان کنکشن قبول کرتا ہے، اور منزل کا ترجمہ اسے کنٹینر کے پل پتے کی طرف، عام طور پر 172.17.0.2 جیسا کچھ، پورٹ 80 پر دوبارہ لکھتا ہے۔
جب کوئی قاعدہ اس بہاؤ کا معائنہ کرتا ہے، دلچسپ منزل کنٹینر ہے، میزبان نہیں۔ جو پالیسی صرف «اس مشین پر خدمت» کے بارے میں سوچتی ہے، وہ غلط شے کے بارے میں سوچتی ہے۔ درخواست میزبان پر اتری، مگر اسے کہیں اور پہنچایا جا رہا ہے۔
اسی لیے میش کی دستاویزات Docker کنٹینروں کو ان وسائل میں شمار کرتی ہیں جنہیں Linux پر مقامی نیٹ ورک اجازت کنٹرول کرتی ہے۔ اجازت عام VPN اجازت فہرست کے اندراج کا مترادف نہیں، اور دونوں کنٹرول ایک دوسرے کی جگہ نہیں لیتے۔ ایک فیصلہ کرتا ہے کہ پیر مقامی وسائل تک پہنچ سکتا ہے یا نہیں؛ دوسرا فیصلہ کرتا ہے کہ سرنگ راستہ کون سی منزلیں لے کر جاتا ہے۔
فیصلہ کریں کہ ایک اجازت کتنی مقامی رسائی دیتی ہے
پیر کو مقامی نیٹ ورک تک رسائی دینا ایک ہی کنٹینر کا فیصلہ نہیں۔ یہ اسی میزبان پر دیگر شائع شدہ خدمات کو بے نقاب کر سکتا ہے، اور میزبان کیسے آگے بھیجتا ہے اس کے مطابق مزید دور جا سکتا ہے۔ ایک ڈیش بورڈ کے لیے سوئچ دبانے سے پہلے مؤثر دائرے کا جائزہ لیں۔
پھر دیکھیں Docker پورٹ کہاں شائع کرتا ہے۔ 0.0.0.0 پر اشاعت ہر میزبان پتے پر ایک سننے والا بناتی ہے، جو میش اندراج کے ساتھ ساتھ ایک عام LAN اندراج بھی شامل کر سکتی ہے۔ اگر ضرورت صرف میش ہو، تو اشاعت کو اسی مخصوص پتے یا انٹرفیس سے باندھیں جس کا آپ ارادہ رکھتے ہیں، اور وسیع بندھن کو سہولت نہیں بلکہ الگ نتیجہ سمجھیں۔
میزبان کی آگے بھیجنے کی پالیسی اور اطلاق کی اپنی توثیق کو خدمت کے لیے کافی تنگ رکھیں۔ نجی دکھنے والا URL رسائی کنٹرول نہیں، اور جو کنٹینر اپنے پل نیٹ ورک کے ہر ماخذ پر بھروسا کرتا ہے وہ میش پیر کی منظوری کی وجہ سے محفوظ نہیں ہوتا۔ اطلاق کی توثیق تیسرا فیصلہ ہے، اور وہی واحد ہے جو جانتا ہے کہ صارف کون ہے۔ میزبان سطح کی اجازت یہ علم نہیں دے سکتی۔
اجازت کی جانچ کریں، صرف URL کی نہیں
منظور شدہ پیر سے بالکل وہی خدمت کھولیں اور تصدیق کریں کہ یہ کام کرتی ہے۔ پھر ایسی منزل آزمائیں جو مسترد ہی رہنی چاہیے اور تصدیق کریں کہ یہ کام نہیں کرتی۔ صرف خوشگوار راستے کی جانچ آپ کو بتاتی ہے کہ اجازت دی گئی؛ یہ نہیں بتاتی کہ حد وہیں ہے جہاں آپ سمجھتے ہیں۔
میزبان کی اصل خدمت کا الگ سے موازنہ کریں۔ اگر ڈیٹا بیس میزبان پر سن رہا ہے اور ڈیش بورڈ کنٹینر میں چل رہا ہے، تو وہ ایک ہی اجازت سے مختلف راستے لیتے ہیں اور میزبان کی آگے بھیجنے کی پالیسی انہیں یکساں طور پر کنٹرول نہ کرے۔ جائزہ نوٹ لکھنے سے پہلے درج کریں کہ کون سا کیا ہے۔
رسائی «ری سیٹ» کرنے کے لیے Docker کے جدول یا میش کلائنٹ کے قواعد خالی نہ کریں۔ دونوں مصنوعات اپنا پالیسی انضمام نصب کرتی ہیں، اور اسے مٹانا ایسا میزبان بناتا ہے جو کام کرتا دکھائی دیتا ہے مگر ان کنٹرولز کو نظر انداز کرتا ہے جنہیں جانچنے کو کہا گیا تھا۔ اگر قاعدہ غلط لگے تو اسے پڑھیں اور صرف وہی قاعدہ بدلیں۔ اگر آپ واضح نہ کر سکیں کہ قاعدہ کیا کرتا ہے، تو وہی نتیجہ ہے، اسے مٹانے کی وجہ نہیں۔
نتیجہ نظام کی اپنی اصطلاحات میں لکھیں
اہم بات وہ امتیاز ہے جو مصنوعہ واقعی نافذ کرتی ہے، جائزہ سانچے والا نہیں: میزبان کے آخری نقطے تک پہنچنے کی اجازت، روٹ شدہ نجی وسائل تک پہنچنے کی اجازت، اور اطلاق استعمال کرنے کی اجازت۔ پورٹ شائع کرنا ان تین فیصلوں کو وہیں چھوڑ دیتا ہے جہاں وہ تھے، اور جو جائزہ لینے والا انہیں ایک سمجھتا ہے وہ غلط دائرہ منظور کرے گا۔
میزبان کا پتہ، شائع شدہ پورٹ، کنٹینر کی منزل اور پیر کی اجازت ایک ہی جملے میں بیان کریں۔ وہ جملہ کوئی اور جانچ سکتا ہے، اور یہی اسے رائے کے بجائے نتیجہ بناتا ہے۔