ملف .ovpn القديم يفشل على Ubuntu 24.04: أي الأسطر تحذف
يثبّت Ubuntu 24.04 الإصدار OpenVPN 2.6، وملف صدّر للإصدار 2.4 يموت على خيارات أُزيلت. احذف keysize وncp-disable، ثم أصلح ns-cert-type.
يُنزَّل الملف الشخصي ويُستورد ثم يتوقف عند السطر 12 من الملف برسالة Unrecognized option تذكر keysize. لم يتغير شيء في الحساب، وما زال الخادم يقبل عملاء آخرين. الذي تغيّر هو العميل نفسه: يثبّت Ubuntu 24.04 الإصدار OpenVPN 2.6، بينما كُتب التصدير للإصدار 2.4. الإصلاح سلسلة قصيرة من الحذوفات، والترتيب مهم لأن كل خيار قديم يوقف التحليل قبل أن يُقرأ الخيار التالي إطلاقًا.
اقرأ سطر الخطأ قبل أن تلمس الملف
يذكر OpenVPN الملف والسطر الذي توقف عنده التحليل، لذا لا يمكنك إصلاح أكثر من مشكلة واحدة في كل تشغيل. ابدأ تشغيل الملف الشخصي من الطرفية لا من تطبيق سطح المكتب، لأن التطبيق يبتلع stderr عادةً ورقم السطر هو المؤشر الموثوق الوحيد الذي تحصل عليه: sudo openvpn --config /etc/openvpn/client/provider.ovpn. أصلح ذلك السطر، ثم أعد التشغيل، وتوقّع أن يذكر الفشل التالي خيارًا مختلفًا.
يظهر خطأ التحليل دائمًا قبل أي مصافحة TLS، لذا فرسالة تذكر شهادة تكون قد تجاوزت مرحلة الصياغة بالفعل. هذا التمييز يمنعك من تحرير ملف لا يفشل إلا في المصادقة. اقرأ الكلمة الأولى من الرسالة لا وسطها.
ثلاث فئات للفشل وثلاث طرق إصلاح مختلفة
تفشل التصديرات القديمة بثلاث طرق متمايزة، ودمجها في مشكلة واحدة هو سبب قيام الناس بإعادة تثبيت حزم لم تكن معطوبة قط. صياغة الرسالة تخبرك بالفئة التي أنت فيها قبل أن تفتح الملف.
- أخطاء التحليل تذكر ملفًا وسطرًا وتتوقف قبل وجود أي حركة مرور.
- أخطاء التفاوض تتصل، ثم تبلغ أن الطرفين لم يتفقا على تشفير مشترك أو قناة بيانات مقبولة.
- أخطاء المصادقة تصل أبعد من غيرها وتذكر شهادة أو مستخدمًا أو بيانات اعتماد مرفوضة.
تحرير الملف الشخصي لا يصلح إلا الفئة الأولى. التفاوض يحتاج قرارًا على طرفي النفق، وبيانات الاعتماد المرفوضة ليست مشكلة صياغة على الإطلاق. إذا ذكرت رسالتك تشفيرًا مشتركًا أو قناة بيانات، فلن تغيّر الحذوفات أدناه شيئًا.
احذف الخيارات التي أزالها 2.6، بهذا الترتيب
كل سطر من هذه الأسطر يوقف التحليل بمفرده، لذا يبلغ عنها العميل واحدًا تلو الآخر. اعمل على القائمة بالترتيب وأعد التشغيل بعد كل حذف.
احذف keysize أولًا، لأنه لا مقابل حديث له وغالبًا ما يشير وجوده إلى تشفير يرفضه العميل الحالي على أي حال. ثم احذف ncp-disable، الذي كان يتحكم في تفاوض التشفير، وأُهمل في 2.5 واختفى في 2.6. استبدل ns-cert-type server بـ remote-cert-tls server، الذي يعبّر عن النية نفسها عبر فحص مدعوم. يسرد سجل تغييرات 2.6 الإزالات المتبقية بجانب بدائلها، فأي شيء يرفضه المحلل ما زال له جواب موثق.
احتفظ بنسخة من الملف الشخصي الأصلي قبل أول تعديل. المزوّدون يعيدون توليد التصديرات، ومقارنة diff بالملف غير الممسوس أسرع طريقة للفصل بين تغييراتك وتغييراتهم. إذا سمح حذف ما للعميل بالبدء لكن النفق ما زال يفشل، فقد انتقلت إلى فئة التفاوض والأسطر المتبقية ليست السبب. ضع إصدار العميل في اسم الملف كي يعرف الشخص التالي أي إصدار تستهدفه التعديلات.
أبقِ BF-CBC يعمل كاحتياطي محدود النطاق فقط
بعض المزوّدين ما زالوا ينهون الجلسة على BF-CBC، الذي لن يتفاوض عليه OpenVPN 2.6 دون مساعدة لأن التشفير ذو كتلة 64 بت. الإصلاح الضيق هو قائمة احتياطية مع مزوّد OpenSSL القديم، لا تخفيض إصدار العميل كله.
providers legacy default
data-ciphers AES-256-GCM:AES-128-GCM
data-ciphers-fallback BF-CBC
السطر الأول يحمّل المزوّد القديم كي يستطيع OpenSSL إنشاء ذلك التشفير، والثاني يحفظ التفاوض الحديث للأقران الذين يدعمونه، والثالث يُطبَّق فقط حين لا يقدم الخادم ما هو أفضل. هذا إضعاف متعمد للنفق، لذا سجّل سبب وجوده بجانب الملف. اطلب من المزوّد تصديرًا معادًا في الوقت نفسه، فالاحتياطي جسر لا وجهة.
لا تلجأ إلى --compat-mode كجواب شامل. إنه يغيّر عدة سلوكيات دفعة واحدة، بما فيها افتراضات التفاوض وإعادة التفاوض، فلن تعرف أبدًا أي تغيير هو المهم. فضّل الأسطر الثلاثة الصريحة أعلاه، لأن كل واحد منها يعلن أثره.
تحقّق من الملف الشخصي الذي يحمّله العميل فعليًا
غالبًا ما تُنسخ الاتصالات المستوردة إلى دليل نظام، لذا فتحرير الملف في مجلد التنزيلات قد لا يغيّر شيئًا على الإطلاق. اعثر على النسخة التي تعمل: sudo grep -rl "remote " /etc/NetworkManager/system-connections /etc/openvpn. ثم ابدأ النفق واقرأ سطر السجل الذي يبلغ عن تشفير قناة البيانات المختار فعليًا. اتصال يكمل المصافحة على الاحتياطي يخبرك أن الخادم لم يقدم شيئًا حديثًا.
اختبر من شبكة ليست التي يتوقعها المزوّد، كي لا تتنكر بوابة أسيرة أو شبكة ضيوف مفلترة في صورة عطل في الملف الشخصي. سجّل إصدار العميل بجانب أي طلب دعم.
بعد أن يصبح النفق قائمًا، أرسل طلبًا واحدًا يجب أن يعبره وآخر يجب ألا يعبره، ثم أكّد أن استجابة خادم الأسماء تغيّرت كما توقعت. إذا حُلِّل الملف الشخصي الآن لكن الاتصال ما زال يفشل، فقد تركت مشكلة الصياغة خلفك وسيذكر نص الخطأ الفئة الجديدة. أبقِ الملف المعدّل في نظام إدارة الإصدارات بجانب ملاحظة تسمّي إصدار OpenVPN الذي يستهدفه.