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

تعامل مع القرار كسؤال جرد لا كجدول ميزات. اسأل من ينشئ المستخدمين، ومن يلغي الشهادات، ومن يجيب على النداء في الساعة 02:00.

لماذا لا يحمل ملف .ovpn الإعداد

يصف ملف .ovpn علاقة عميل واحد بخادم واحد: المضيف البعيد، والبروتوكول، وجهة الشهادة، وشهادة العميل ومفتاحه، وأي مادة tls-crypt مضمّنة. ألقِ ذلك الملف في بناء جديد فيكمل العميل المصافحة، فتبدو الترقية منتهية. لا شيء فيه يسرد المستخدمين أو مجموعاتهم أو مساراتهم الثابتة، أو السياسة التي قررت من يُسمح له بالاتصال أصلاً. تلك السجلات تعيش في تخزين الخادم نفسه، والمنتجان يخزنانها بأشكال مختلفة.

في Community Edition تكون المكافئات ملفات تحتفظ بها: مدخلات client-config-dir التي تحمل خيارات لكل عميل مثل ifconfig-push و iroute، وقائمة CRL للإلغاءات، ومفتاح tls-crypt. يحتفظ Access Server بالمفاهيم نفسها في قاعدة بياناته ويعرضها عبر وحدة تحكم ويب وأداة سطر أوامر sacli. المفاهيم تتقابل واحداً بواحد؛ أما الملفات فلا تنتقل إطلاقاً.

تُهرّب الملفات الشخصية أيضاً سلوكاً لا يلاحظه أحد حتى يتغير. العميل الذي يستخدم redirect-gateway def1 يمرر كل التصفح عبر الخادم؛ انقله إلى بناء بلا ذلك السطر وستكون الشكوى أن الإنترنت انقطع. عدم تطابق الشهادة أو إعداد خاطئ لـ remote-cert-tls يفشل بصوت عالٍ، وهذه هي النتيجة الجيدة. مفتاح tls-crypt المفقود يفشل كمهلة صامتة، وهذه ليست كذلك.

ما الذي تملكه طبقة الإدارة

أحصِ ما ليس بروتوكولاً: إنشاء الحسابات، وإعادة تعيين كلمات المرور، وتعيين المجموعات، والتسجيل في MFA، واستحقاقات الاتصال، وسجل التدقيق الذي يجيب عن من اتصل ومتى. لا تقدم Community Edition أياً من ذلك مباشرة. أنت تختار خلفية مصادقة، وتوصل PAM أو LDAP أو RADIUS عبر إضافة أو auth-user-pass-verify، وتصون الباقي بنفسك. يشحن Access Server بوابة مستخدمين ووحدة تحكم إدارية وتكاملات مع مزودي هوية شائعين. لا أحد الترتيبين أكثر أماناً تلقائياً، لأن السياسة لا بد أن يكتبها من يعرف الشبكة.

الاستحقاقات هي الفرق التشغيلي الأحدّ. يُرَخَّص Access Server بعدد الاتصالات المتزامنة ويفرض ذلك العدد برمجياً. في Community Edition، الحد الأقصى العام سطر واحد من max-clients، بينما أي شيء لكل مستخدم أو لكل مجموعة يعني مزيداً من عمل client-config-dir وفرضاً من عندك. الفريق الذي لا رغبة له في تلك الصيانة يشتري ذلك بالضبط حين يدفع ثمن المنتج التجاري.

الترخيص والدعم: البند الذي لا يضعه أحد في الميزانية

Community Edition مجاني ومفتوح المصدر. Access Server تجاري، وقد غطت طبقته المجانية تاريخياً عدداً صغيراً من الاتصالات المتزامنة مع ترخيص مدفوع فوق ذلك. أي رقم يُقتبس من إجابة منتدى قديمة أصبح قديماً الآن، فتحقق من شروط المورد الحالية قبل أن تحسب تكلفة المشروع. المقارنة الصادقة تضيف الساعات التي تُصرف على بناء إدارة المستخدمين وMFA والمراقبة في الجانب المجتمعي إلى بند الترخيص في الجانب التجاري.

ملكية الدعم تتبع الانقسام نفسه. مع Community Edition أنت مسار التصعيد لكل عميل غريب وكل تحديث للنواة. مع Access Server لديك مورد تتصل به، وترث إيقاع إصداراته سواء ناسب نافذة التغيير لديك أم لا.

فحوص ينبغي إجراؤها قبل التحول

اجرد ما يحتفظ به الخادم العامل فعلاً قبل التحول في أي اتجاه. في جانب Access Server، صدّر قائمة المستخدمين وتعيينات المجموعات ولاحظ الحسابات التي تعتمد على MFA. في جانب Community Edition، اسرد الشهادات الصادرة وقائمة CRL وكل ملف تحت client-config-dir. قارن القائمتين سطراً بسطر، لأن الفرق بينهما هو عمل الترقية.

اختبر عملاء ممثلين بينما الخدمة القديمة ما زالت تعمل. openvpn --config client.ovpn --verb 4 في المقدمة يطبع المصافحة والمسارات المدفوعة وخيارات DNS، و openssl x509 -in client.crt -noout -subject -enddate يُظهر الشهادة التي يقدمها العميل فعلاً. العميل الذي يتصل لكن لا يصل إلى مضيف داخلي لديه فجوة في المسار أو في iroute، لا فشل في المصادقة.

أبقِ مسار الاسترداد القديم حياً حتى يجتاز البديل اختبار رفض الوصول إلى جانب اختبار ناجح. اكتب الخريطة النهائية في صفحة واحدة: كل متطلب، والملف الذي يلبيه اليوم، والملف الذي سيلبيه بعد ذلك.

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