عند تشغيل auth-nocache يختفي تحذير تخزين كلمة المرور مؤقتًا، مع نسخة بيانات الاعتماد التي كان OpenVPN يحتفظ بها لإعادة التفاوض التالية. ويتوقف ما إذا كان ذلك سيتحول إلى مطالبة أو إعادة محاولة صامتة أو نفق منقطع على مصدر بيانات الاعتماد في المرة الثانية. وهذا يجعل الأمر مقارنة بين أشكال النشر بدلًا من حكم على الخيار. اقرأ الشكل الذي تشغّله فعلًا قبل تعديل أي ملف تعريف.

من أين يجب أن تأتي المجموعة الثانية من بيانات الاعتماد

يطبّق OpenVPN الخيار auth-nocache على الأسرار التي يجمعها auth-user-pass وaskpass: فبعد استخدامها يتخلص منها بدلًا من الاحتفاظ بها للمصافحة التالية. تصل إعادة التفاوض وفق مؤقت، مرة كل ساعة افتراضيًا، لذا يصل الطلب الثاني بعد وقت طويل من مغادرة الشخص الذي كتب كلمة المرور. تلك الفجوة هي القصة كلها. مع بقاء التخزين المؤقت مفعّلًا، يعيد العميل تشغيل النسخة المخزنة دون سؤال أي أحد؛ ومع إيقافه، عليه أن يجد السر في مكان آخر أو أن يفشل.

لذا اسرد كل مكان يمكن أن يأتي منه السر في تلك اللحظة، وكن صادقًا بشأن أي منها موجود على المضيف. شخص عند طرفية، أو ملف يستطيع auth-user-pass أو askpass قراءته، أو رمز جلسة يصدره الخادم، هي الثلاثة المهمة هنا. إذا لم يتوفر أي منها، تفشل إعادة التفاوض بعد ساعة من التغيير بدلًا من لحظة إجرائه.

ثلاثة أشكال، ثلاث نقاط فشل

عميل مكتبي أمامه شخص هو الحالة الخفيفة: تعود المطالبة، ويكتب شخص كلمة المرور مرة أخرى، والتكلفة هي الانتباه. الخدمة أو الحاوية أو الموجّه الذي يشغّل OpenVPN دون طرفية هي الحالة القاسية، إذ لا يوجد من يجيب، والاتصال الذي كان صامتًا سابقًا ينهي النفق الآن. الشكل الهجين يقع بينهما، ويتصرف كحالة المكتب حتى تختفي الجلسة التي يمكنها الإجابة على المطالبة. والفارق بينها ليس وجود واجهة رسومية، بل وجود مصدر لبيانات الاعتماد في وقت إعادة التفاوض.

صنّف نشرك ضمن أحد هذه الثلاثة قبل تغيير أي شيء، لأن النصيحة التي تجدها على الإنترنت مكتوبة دائمًا تقريبًا للحالة الأولى. وتطبيق إجابة المكتب على خدمة بلا طرفية هو الطريق الذي يبدأ به نفق عمل لأشهر في السقوط كل ساعة.

توجيه أم علامة: اختر واحدًا واعرف أيّهما استخدمت

داخل ملف التعريف يكون auth-nocache سطرًا مستقلًا؛ وفي أمر يسمّي ملف تعريف صراحةً يكون علامة على سطر الأوامر، ويسرد دليل OpenVPN الشكلين. وكلاهما يفعل الأمر نفسه في الاحتفاظ ببيانات الاعتماد، ولا يمس أي منهما نوع الواجهة أو يصلح تحذيرًا غير ذي صلة في السجل نفسه. الفرق هو الاستمرارية: فالعلامة تغطي تلك التشغيلة فقط، لذا لن يملكها خدمة يُعاد تشغيلها من ملف وحدة أو سكربت تغليف ما لم يمررها الغلاف أيضًا.

auth-nocache
openvpn --config /path/client.ovpn --auth-nocache

قرّر أي مكوّن يملك الإعداد، وغيِّره هناك ولا في مكان آخر. ملف تعريف عُدّل على حاسوب محمول زائد وحدة systemd تتجاوزه بعلامة هو الاقتران الذي ينتج سلوكًا متناقضًا بعد إعادة التشغيل.

ملف بيانات الاعتماد ينقل السر بدلًا من حذفه

توجيه auth-user-pass إلى ملف يمنح كل إعادة تفاوض لاحقة مصدرًا، ويضع كلمة المرور أيضًا في مكان ينجو من إعادات التشغيل. اسأل من يستطيع قراءة ذلك الملف، وهل يظل بإمكان الخدمة قراءته بعد إسقاط الامتيازات، وماذا يحدث عندما يُركَّب نظام الملفات للقراءة فقط أو يخفي عرض حاوية المسار. سرّ على القرص وسرّ في الذاكرة مشكلتان مختلفتان، وحلّ إحداهما يترك الأخرى في مكانها. التدوير هو الخطوة التي تُتجاهل: كلمة مرور تُغيَّر على الخادم ولا تُغيَّر في الملف تنتج فشلًا يبدو كعطل شبكة.

أبقِ الملف مملوكًا للحساب الذي يشغّل الخدمة، غير مقروء لسواه، وخارج النسخ الاحتياطية التي تغادر المضيف. يمنح خيار auth-gen-token على جانب الخادم في OpenVPN العميل رمز جلسة بعد تسجيل دخول ناجح، وهو شيء أصغر يُترك ملقى من كلمة مرور الحساب. اكتب خطوة التدوير بجوار الملف في كل الأحوال، لأن الملف يعيش عادةً أطول من الشخص الذي أنشأه.

تمديد إعادة التفاوض ينقل التكلفة، ولا يزيلها

الاقتراح الآخر هو رفع reneg-sec حتى تصبح المطالبة نادرة بما يكفي لتُتجاهل. هذا يعيد كتابة جدول تدوير المفاتيح للجلسة ويدفع المشكلة نفسها إلى لحظة لاحقة أقل قابلية للتنبؤ؛ وهو لا ينشئ مصدرًا لبيانات الاعتماد. السياسة التي تجدد المفاتيح وفق جدول لسبب ما لا ينبغي تخفيفها لمجرد تفادي كتابة كلمة مرور.

اختبر إعادة الاتصال بدلًا من الجلسة التي تجلس فيها، لأن الجلسة الحية لا تثبت شيئًا. أسقط النفق من جانب الخادم، أو أعد تشغيل خدمة العميل، وراقب ما تفعله إعادة التفاوض التالية دون أحد على لوحة المفاتيح. إذا أعاد الاتصال، فسمِّ الآلية التي وفّرت السر؛ وإن لم يفعل، فقد وجدت التكلفة الحقيقية للخيار على هذا المضيف. كلتا النتيجتين تعطيك إجابة تصمد أثناء انقطاع بدلًا من إجابة صمدت أثناء الاختبار.

في أسطول مُدار، ينبغي لمن يملك النشر أن يسمّي ثلاثة أشياء: من أين تأتي بيانات الاعتماد، وأين تُخزَّن، ومن يدوّرها. إذا كان أي من هذه الإجابات هو الشخص الذي أعدّ المضيف، فالخيار ليس آمنًا هناك بعد.

مقالات ذات صلة