جو اسکرپٹ VPN کے اوپر آنے کے بعد چلنا ضروری ہے، اسے کنکشن کے مالک جزو سے ایک واقعہ درکار ہوتا ہے۔ پرانی نیٹ ورک ہک ڈائریکٹری میں رکھی گئی فائل ہر اس VPN کے لیے کال بیک نہیں ہے جو NetworkManager، pppd یا کوئی الگ OpenVPN عمل بنا سکتا ہے۔ ان مالکان میں سے ہر ایک مختلف ماحول کے ساتھ مختلف واقعہ بتاتا ہے، اس لیے ہک چننے سے پہلے مالک کی شناخت ضروری ہے۔ ورنہ اسکرپٹ درست ہے اور بس کبھی نہیں چلتی۔

NetworkManager کے زیرِ انتظام VPN کے لیے ڈسپیچر درست جگہ ہے، اور vpn-up درست عمل ہے۔

انٹرفیس واقعہ نہیں، vpn-up استعمال کریں

ڈسپیچر up کو vpn-up سے الگ کرتا ہے۔ پہلا فعال شدہ انٹرفیس بتاتا ہے؛ دوسرا فعال شدہ VPN کنکشن بتاتا ہے۔ Wi-Fi کا اوپر آنا صرف یہ بتاتا ہے کہ بنیادی ربط موجود ہے؛ سرنگ ابھی بات چیت کر رہی ہو سکتی ہے، یا کبھی تصدیق ہی نہ ہو۔

اسکرپٹ انٹرفیس اور عمل وصول کرتی ہے، جبکہ کنکشن کی تفصیلات ماحول کے ذریعے آتی ہیں، جن میں پروفائل UUID اور VPN کا IP انٹرفیس شامل ہے۔ آلات کے ناموں سے شناخت کا اندازہ لگانے کے بجائے وہ متغیرات پڑھیں۔

مطابقت کو ایک کنکشن تک محدود رکھیں

کنکشن UUID یا ڈسپیچر کی دی گئی کسی دوسری شناخت پر ملائیں، tun سابقے یا ppp0 پر نہیں۔ انٹرفیس کے نام مستحکم نہیں، ایک ہی وقت میں ایک سے زیادہ سرنگیں ہو سکتی ہیں، اور دو پروفائل ایک ہی ظاہری نام رکھ سکتے ہیں۔ tun سابقے پر ملانا یعنی اسکرپٹ آخرکار ایسے کنکشن کے لیے چلے گی جسے کسی نے چھونے کا ارادہ نہیں کیا تھا۔ جب دوبارہ جڑنا آلہ دوبارہ بناتا ہے تو یہ ایک پروفائل کے لیے دو بار بھی چل سکتی ہے۔

کام کو ایڈیمپوٹنٹ بنائیں۔ ہر بار بلانے پر راستہ شامل کرنے والا کال بیک آخرکار جدول کو نقلوں سے بھر دیتا ہے، اور روٹنگ توڑنے والی دوسری نقل ہوتی ہے۔

جانیں کہ فعال ہونا کیا ثابت نہیں کرتا

vpn-pre-up NetworkManager کے VPN کو مکمل فعال بتانے سے پہلے چلتا ہے، اور منتظم ان اسکرپٹ کا انتظار کرتا ہے۔ رکاوٹ والا مرحلہ صرف تب استعمال کریں جب کام واقعی وہیں کا ہو، کیونکہ سست جانچ اس فعال ہونے میں تاخیر کرتی ہے جسے باقی ہر جزو دیکھنے کا انتظار کر رہا ہے۔

راستوں کا موجود ہونا ثابت نہیں کرتا کہ کوئی اطلاق سن رہا ہے، کوئی نجی نام حل ہو رہا ہے، یا کوئی صارف نشست موجود ہے۔ انہیں محدود وقت کے ساتھ الگ جانچیں، اور پوری زنجیر دوبارہ آزمانے کے بجائے بتائیں کہ کون سی پرت ناکام ہوئی۔

جس سیاق میں اسکرپٹ چلتی ہے اس کا احترام کریں

ڈسپیچر کی اسکرپٹیں root کے طور پر، کسی بھی صارف نشست سے باہر چلتی ہیں۔ یہ نہ مانیں کہ لاگ اِن صارف کا ماحول، گرافیکل نشست یا کھلا کی رنگ دستیاب ہے۔ کسی کو بھی ڈیسک ٹاپ سیاق کی عدم موجودگی کا جواب ہر اسناد کو ہر عمل کے لیے پڑھنے کے قابل بنا کر نہیں دینا چاہیے۔ صارف نشست کا کام کسی صارف خدمت یا نشست معاون میں رکھیں جسے کال بیک صارف کا روپ دھارے بغیر اشارہ دے سکے۔

اسکرپٹ پر ملکیت اور اجازتیں بھی اہم ہیں۔ root کے طور پر چلنے والی اور ایسی فائل جسے کوئی بھی صارف بدل سکتا ہے، اختیارات بڑھانے کا راستہ ہے، اور یہ اس بات سے آزاد دریافت ہے کہ VPN کی منطق درست ہے یا نہیں۔

اس منقطع ہونے کی منصوبہ بندی کریں جو کبھی نہیں ہوتا

NetworkManager درج کرتا ہے کہ اچانک اختتام یا کنیکٹیویٹی کے ضیاع جیسے جبری منقطع ہونے کے لیے vpn-pre-down جاری نہیں ہوتا۔ اس لیے صرف نرم pre-down کے گرد بنی صفائی بناوٹ ہی سے نامکمل ہے۔ اسکرپٹ جو بھی مشترک حالت بدلتی ہے اسے کوئی دوسرا مالک چاہیے جو کریش کے بعد اسے بحال کر سکے، اور اس بازیابی کے راستے کو ماننے کے بجائے جانچنا چاہیے۔

ہک کو عام کنکشن، دوبارہ جڑنے، جان بوجھ کر منقطع ہونے اور کھنچے ہوئے کیبل کے ساتھ جانچیں۔ راز درج کیے بغیر UUID، عمل اور وہ انٹرفیس جو چلا، درج کریں۔ وہی ریکارڈ واحد قابلِ اعتماد ثبوت ہے کہ ہک آپ کے ارادے والے کنکشن کے لیے چلی، اور اگلی تبدیلی محفوظ بنانے والا بھی وہی ہے۔

متعلقہ مضامین