چابیاں ظاہر کیے بغیر دو OpenVPN پروفائلز کا موازنہ کریں
متنی diff اسی طرح اندرونی چابیاں بے نقاب کر سکتا ہے جیسے وہ تبدیل شدہ ہدایت دکھاتا ہے۔ محفوظ نقول پر کردار کے مطابق موازنہ کریں، پھر الگ ترمیم شدہ تشخیصی فائل بنائیں۔
دو پروفائلز، ایک جڑتا ہے دوسرا نہیں، اور وجہ دیکھنے کا تیز راستہ diff ہے۔ مسئلہ یہ ہے کہ وہی diff اندرونی نجی چابی، مستقل چابی اور فائل میں موجود کوئی بھی اسناد بلاک چھاپ دیتا ہے، اور لوگ توجہ دینے سے پہلے ہی نتیجہ چیٹ میں چپکا دیتے ہیں۔ کس چیز کا موازنہ کر رہے ہیں یہ طے کرنا حکم چلانے سے پہلے آتا ہے۔ محفوظ نقول پر ساخت اور کردار کا موازنہ کریں، اور جب کسی اور کو دیکھنا ہو تو الگ ترمیم شدہ فائل بنائیں۔
.ovpn فائل اصل میں کیا رکھتی ہے
ایک .ovpn فائل اختیاری اندرونی بلاکس والی ترتیب ہے۔ اس میں CA سند، کلائنٹ سند، نجی چابی، tls-auth یا tls-crypt چابی، اور بیرونی فائلوں کی طرف اشارہ کرنے والی یا اسناد مانگنے والی ہدایات ہو سکتی ہیں۔ دو فائلیں تقریباً ایک جیسی دکھائی دے سکتی ہیں اور صرف بلاک کے اندر مختلف ہو سکتی ہیں، یا ایسی ایک ہدایت میں مختلف ہو سکتی ہیں جو نقل و حمل کو مکمل بدل دے۔ سطروں کی تعداد نہیں بتاتی کہ ان میں سے کیا ہوا۔
چابی کے بلاک کے اندر فرق کسی چیز کا عوامی ثبوت نہیں ہے۔ دوبارہ جاری کی گئی سند اور نئی چابی والی سند ایک ہی شکل کی تبدیلی پیدا کر سکتی ہیں، اس لیے بلاک کا عدم مطابق کہتا ہے کہ مواد مختلف ہے، یہ نہیں کہ کس فیصلے نے اسے بنایا۔ اسے فیلڈز کے موازنے کا اشارہ سمجھیں، نتیجہ نہیں۔
سطر کے مطابق نہیں، کردار کے مطابق موازنہ کریں
کنکشن کی اپنی ترتیب کی پیروی کریں: پہلے آخری نقطہ اور نقل و حمل, پھر اعتماد اور متوقع شناخت، پھر صارف کی تصدیق، پھر راستے، DNS اور اسکرپٹ ہکس۔ یہ ترتیب وہی ہے جو کلائنٹ کرتا ہے، اس لیے پہلا فرق جو آپ کو ملے وہی پہلی چیز ہے جو کنکشن توڑ سکتی تھی۔ اس کے بجائے حروف تہجی کے مطابق موازنہ متعلقہ ترتیبات کو پورے نتیجے میں بکھیر دیتا ہے۔
فیلڈ سے واقف گزر ان اشیاء کو اسی ترتیب سے دیکھتا ہے۔ کلائنٹ جو کچھ انٹرایکٹو طور پر پوچھتا ہے وہ اعتماد کی سطروں کا نہیں، تصدیق کی سطر کا ہوتا ہے۔
remote،protoاور پورٹ، ہر کنکشن بلاک سمیت۔caاورcert: جاری کنندہ، موضوع اور میعاد ختم ہونے کی تاریخ۔- کیا نجی چابی بالکل موجود ہے، کبھی نہیں کہ اس میں کیا ہے۔
tls-authیاtls-cryptکی موجودگی اور چابی کی سمت۔- تصدیق کی ہدایات، کسی بھی اسناد فائل کے حوالے سمیت۔
- کنکشن کے وقت چلنے والے راستے، DNS اختیارات اور اسکرپٹ ہکس۔
جب فائل میں کئی کنکشن بلاک ہوں، ہر اختیار کو اس کے آخری نقطے کے ساتھ رکھیں۔ صرف پہلی remote سطر کا موازنہ اس متبادل کو چھوڑ سکتا ہے جو کلائنٹ اس نیٹ ورک پر واقعی چنتا ہے۔
سادہ diff غلط اوزار کیوں ہے
سادہ diff متن کے لیے بنا ہے، رازوں کے لیے نہیں۔ یہ نجی چابی کو خوشی سے اسکرول بیک میں چھاپ دے گا، اور آپ کو نہیں بتائے گا کہ جس ہدایت کو آپ دیکھ رہے ہیں اس کا ناکامی سے کوئی تعلق نہیں۔ فیلڈ نکالنا بیک وقت زیادہ محفوظ اور زیادہ پڑھنے کے قابل ہے، کیونکہ سند کا مواد بائٹس کی بجائے میٹا ڈیٹا کے طور پر موازنہ کیا جا سکتا ہے۔
openssl x509 -in ca.crt -noout -subject -issuer -enddate
openssl x509 -in client.crt -noout -subject -issuer -enddate
grep -E '^(remote|proto|port|tls-auth|tls-crypt|route|dhcp-option)' profile.ovpn
پہلے دو احکام چابی کو چھوئے بغیر شناخت اور اعتبار چھاپتے ہیں، اس لیے ان کا نتیجہ چپکانا محفوظ ہے۔ grep ہدایات کے نام اور قدریں چھاپتا ہے مگر کبھی بلاکس کے جسم نہیں، جو اسے درست پہلا گزر بناتا ہے جب آپ کو نقل و حمل یا راستہ بندی کا فرق شبہ ہو۔ اگر بلاک کا خود موازنہ کرنا ہو تو مواد کی بجائے اس کا ہیش موازنہ کریں۔
ٹکٹ کے لیے ترمیم شدہ نقل بنائیں
فرق کی وضاحت کے لیے فیلڈز کے نام اور کافی ساخت رکھتے ہوئے اصل راز اور غیر ضروری شناخت کنندگان ہٹا دیں۔ اسی شکل کا نشان پھر بھی بتاتا ہے کہ مواد کہاں ہے اور کتنا لمبا تھا، اس لیے طے کریں کہ کیا وہ بھی قابل قبول ہے۔ جو حکم آپ نے چلایا یاد ہے اس پر بھروسہ کرنے کی بجائے آخری منسلکہ خود چیک کریں۔ صرف مثال بنانے کے لیے کام کرنے والی اصل فائل میں ترمیم نہ کریں، کیونکہ ترمیم شدہ پروفائل کا چلنے کے قابل ہونا یقینی نہیں اور اسے دوبارہ کبھی درآمد نہیں کرنا چاہیے۔
اصل فائلوں کو ایک جیسے ناموں والے تین فولڈرز میں کاپی کرنے کی بجائے فائل کے نام اور ہیش سے پہچانا جانے والا رکھیں۔ ہیش سٹرنگ یہ ثابت کرنے کے لیے کافی ہے کہ کون سی فائل دیکھی گئی اور لیک ہونے پر کچھ خرچ نہیں کرتی۔ تبدیلی بند ہونے کے بعد نقول تراش دیں، تاکہ اگلے شخص کو ایک ہی مستند فائل ورثے میں ملے۔
موازنے کو ناکامی سے باندھے رکھیں
موازنہ اپنی لاگت کا حقدار تب ہے جب وہ ایک درآمد یا ایک کنکشن ناکامی کے بارے میں سوال کا جواب دے۔ پہلے ناکام ہونے والے مرحلے کا نام لیں، پھر صرف ان فیلڈز کا موازنہ کریں جن پر وہ مرحلہ منحصر ہے؛ کلائنٹ کی تمام اسناد ایک فولڈر میں جمع کرنا اگلی لیک کا امکان بڑھاتا اور اگلی تشخیص سست کرتا ہے۔ سوال جتنا تنگ، جواب دے سکنے والے فیلڈز کی فہرست اتنی مختصر۔
اگر نئی فائل آپریٹر سے آئی ہے تو اعتماد کے مواد کی جگہ لینے سے پہلے اس کا تقسیمی راستہ تصدیق کریں۔ تبدیلی کے بعد، وہ درآمد شدہ نقل جسے کلائنٹ نے واقعی چنا اور طے شدہ نتیجہ چیک کریں، کیونکہ کسی ہدایت کو دوسرا کلائنٹ ورژن نظر انداز یا مختلف طریقے سے پڑھ سکتا ہے۔ ڈسک پر موجود فائل چلنے والے کنکشن کا ثبوت نہیں۔ ہدایات کا مفہوم OpenVPN 2.6 رہنما میں.