OpenVPN کا نظارتی ساکٹ: کنٹرول چینل، میٹرکس نہیں
منظور شدہ نظارتی کلائنٹ کنٹرول احکام رکھتا ہے، صرف پڑھنے کا منظر نہیں۔ Unix ساکٹ کی ملکیت رکھیں، اسنیپ شاٹس کے لیے سیشن چھوڑ دیں اور TCP باہر رکھیں۔
نظارتی انٹرفیس سے ایک بار حیثیت پوچھیں اور یہ حیثیت پورٹ جیسا لگنے لگتا ہے۔ لیکن ایسا نہیں ہے۔ کلائنٹ منظور ہونے کے بعد وہ پروٹوکول کے کنٹرول احکام جاری کر سکتا ہے، اور اس کلائنٹ کو چلانے والا اکاؤنٹ وہ سب کچھ وراثت میں پاتا ہے جو یہ احکام ڈیمون کے ساتھ کر سکتے ہیں۔ اسے صرف پڑھنے والی فیڈ سمجھنا وہی غلطی ہے جو مانیٹرنگ انٹیگریشن کو بغیر تصدیق کے کنسول بنا دیتی ہے۔
یقین، اور اس کی قیمت
یقین یہ ہے کہ نظارتی سننے والا میٹرکس اینڈ پوائنٹ کے برابر ہے: ایک جمع کرنے والا لگائیں، کاؤنٹر پڑھیں، آگے بڑھیں۔ دراصل جمع کرنے والا کنٹرول صلاحیتوں والا سیشن کھولتا ہے، اور تعیناتی کے بارے میں آپ کا ہر دوسرا مفروضہ اب اس پر منحصر ہے کہ وہ جمع کرنے والا اچھا برتاؤ کرے۔
انٹرفیس میں کوئی چیز صرف پڑھنے کے موڈ کا اعلان نہیں کرتی۔ چننے کے لیے کوئی مبصر کردار نہیں ہے، اور کنفیگریشن میں صارف نام اسے پیدا نہیں کرتا۔
منظور شدہ کلائنٹ اصل میں کیا رکھتا ہے
کمیونٹی ڈیمون ایک وقت میں صرف ایک فعال نظارتی کلائنٹ قبول کرتا ہے۔ اس ایک سلاٹ کا مطلب یہ ہے کہ GUI، اسکرپٹ اور مانیٹرنگ ایجنٹ سب نہیں جڑ سکتے؛ پہلا سیشن تھامے رکھتا ہے تو دوسرا انتظار کرتا ہے یا ناکام ہو جاتا ہے۔ اگر آپ کا ڈیزائن بیک وقت کئی قارئین فرض کرتا ہے تو یہ پہلے ہی غلط ہے۔
جہاں وقفے وقفے کا اسنیپ شاٹ کافی ہو، وہاں حیثیت فائل کی آؤٹ پٹ براہ راست سیشن کے بغیر وہی اعداد دیتی ہے۔ اس فائل کو وقفوں پر لکھنا اور عام فائل اجازتوں سے پڑھنا جمع کرنے والے کو کنٹرول سطح سے مکمل طور پر باہر رکھتا ہے، اور زیادہ تر مانیٹرنگ کو درحقیقت یہی ترتیب درکار ہوتی ہے۔
اپنا ساکٹ، کھلا نہیں
Unix ڈومین ساکٹ کنٹرول راستہ نیٹ ورک سے باہر رکھتا ہے، جس سے بدلتا ہوا ٹنل پتہ مسئلے سے نکل جاتا ہے۔ یہ اجازت کا سوال نہیں ہٹاتا۔ والد ڈائریکٹری سروس اکاؤنٹ کے لیے لکھنے کے قابل اور کنٹرولر کے اکاؤنٹ کے لیے قابل رسائی ہونی چاہیے، اور یہ دو الگ اجازتیں ہیں:
management /run/openvpn/office-management.sock unix /etc/openvpn/management.password
management-client-user vpn-observer
management-client-group vpn-observerپاس ورڈ فائل اپنی پہلی سطر میں نظارتی راز رکھتی ہے۔ اس فائل کو کسی بھی دوسری اسناد کی طرح محفوظ رکھیں، اور اس کا مواد لاگز اور معاونت ٹکٹوں سے دور رکھیں۔ صارف اور گروپ کی پابندیاں Unix ساکٹ پر ہم منصب جانچ ہیں، فائل سسٹم اجازتیں نہیں، اس لیے مطلوبہ عمل کو فائل تک رسائی اور مماثل شناخت دونوں درکار ہیں۔
اجازت کی خرابی دور کرنے کے لیے ساکٹ کو سب کے لیے کھولنا وہ واحد اصلاح ہے جس سے بچنا چاہیے۔ یہ مقامی کنٹرول چینل کو ایسی چیز بنا دیتا ہے جسے میزبان پر کوئی بھی عمل چلا سکتا ہے۔
TCP پر اسے شائع کرنا وہی ڈیزائن نہیں
سننے والے کو TCP پورٹ پر منتقل کرنا اسے زیادہ محفوظ یا زیادہ آسان نہیں بناتا۔ نظارتی پاس ورڈ صاف متن میں بھیجا جاتا ہے، اس لیے TCP سننے والا اسناد اور سیشن دونوں کو ہر اس شخص کے سامنے بے نقاب کرتا ہے جو راستہ دیکھ سکتا ہے۔ کسی دوسرے میزبان سے اس تک پہنچنے کے لیے مجاز انتظامی چینل، یا چھوٹا مقامی ایجنٹ درکار ہے جو صرف وہی مشاہدات دکھائے جو آپ کو درکار ہیں۔
صاف متن کی ترسیل پر پاس ورڈ بغیر رازداری کے تصدیق ہے، اور یہ امتزاج دکھنے سے زیادہ برا ہے کیونکہ یہ محفوظ محسوس ہوتا ہے۔
وہ آغاز کے انحصارات جو آپ نے نہیں مانگے
کئی نظارتی اختیارات ڈیمون کا زندگی چکر بدل دیتے ہیں۔ کنٹرولر کے جڑنے تک آغاز روکے رکھنا، یا کنٹرولر کے غائب ہونے پر اختتام کرنا، ایک اختیاری مبصر کو سخت انحصار بنا دیتا ہے۔ پھر کریش ہونے والا مانیٹرنگ ایجنٹ ٹنل کو بھی ساتھ لے ڈوبے گا۔
ساکٹ کے علاوہ کچھ بھی فعال کرنے سے پہلے ان اختیارات کا جائزہ لیں۔ اختیاری مشاہدہ اختیاری ہی رہنا چاہیے، اور ری اسٹارٹ پالیسی کو گرافس کے لیے شامل کیے گئے جمع کرنے والے سے نہیں جوڑنا چاہیے۔
ناکام عمل کے بعد بچی ہوئی ساکٹ فائل اس بات کا ثبوت نہیں کہ سننے والا موجود ہے۔ اسے ہٹانے سے پہلے پہچانیں کہ کون سا نمونہ راستے کا مالک ہے، اور چلتی ہوئی ڈیمون کے نیچے فائلیں مٹانے کے بجائے سروس کے اپنے بحالی بہاؤ کو استعمال کریں۔
قبولیت کیسی دکھتی ہے
چار جانچیں ڈیزائن کو ڈھانپتی ہیں: مطلوبہ کنٹرولر شناخت جڑتی ہے، اس شناخت کے بغیر عمل مسترد ہوتا ہے، بغیر تنبیہ منقطع ہونے والے کنٹرولر سے ڈیمون بچ جاتا ہے، اور کنٹرول شدہ ری اسٹارٹ کے دوران ٹنل اب بھی ٹریفک لے جاتا ہے۔ کامیاب نظارتی کنکشن صرف کنٹرول سطح کو ثابت کرتا ہے۔ یہ نہیں بتاتا کہ نجی ایپلیکیشن کی ٹریفک کام کرتی ہے یا نہیں، اس لیے اسے الگ سے جانچیں۔ چاروں نتائج وہاں لکھیں جہاں اگلا آپریٹر انہیں پا سکے۔
نظارتی انٹرفیس کی دستاویز ایک کلائنٹ کے ماڈل اور پروٹوکول کی مراعات یافتہ نوعیت بیان کرتی ہے، اور ڈیش بورڈ اس کی طرف موڑنے سے پہلے پڑھنے کے لائق حصہ یہی ہے۔