OpenVPN کہتا ہے کہ ncp-disable نامعلوم ہے: اس کی جگہ کس نے لی؟
ncp-disable کا مطلب کبھی انکرپشن بند کرنا نہیں تھا، اور 2.6 نے یہ آپشن ہٹا دیا۔ معلوم کریں کہ کس بائنری نے خرابی پیدا کی، اور دونوں فریقوں پر data-cipher پالیسی درست کریں۔
کلائنٹ ncp-disable کا نام لینے والی آپشن خرابی کے ساتھ شروع ہونے سے انکار کر رہا ہے، جبکہ پروفائل پچھلی مشین پر کام کر رہا تھا۔ اس پیغام کا مطلب یہ نہیں کہ آپشن کی ہجے غلط ہے یا انکرپشن ٹوٹ گئی ہے۔ اس کا مطلب یہ ہے کہ آپ کے سامنے موجود بائنری اس ہدایت کو بالکل نہیں جانتی، اور اس کی دو بالکل مختلف وجوہات ہیں۔ کون سی لاگو ہوتی ہے یہ طے کرتا ہے کہ آپ پروفائل میں ترمیم کریں گے یا کلائنٹ بدلیں گے۔
خرابی نئی بائنری سے بھی آ سکتی ہے
نامعلوم آپشن کی خرابی سرنگ کے بارے میں نہیں، پارسر کے بارے میں ہے۔ OpenVPN 2.4 نے گفت و شنید کے قابل سائفر پیرامیٹرز شامل کیے، 2.5 نے انہیں بند کرنے والے سوئچ کو متروک قرار دیا، اور 2.6 نے اسے مکمل طور پر ہٹا دیا۔ اس لیے 2.3 یا 2.4 کے لیے لکھا گیا پروفائل فائل میں کچھ نہ بدلنے کے باوجود موجودہ کلائنٹ پر ناکام ہوتا ہے۔ شکایت کرنے والا ورژن نیا ہے، پرانا نہیں۔
کچھ بھی ترمیم کرنے سے پہلے معلوم کریں کہ کس قابلِ عمل فائل نے پیغام پیدا کیا۔ ڈیسک ٹاپ کلائنٹ اپنا انجن ساتھ لاتا ہے، جبکہ الگ نصب شدہ کمانڈ لائن بائنری کا اپنا ورژن ہوتا ہے۔ دونوں ایک ہی مشین پر مختلف ہو سکتے ہیں۔
openvpn --version آپ کی جانچی جانے والی بائنری کے لیے یہ طے کرتا ہے۔ GUI کلائنٹ وہ کمانڈ نہ دکھا سکتا ہے؛ اس صورت میں اس کی معلوماتی اسکرین یا ساتھ شامل لائبریری کا ورژن پڑھیں۔
اس آپشن نے اصل میں کیا کنٹرول کیا
یہ ہدایت کرپٹوگرافک پیرامیٹرز کی گفت و شنید بند کرتی تھی، اس لیے دونوں سرے cipher سیٹنگ کے زیرِ ہدایت پرانے انتخاب کے رویے پر لوٹ جاتے تھے۔ اس نے کبھی انکرپشن بند نہیں کی اور سرنگ کو کبھی سادہ متن نہیں بنایا۔ اسے سیکیورٹی سوئچ کے طور پر پڑھنا پہلا غلط موڑ ہے، اور یہ ایسی تبدیلیوں کی طرف لے جاتا ہے جو کنکشن کو بہتر کی بجائے بدتر بنا دیتی ہیں۔
گفت و شنید موجود ہو تو مساوی سوال یہ ہے کہ ہر فریق کون سے سائفر استعمال کرنے کو تیار ہے۔ یہ پالیسی کا سوال ہے، اور پالیسی 2.5 سے آگے data-ciphers میں رہتی ہے۔
پرانا نام ncp-ciphers 2.4 کا ہے۔ دونوں نام فریقوں کے درمیان ملانا یکطرفہ گفت و شنید کی ناکامیوں کا عام ذریعہ ہے۔ دونوں کو رکھنے والا پروفائل وہ پروفائل ہے جسے دو لوگوں نے مختلف اوقات میں ایڈٹ کیا۔
پالیسی بدلیں، ہجے نہیں
دونوں فریقوں پر مطلوبہ مشترکہ انتخاب کے ساتھ data-ciphers مقرر کریں، اور فہرست کو اتنا مختصر رکھیں کہ جائزہ لینے والا اس پر غور کر سکے۔ کوئی ایک من مانی سطر بدلنے سے کچھ ثابت نہیں ہوتا؛ نتیجہ دونوں فہرستوں کے اشتراک اور TLS اسٹیک کی معاونت پر منحصر ہے۔ کنفیگریشن کی بجائے گفت و شنید کا نتیجہ پڑھ کر تصدیق کریں کہ فریق متفق ہیں۔ پھر دونوں فہرستیں تعیناتی ریکارڈ میں لکھیں تاکہ اگلی تبدیلی معلوم حالت سے شروع ہو۔
پروفائل کو اس کے مالک کے ذریعے اپ ڈیٹ کریں۔ متروک ہدایت چھپانے کے لیے نظرانداز کا آپشن شامل کرنا پالیسی کے سوال کو بغیر جواب چھوڑ دیتا ہے۔
اگر کسی پرانے فریق کو واقعی مطابقت کی ضرورت ہو تو اسے اسی تعیناتی تک محدود رکھیں۔ جدید فریقوں کو جوڑنے کے لیے متروک رویے کو عالمی سطح پر بحال کرنا پیشگی شرط نہیں ہے۔ استثنا کو اس فریق کا نام لینا چاہیے جس کے لیے وہ موجود ہے۔
سائفر فہرست جیسی دکھنے والی دو سطریں، جو فہرست نہیں ہیں
دو سائفر سطروں کو تہہ کرنا بھی گفت و شنید بحال نہیں کرتا، اور نتیجہ ایسا پروفائل ہوتا ہے جو فہرست جیسا دکھتا ہے مگر ایک ہی قدر کی طرح برتاؤ کرتا ہے۔ ایک سطر میں AES-256-CBC اور اگلی میں CBC لکھنا عام کوشش ہے۔ CBC اکیلا الگورتھم نہیں، موڈ کا نام دیتا ہے، اس لیے پارسر اسے ایک جگہ قبول اور اگلی جگہ مسترد کر سکتا ہے۔ بار بار دی گئی cipher ہدایات امیدوار جمع کرنے کی بجائے وہی آپشن دو بار مقرر کرتی ہیں۔
دوسری شاخ کے لیے لکھی گئی گائیڈ سے فہرست کاپی کرنے کی بجائے ہدف بائنری پر openvpn --show-ciphers سے قبول شدہ نام جانچیں۔ ریلیز کے درمیان فہرست بدلتی ہے۔ ایک شاخ میں درست نام دوسری میں درست ہونا ضروری نہیں۔
اگر مقصد کارکردگی کا موازنہ تھا تو الگورتھم اور کام کا بوجھ درج کریں۔ CBC پر جانا انکرپشن نہ ہونے کی پیمائش نہیں ہے۔
دیکھیں کہ کنکشن نے اصل میں کیا طے کیا
نئی کنکشن اٹھائیں اور لاگ میں ڈیٹا چینل کی سطر پڑھیں، جو استعمال ہونے والا سائفر بتاتی ہے۔ کنٹرول چینل سوٹ الگ سے طے ہوتا ہے، اس لیے فائل میں اجازت شدہ فہرست صرف وہی دکھاتی ہے جو پیش کیا گیا تھا۔ جب دونوں فریق نے کچھ ایسا چنا جس کی آپ توقع نہیں کر رہے تھے تو دیکھنے کی جگہ سرنگ کا انٹرفیس نہیں، فہرستیں ہیں۔ کسی بھی تبدیلی کے بعد دوسرے کنکشن پر نتیجہ تصدیق کریں، کیونکہ ایک بار دوبارہ شروع ہونے سے کیش شدہ سیشن دوبارہ استعمال ہو سکتا ہے۔
گفت و شنید کا نتیجہ پروفائل ورژن کے ساتھ تعیناتی ریکارڈ میں رکھیں۔ کون سا سائفر واقعی ٹریفک کی حفاظت کر رہا ہے، اس اگلے سوال کا جواب یہی حقیقت دیتی ہے۔