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

نوعان من الحالة، أحدهما قابل للتخلص منه

للحاوية طبقة قابلة للكتابة للتغييرات التي تُجرى وقت التشغيل، وتُهمَل تلك الطبقة عند استبدال الحاوية. وهي ليست مخزن إعدادات وليست نسخة احتياطية. الصورة مع المدخلات المعلنة هي التعريف الكامل لما يعمل.

اسأل أي ملفات VPN لديك مدخلات معلنة وأيها حوادث:

docker diff wg-vpn
docker inspect --format '{{json .Mounts}}' wg-vpn

يسرد الأمر diff ما تغيّر في الطبقة القابلة للكتابة، وهو بالضبط مجموعة الأشياء التي ستزول. تعرض قائمة التركيب ما يبقى. مقارنة الاثنين تجيب عن السؤال قبل أن تفقد شيئًا.

التركيب أو الحجم المسمّى أو السر: ما يحميه كل منها

يمكن للثلاثة أن تحمل ملف تعريف VPN، وهي تختلف في من يمكنه قراءته وما يحدث عند الاستبدال.

MechanismSurvives recreationWho can read it
Writable layerNoAnyone with container access, until it is gone
Bind mountYes, while the host path existsWhatever the host permissions allow
Named volumeYes, until the volume is removedManaged by the runtime
SecretYes, as a declared inputThe container process, by design

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

لا تعامل كل متغير بيئة وكل ملف مضيف على أنهما حماية مكافئة، لأنهما ليسا كذلك.

التعديل داخل الحاوية هو الفخ

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

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

ذلك التوسيع هو كيف تتحول راحة داخل الحاوية إلى تعريض للمضيف.

أعد الإنشاء عمدًا ثم تحقق من أربعة أمور

سجّل إصدار الصورة والجهاز والقدرات المطلوبة وارتباط الشبكة والمدخلات الدائمة. قائمة الجهاز والقدرات مهمة تحديدًا لحاوية VPN، لأن النفق يحتاج إلى جهاز الشبكة وإلى الامتياز لتهيئته.

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

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

احتفظ بنسخة استرداد خارج الحاوية

احتفظ بنسخة استرداد تعيش مستقلة عن الحاوية، واختبر استعادتها عبر العملية الموثقة. النسخة الاحتياطية غير المختبَرة لملف تعريف VPN أمل، خصوصًا عندما يتضمن مسار الاستعادة أذونات تحتاجها عملية الحاوية.

إذا استُبدلت حاوية تملك VPN، فنسّق التطبيقات التي تشارك مكدس شبكتها ضمن دورة الحياة المدعومة في وقت التشغيل.

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

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