Ubuntu اپ گریڈ کے بعد OpenVPN نے جڑنا کیوں بند کر دیا؟
Ubuntu 22.04 اور 22.10 نے OpenSSL پالیسی، ڈیفالٹ سائفر گفت و شنید اور پیکیج ڈیفالٹ بدلے۔ پروفائل میں ترمیم سے پہلے ناکام ہونے والا مرحلہ پڑھیں۔
پچھلے ہفتے کام کرنے والے VPN پروفائل Ubuntu کی ریلیز اپ گریڈ کے بعد ٹوٹ جاتے ہیں، اور لاگ اپ گریڈ کا بہت کم ذکر کرتا ہے۔ جو یہ نام لیتا ہے وہ ناکام طبقہ ہے: TLS ہاتھ ملانا، ڈیٹا چینل کے لیے طے شدہ سائفر، نصب شدہ پیکیج، یا وہ OpenSSL نقل جو بائنری آغاز پر لوڈ کرتی ہے۔ ہر طبقے کی اپنی غلطی کی شکل اور اپنی مرمت ہے، اسی لیے درجہ بندی پہلا کام اور ترمیم دوسرا کام ہے۔ لاگ کے نام لینے تک پروفائل کو بے قصور سمجھیں۔
کون سا طبقہ ناکام ہوا: ہاتھ ملانا، سائفر، پیکیج یا لائبریری
پروفائل کو چھونے سے پہلے کلائنٹ کا لاگ پڑھیں۔ آؤٹ پٹ میں سب سے پہلی غلطی ہی طبقہ کی نشان دہی کرتی ہے؛ اس کے بعد چھپنے والی ہر چیز عموماً اسی پہلی ناکامی کا نتیجہ ہوتی ہے۔ جب کلائنٹ بالکل شروع نہ ہو تو VPN لاگ کھولنے کے لیے غلط فائل ہے۔
سرٹیفکیٹ اور دستخطوں کی شکایات، یا کلید کی لمبائی کے بارے میں پیغام، کنٹرول چینل اور اسے منظم کرنے والی لائبریری پالیسی سے آتے ہیں۔ البتہ DEPRECATED OPTION سے شروع ہونے والی وارننگ ڈیٹا چینل کی گفت و شنید سے تعلق رکھتی ہے۔
ایسی سطر Unrecognized option تیسری قسم ہے: نئی بائنری اب وہ ہدایت قبول نہیں کرتی جو پرانی برداشت کرتی تھی، اس لیے لائبریری ڈھیلی کرنے کے بجائے پروفائل دوبارہ لکھنا ہوگا۔ پیکیج کی ناکامیاں پھر مختلف دکھتی ہیں کیونکہ وہ کسی بھی ٹنل کوڈ کے چلنے سے پہلے ہوتی ہیں۔ غائب بائنری، لوڈ نہ ہونے والا پلگ ان، یا غلط کوڈ نام کی طرف اشارہ کرنے والا ذخیرہ — سب وہی شکل دیتے ہیں۔ چار علامات، دیکھنے کی چار جگہیں، اور مرمتوں کے درمیان تقریباً کوئی اوورلیپ نہیں۔
جب ہاتھ ملانا ناکام ہوتا ہے تو TLS پالیسی سرٹیفکیٹ مسترد کرتی ہے
Ubuntu 22.04 نے نظام کو OpenSSL 3 پر منتقل کیا، اور اس شاخ میں ڈیفالٹ سیکیورٹی سطح سرٹیفکیٹ دستخطوں اور کلید کے حجم میں 20.04 سے سخت ہے۔ پرانے ڈائجسٹ سے دستخط شدہ CA سرٹیفکیٹ، یا موجودہ حد سے کم کلید، اب ہاتھ ملانے کے دوران ناکام ہوتی ہے۔ چونکہ ابھی کچھ تصدیق نہیں ہوا، غلطی غلط پاس ورڈ یا مردہ سرور جیسی پڑھی جاتی ہے۔
تنگ مرمت صرف اسی کنکشن سے سائفر سٹرنگ جوڑتی ہے۔ ڈیسک ٹاپ ایڈیٹر میں پروفائل کھولیں، ایڈوانس سیٹنگز پر جائیں اور DEFAULT:@SECLEVEL=0 کو TLS سائفر فیلڈ میں رکھیں۔ NetworkManager کی کلید فائل [vpn] کے تحت وہی قدر لیتی ہے:
[vpn]
tls-cipher=DEFAULT:@SECLEVEL=0NetworkManager دوبارہ شروع کریں اور دوبارہ جڑیں، کیونکہ ڈیمون تجزیہ شدہ پروفائل کیش کرتا ہے اور ورنہ اپنے پاس موجود نقل ہی استعمال کرتا رہے گا۔ سطر رکھنے سے پہلے جانیں کہ یہ کیا کرتی ہے: یہ سیٹنگ سائفر کا نام نہیں بلکہ کئی سرٹیفکیٹ اور کلید پیرامیٹرز پر ایک حد ہے، اس لیے اسے کم کرنا ایک پروفائل کی قبولیت کو وسیع کرتا ہے۔ نوٹ کریں کہ کس سرور نے اس کی ضرورت محسوس کی اور جب آپریٹر تازہ مواد دوبارہ جاری کرے تو سیٹنگ چھوڑ دیں۔ البتہ /etc/ssl/openssl.cnf بدلنا اس فائل کو پڑھنے والے ہر پروگرام کے لیے وہی حد چھو دیتا ہے، جو VPN سے بہت آگے ہے۔
OpenVPN 2.6 گفت و شنید کے لیے سائفر کی فہرست چاہتا ہے
Ubuntu 22.10 نے OpenVPN 2.6 لایا، اور اس ریلیز میں --cipher خود سے ڈیٹا چینل منتخب کرنا بند کر دیتا ہے۔ سائفر طے شدہ data-ciphers فہرست میں بھی ہونا چاہیے، ورنہ کلائنٹ متروک ہونے کی وارننگ چھاپتا ہے اور پھر ٹنل اوپر نہیں لا پاتا۔
اسی دور کا NetworkManager پلگ ان اب بھی صرف پرانی ہدایت لکھتا تھا۔ یہ تفصیل تشخیص کو تقسیم کرتی ہے، کیونکہ ہاتھ سے درست شدہ پروفائل شیل سے جڑ سکتا ہے اور ڈیسک ٹاپ ایپلیٹ سے پھر بھی ناکام ہو سکتا ہے۔ فہرست کو کنکشن فائل میں [vpn] کے تحت شامل کریں:
data-ciphers=AES-256-CBCوہ قدر استعمال کریں جو سرور اعلان کرتا ہے، نہ کہ جو آپ کو یاد ہے؛ AES-256-GCM پیش کرنے والا سرور صرف CBC بتانے والی کلائنٹ فہرست سے گفت و شنید نہیں کرے گا۔ مینیجر دوبارہ شروع کریں اور دوبارہ جڑیں، پھر شیل سے کوشش دہرائیں اور سائفر واضح طور پر گفت و شنید اور متبادل دونوں کے لیے دیں:
sudo openvpn --config client.ovpn --data-ciphers AES-256-CBC --data-ciphers-fallback AES-256-CBCاگر وہ کمانڈ ٹنل اوپر لے آئے تو سرور، سرٹیفکیٹ اور اسناد سب درست ہیں، اور بچا ہوا واحد نقص مینیجر کا محفوظ کردہ آپشن ہے۔ keysize ہدایت کے بارے میں وارننگ اسی صفائی کا حصہ ہے: اس پر تبصرہ کریں اور اصل فائل پروفائل کے پاس رکھیں۔
پیکیج اور پلگ ان کی خرابیاں VPN خرابیوں جیسی لگتی ہیں
اپ گریڈ کے بعد ہر ناکامی خفیہ نگاری کی نہیں ہوتی۔ جس کوڈ نام کو ریلیز استعمال نہیں کرتی اس کے تحت شامل OpenVPN ذخیرہ ایسا پیکیج دیتا ہے جو کبھی نصب نہیں ہوتا، اس لیے lsb_release -a کیا رپورٹ کرتا ہے کا موازنہ اپنی شامل کردہ فہرست فائل سے کریں۔ غائب universe جزو یا سیکیورٹی جیب ایسا پیکیج دیتی ہے جو بالکل نہیں ملتا۔ دونوں صورتوں میں پروفائل اچھوتا اور ٹنل ناممکن رہتا ہے۔
VPN لاگ سے پہلے پیکیج مینیجر کی غلطی پڑھیں۔ اگر کلائنٹ کبھی نصب ہی نہ ہوا، تو پروفائل میں کتنی ہی ترمیم ہو، ہاتھ ملانا نہیں آئے گا۔
پوچھنا بند کرنے والے دو عنصری پروفائل اسی کہانی کا پلگ ان ورژن ہیں۔ چیلنج تصدیقی پلگ ان سے آتا ہے، اور جس اپ گریڈ نے اسے ہٹایا یا بدلا، وہ پروفائل کو سلامت چھوڑ کر سوال غائب کر دیتا ہے۔ کنکشن کے کام کرنے کے لیے دوسرا عنصر مٹانے کے بجائے معاون پلگ ان دوبارہ نصب کریں۔
وینڈر لائبریری پالیسی غلطی کے پیچھے چھپ سکتی ہے
ایک نمونہ پہچاننے کے قابل ہے کیونکہ وہ ہر پالیسی مرمت کو شکست دیتا ہے۔ ہارڈ ویئر وینڈر کا کنفیگریشن ٹول اپنی OpenSSL لائبریریاں نصب کر کے لوڈر کے تلاش راستے میں نظام کی نقلوں سے آگے رکھ سکتا ہے۔ پھر کلائنٹ ایسی لائبریری کے سامنے شروع ہوتا ہے جسے کسی نے اپ گریڈ نہیں کیا، اور آغاز کی ناکامی بالکل مسترد شدہ سرٹیفکیٹ جیسی دکھتی ہے۔
VPN پیکیج دوبارہ نصب کرنا یہ نہیں بدلتا کہ کون سی لائبریری پہلے ملے گی، اور TLS سطح کم کرنا ایسی لائبریری تک نہیں پہنچتا جو کبھی نظام سے نہ آئی ہو۔ لوڈر سے پوچھیں کہ بائنری درحقیقت کون سی خفیہ اشیاء حل کرتی ہے:
ldd /usr/sbin/openvpn | grep -i -E 'ssl|crypto'وینڈر کی نقل ہٹائیں یا دوبارہ ہدایت دیں، پھر وہی جانچ دوبارہ چلائیں۔ متوقع ورژن وہی ہونا چاہیے جو استعمال میں ہے، اس سے پہلے کہ پروفائل پر واپس جائیں۔
پرانا کلائنٹ پن کرنا وقت خریدتا ہے، حل نہیں
پچھلی کلائنٹ ورژن رکھنا اس وقت تک ٹنل بحال کرتا ہے جب تک یہ برقراری رہے۔ یہ اس پیکیج کی سیکیورٹی اپ ڈیٹس بھی منجمد کرتا ہے اور اگلے اپ گریڈ کے لیے وہی ٹوٹنا طے کرتا ہے، اس لیے اسے حل نہیں بلکہ تاریخ والا عارضی اقدام سمجھیں۔
اگر پھر بھی پن کریں، پیکیج کو واضح طور پر روکیں تاکہ بے نگرانی اپ گریڈ پن کو کالعدم نہ کر سکے، وجہ اور نظرثانی کی تاریخ لکھیں، اور فراہم کنندہ کی اگلی پروفائل ریلیز کے لیے یاد دہانی رکھیں۔ جس حالت پر نظر رکھنی چاہیے وہ موجودہ سائفر کی گفت و شنید کرنے والا سرور پروفائل ہے؛ وہ موجود ہو تو پن کا کوئی جواز نہیں رہتا۔ اس کے برعکس، غیر درج پن چھ ماہ بعد ایسی رکاوٹ بن جاتا ہے جسے کوئی سمجھا نہیں سکتا، کیونکہ لاگو کرنے والا گزر چکا ہے اور فائل کچھ درج نہیں کرتی۔
اگلی بار جب ریلیز اپ گریڈ کے بعد VPN مر جائے، پانچ سوال ترتیب سے پوچھیں: کس طبقے نے پہلی غلطی دی، TLS پالیسی نے سرٹیفکیٹ مسترد کیا، سائفر دونوں سمتوں میں قابل گفت و شنید ہے، پیکیج اور اس کا پلگ ان واقعی نصب ہوئے، اور عمل کون سی لائبریری لوڈ کرتا ہے۔ پانچوں کے صاف واپس آنے کے بعد ہی ڈاؤن گریڈ کا کوئی مطلب ہے۔