openvpn3 session-start يتجاهل ملف بيانات الاعتماد الخاص بك
يأخذ عميل 3.x بيانات الاعتماد عند بدء الجلسة ولن يقرأ ملفًا محفوظًا. استخدم الموجّه أو مسار التحميل التلقائي، وتقبّل ما يخزنه كل منهما.
اتصل بعميل 2.x وسيعمل الملف الشخصي؛ سلّم الملف نفسه إلى عميل 3.x وسيتوقف عند موجّه كلمة المرور. سلّم --auth-user-pass creds.txt إلى openvpn3 session-start وستكون النتيجة نفسها، لأن العميل الأحدث لا يملك مرحلة تقرأ الملف. الرفض متعمّد: بيانات الاعتماد تنتمي إلى جلسة، والجلسة تنشئها خدمة لا العملية الموجودة في طرفيتك. اختر بين الموجّه التفاعلي ومساعد التحميل التلقائي، واعرف ما يخزنه كل منهما.
لماذا لا مكان للملف المحفوظ
في التصميم الأحدث، إدارة التكوين وإدارة الجلسات خدمتان منفصلتان تتواصلان عبر ناقل النظام. هذا الفصل هو ما يسمح لمستخدم عادي ببدء جلسة دون أن يقرأ خادم خفي ذو امتيازات ملف كلمات مرور محميًا نيابة عنه. لا مكان لبيانات الاعتماد المبنية على الملفات في ذلك النموذج، لأنه لا توجد بداية من جانب الخادم الخفي تقرأها. الرفض نتيجة للبنية، وليس ميزة ناقصة.
يستحق النمط القديم أن يُسمّى لتسهيل نسيانه: ملف شخصي يشير إلى ملف بيانات اعتماد، ويقرأه الخادم الخفي عند بدء النفق. في النموذج الجديد، تنتمي بيانات الاعتماد إلى جلسة وتُقدّم عند بدء تلك الجلسة. يطلبها openvpn3 session-start --config work.ovpn، ويُرفض --auth-user-pass creds.txt لأن لا شيء في ذلك المسار سيفتح الملف. كل وصفة 2.x تجدها تفترض مرحلة لم تعد موجودة.
التكوين والإعدادات المحلية للموقع منفصلان أيضًا، وهذا يفسر مفاجأة ثانية. قد يبدو الملف الشخصي مكتملًا بينما يفتقر الاتصال الذي ينتجه إلى تكوين التوجيه والمحلّل. تُطبّق تلك الأجزاء كإعدادات محلية للموقع، بشكل منفصل عن الملف المستورد.
مسار الموجّه والجلسة التي يتركها
تقديم كلمة المرور عند بدء الجلسة هو سير العمل المقصود. يطلبها العميل مرة واحدة، ويسلّم بيانات الاعتماد إلى الواجهة الخلفية للجلسة، ثم يكمل:
openvpn3 session-start --config work.ovpn
openvpn3 sessions-list
لا يُكتب شيء على القرص عبر ذلك المسار. تستمر الجلسة في العمل بعد إغلاق الطرفية، وهذا يفاجئ من يتوقعون أن تموت العملية مع صدفتهم. هذا هو المقصود من نقل إدارة الجلسات إلى خدمة. الجلسة تعيش أطول من الطرفية التي طلبتها، ويجب إيقافها صراحة.
بالنسبة لمحطة عمل أمامها إنسان، هذا أيضًا الخيار الأكثر أمانًا، لأن لا يوجد سر مخزّن يجب حمايته أو نسيانه. وهو غير مناسب فقط حيث لا يوجد أحد للكتابة.
الأتمتة دون شخص على لوحة المفاتيح
حيث يجب أن تتصل آلة دون شخص، يوفّر المشروع openvpn3-autoload. يقرأ دليلًا من الملفات الشخصية وواصفًا مطابقًا لكل ملف، ويقدّم الواصف بيانات الاعتماد بنص صريح. المساعد ملف تنفيذي منفصل، عادة في /usr/sbin/openvpn3-autoload، وليس خيارًا على session-start. إعداده يعني إنشاء الدليل، ونسخ الملف الشخصي بالاسم الذي يتوقعه الواصف، وكتابة الواصف.
يبدو إعداد لكل مستخدم هكذا، ويُشغّل بحساب سيالك الجلسة. وضع الدليل يبقي المستخدمين المحليين الآخرين خارجًا:
mkdir -m700 -p ~/.openvpn3/autoload
cp work.ovpn ~/.openvpn3/autoload/client.conf
$EDITOR ~/.openvpn3/autoload/client.autoload
يسمّي الواصف بيانات الاعتماد ويطلب بدءًا تلقائيًا. أبقِ قيمة كلمة المرور خارج التحكم في الإصدارات:
{
"autostart": true,
"user-auth": {
"autologin": true,
"username": "svc-vpn",
"password": "change-this-value"
}
}
ثم شغّل المساعد مرة واحدة وتأكد من ظهور الجلسة. الأمر الثاني هو الفحص، وليس خطوة إعداد أخرى:
/usr/sbin/openvpn3-autoload --directory ~/.openvpn3/autoload
openvpn3 sessions-list
عند الإقلاع، تستخدم وحدة محزّمة تُسمّى openvpn3-autoload.service الدليل العام للنظام /etc/openvpn3/autoload، لا الدليل الخاص بكل مستخدم. يحتاج ذلك الموقع ملكية الجذر ووضعًا أكثر صرامة، ولا يزال الواصف يحمل كلمة المرور بنص واضح. المقايضة صريحة: كلمة المرور أصبحت الآن على القرص، فتعامل مع ذلك الدليل كسر، واستبعده من النسخ الاحتياطية خارج المضيف، واختر المسار التفاعلي متى كان شخص حاضرًا.
أعطال الناقل التي تشبه أعطال كلمة المرور
بعض الأعطال المنسوبة إلى بيانات الاعتماد ليست من هذا النوع. خطأ إذن يذكر مسار تنشيط الخدمة يعني أحد أمرين: الواجهة الخلفية غير قائمة، أو أن المستدعي يفتقر إلى إذن تنشيطها. لا تعديل في الملف الشخصي سيغيّر أيا منهما. تحقق من حالة الخدمة وسياسة الناقل المرفقة قبل أن تلمس التكوين.
الأمران أدناه يفصلان بينهما. الأول يبلّغ عما إذا كانت الواجهة الخلفية تعمل؛ والثاني يعرض أخطاء الناقل الحديثة:
systemctl status openvpn3-service-client
journalctl -b -u openvpn3-service-client --no-pager | tail -20
القراءة الخاطئة الأخرى الشائعة هي جلسة تظهر ثم تختفي فورًا. يعني ذلك النمط عادةً أن الإعدادات المحلية للموقع لم تُطبّق قط، فظهر النفق دون تغييرات التوجيه والمحلّل التي تجعله مفيدًا. اقرأ التسلسل لا السطر الأخير: هل أُنشئت الجلسة، وهل وصلت إلى حالة متصلة، وهل بقيت، ثلاث حقائق منفصلة.
عندما يبقى العميل الأقدم قيد الاستخدام
لا يزال عميل 2.x يقبل ملف بيانات اعتماد، ويمكن لسلسلة مفاتيح أن تجيب موجّهه دون أن يصل السر إلى القرص أبدًا. يحل غلاف المدخل، فيسمّي الملف البحث لا كلمة المرور. يعتمد هذا الترتيب على سلسلة مفاتيح غير مقفلة، وهو ما لا تستطيع حاوية بلا جلسة تسجيل دخول أو وحدة تبدأ قبل أن يسجّل أي شخص الدخول توفيره. عندئذٍ تبلّغ أداة البحث عن مجموعة لا يمكنها الكتابة إليها، فيبدو الخطأ كعطل بيانات اعتماد بينما هو عطل سلسلة مفاتيح.
قبل بناء أي من ذلك، تحقق مما إذا كان إعداد الإبقاء على الاتصال في الملف الشخصي يزيل الحاجة إلى إعادة التشغيل أصلًا. الجلسة التي تبقى قائمة لا تصل أبدًا إلى الموجّه الذي تحاول أتمتته.