من أهم الأمور التي تتواجد في حوزتك اليوم هي كلمة مرورك لأي خدمة إلكترونية سواء حسابك البنكي أو ملفك الطبي أو حتى خدمات حكومتك الإلكترونية. هذه الكلمة البسيطة قد تتسبب في إنهاء حياتك أو الحفاظ عليها.
من خلال كلمات المرور نقوم في أيامنا هذه بعمل الكثير من الأمور البديهية مثل تأمين الهاتف والمنزل والسيارات وأطفالنا وكل ما بتعلق بنا من ناحية تقنية. وعلى الرغم من أهمية كلمات المرور وحساسيتها الشديدة من ناحية أمنية إلا أن الكثير من الناس يتهاونون بموضوع أمن وأمان كلمة المرور ويستخدمون كلمات مرور ضعيفة أو بسيطة لتأمين أمور عظيمة.
في الحقيقة، مدير كلمات المرور ليس بالشيء الجديد وهو أمر موجود منذ زمن طويل جدا على الرغم من شعبيته إلا أن القليل من الناس سمعوا عنه وقليل منهم يستخدموه. مدير كلمات المرور قد يكون اليوم هو الحل الأمثل لتأمين كلمات مرورك وتزويدك بكلمات مرور قوية لا تحتاج لتذكرها. إلى أن ننتقل إلى عالم بدون كلمات مرور، مدير كلمات المرور يُعتبر المُنقذ لحياتك التقنية.
كيف يعمل مدير كلمات المرور
مدير كلمات المرور يعمل من خلال إنشاء محفظة أو “خزنة” يتم من خلالها إدخال كلمات المرور واستخدامها في الأماكن المحددة لها. هذه المحفظة يتم تأمينها بكلمة مرور تُسمى بكلمة المرور الرئيسية. كلمة المرور هذه مسؤولة عن فتح الخزنة واسترجاع كلمات المرور منها.
مدير كلمات المرور لا يقوم فقط بالحفظ والاسترجاع، بل يقوم أيضا بتوليد كلمات المرور ومن خلاله يمكن توليد كلمات مرور عشوائية قوية جدا لاستخدامها في الخدمات الإلكترونية المختلفة في الفضاء الإلكتروني. لان كلمات المرور عشوائية ومختلفة لكل موقع وخدمة على الإنترنت، هذا يتسبب في رفع مستوى الأمان لديك حيث أن اختراق أو تسريب كلمة مرورك لا يعني اختراق جميع الخدمات التي تعتمد عليها في حياتك.
ببساطة، مدير كلمات المرور هو عبارة عن برنامج لحفظ واسترجاع كلمات كلمات المرور الخاصة بك ليُجنبك الحاجة لحفظ كلمات المرور.
لماذا مدير كلمات المرور أفضل
كما ذكرنا من قبل، مدير كلمات المرور يستخدم ما يُسمى بالخزنة لحفظ كلمات مرورك. ولكن ما قد لا تعلمه عن تلك العملية هي أن مدير كلمات المرور يقوم بنقل كلمة مرورك بشكل مُشفّر من جهازك إلى خادم كلمات المرور باستخدام اتصال آمن. حتى الآن، لدينا طبقتين من التشفير. عند وصول كلمة مرورك إلى الخادم، يتم هناك فك التشفير وإعادة تشفير كلمة المرور باستخدام تقنيات تشفير مختلفة بدرجة أمان مرتفعة جدا وبعدها يتم حفظ كلمة المرور في المحفظة التي بدورها هي أيضا مُشفّر ومحفوظة بشكل آمن.
للأسف، جميع هذه الاحتياطات تعتبر بدون أي فائدة في حال أنك قررت أن تستخدم كلمة مرور “123456” أو شيء مشابه. لا تقم بذلك أبداً مهما كان السبب.
ما هو Vaultwarden
في حال أنك سمعت عن مدير كلمات مرور من قبل، على الأرجح أنك سمعت بمدير كلمات المرور Bitwarden وهو أحد أفضل مدراء كلمات المرور في العالم. هو يوفر خدمات المحفظة أو الخزنة بتكلفة منخفضة جدا، ويعطيك القدرة على تشغيل الخادم محليا على جهازك الخاص أو في خادمك الخاص. في حال انك لا تثق بالخدمات التجارية، يمكنك بكل سهولة استضافة الخدمة بنفسك.
على نفس نمط Bitwarden، برنامج Vaultwarden له نفس الهدف ونفس العمل ولكنه مختلف بشيء جوهري، برنامج Vaultwardenمكتوب بلغة Rust ليكون متوافقك مع Bitwarden ويقوم بالعمل بنفس طريقة عمله ولكنه أسرع وأخف على الموارد بسبب استخدام لغة Rust.
برنامج Vaultwarden متوافق أيضا مع جميع برامج Bitwarden ويعمل باستخدام الـ API نفسه بدون مشاكل.
تثبيت Vaultwarden
سوف أقوم بشرح تثبيت البرنامج على خادم بعيد على الإنترنت. يمكنك القيام بنفس الخطوات لتثبيت النظام على أي خادم سواء بعيد أو محلي، ويمكنك استخدام نظام تشغيل مختلف أيضا لأن النظام يعمل من خلال Docker وهو ما يمكنك من تشغيله في أي نظام وأي بيئة ترغب بها.
لاحظ أن بعض مزودي خدمات الخوادم الافتراضية لا يسمحوا بتشغيل Docker على خوادمهم. تأكد منهم قبل أن تطلب الخدمة.
ملاحظة
البرنامج لا يجب أن يعمل في السحاب ولا أن يكون متوفر عبر الإنترنت. من أجل الحفاظ على خصوصيتك وأمن المعلومات لديك، ننصحك وبشدّة أن يتم تشغيل هذا النظام في منزلك الخاص على شبكة داخلية. من أجل هذا الأمر، يمكنك استخدام جهاز كمبيوتر عالي الأداء ومنخفض التكلفة واستهلاك الكهرباء فيه قليل جدا مثل الخادم اللوحي ZimaBoard.
تثبيت متطلبات العمل
أولا، يجب علينا تثبيت Docker. تثبيته ليس بالشيء الصعب وهو متوفر من مستودعات جميع التوزيعات الرئيسية مثل Debian, Ubuntu, و Red-hat. الخادم الذي نعمل عليه هو Rocky Linux وأمر التثبيت هو كالتالي:
dnf install docker
بعد تثبيت البرنامج، يجب عليك المرور بخطوات تثبيت خادم ويب ليعمل كـReverse Proxy حتى نتمكن من تشغيل البرنامج على الويب من خلاله. في حين أن البرنامج نفسه قادر على العمل بدون خادم ويب خارجي، إلا أننا نُفضل وجود خادم خارجي لنتمكن من تشغيل خدمات أخرى على نفس الخادم وأيضا أن نستخدم شهادة SSL بدون خطوات إضافية. لاحظ أن شهادة SSL إجبارية هنا حيث أن المتصفحات الحديثة تمنعك من تبادل بيانات مشفرة بدون اتصال HTTPS.
يمكنك استخدام مقالنا حول إنشاء خادم Litespeed مع php 8 لتثبيت خادم ويب متكامل وبدء العمل مباشرة عليه. سوف نقوم بكتابة مقال جديد في القريب العاجل لشرح تشغيل Reverse Proxy على Litespeed لتقوم من خلاله بتشغيل Vaultwarden بكل بساطة وبدون مشاكل.
عند الانتهاء من تثبيت Docker وخادم ويب، يمكنك الانتقال إلى الخطوة التالية لتثبيت البرنامج نفسه.
تثبيت البرنامج
بما أن البرنامج متوفر من خلال Docker، فتثبيت البرنامج سهل وهو عبارة سحب البرنامج من النظام ثم تشغيله بعد ضبط عدد قليل من الإعدادات!
من أهم الأمور التي أُفضّل عملها هو توفير مكان آمن للبيانات لضمان عدم حذفها عند إعادة تشغيل الحاوية أو عند الانتقال إلى خادم جديد. للقيام بذلك، يمكنك خلال إنشاء خادم ويب أن تقوم بعمل مستخدم جديد ومن خلاله حفظ جميع الملفات.
من ناحيتي، قمت بعمل مستخدم جديد أسميته Vaultwarden كما في الأمر التالي:
adduser vaultwarden
بعد أن قمنا بالسابق، قمت وكما شرحت في مقال تثبيت Litespeed بإنشاء مجلد public_html لتوفير بيئة تثبيت وعمل متناسقة ومضبوطة بدون تشتيت خصوصا للمستخدمين الغير تقنيين والغير متمكنين من الأمور التقنية.
الآن يأتي وقت سحب الحاوية من Docker من خلال الأمر التالي:
docker pull vaultwarden/server:latest
بعد سحب الحاوية، يمكننا تشغيلها من خلال الأمر التالي:
docker run -d --name vaultwarden -v /home/vaultwarden/public_html:/data/ -p 5523:80 vaultwarden/server:latest
الأمر السابق يقوم بثلاث مهام:
- تشغيل حاوية البرنامج
- ضبط منفذ البرنامج على 5523
- ضبط مسار الملفات إلى “/home/vaultwarden/public_html”
يمكنك تعديل المنفذ والمسار في الأمر التالي كما يناسبك. ليس هناك سبب فعلي لاختيار المنفذ 5532 ويمكنك تعديله بما تشاء.
هنا تكون قد قمت بإعداد البرنامج بشكل كامل ومتكامل بدون ولا أي مشكلة ولا أي نقص. مشكلة هذا الإعداد هو أن البرنامج لا يعمل كما تريده أن يعمل وفيه مميزات وخصائص كثيرة قد تحتاج إلى تفعيلها أولا لكي تتمكن من استخدامها ومنها لوحة تحكم المدير الرئيسي الذي لديه وصول لكل شيء في النظام. هذا الحساب مُعطل بشكل افتراضي ولا يعمل لأسباب أمنية.
ضبط الإعدادات
البرنامج فيع عدد كبير جدا من الإعدادات وسوف نقوم بتحديد عدد بسيط منها فقط هنا وهي أهم الإعدادات التي قد تحتاج إليها خلال عملك. أحد اهم الأمور التي لاحظتها عند التشغيل الأول للبرنامج هو أن التسجيل مفتوح للجميع وأن الدخول لواجهة المدير الرئيسي غير ممكن.
عند التسجيل والدخول لأول مره، سوف تشاهد الصفحة التالية التي تدل على أن كمستخدم عادي ولكن لديك وصول للنظام:
بالتالي يجب علينا القيام ببعض التعديلات في البرنامج لكي يعمل بالشكل الصحيح الذي نرغب به.
تعطيل تسجيل المستخدمين
قد لا ترغب في أن يكون مدير كلمات مرورك عام لكل الناس وبالتالي سوف ترغب بالتأكيد في تحديد قدرتهم على التسجيل. يمكنك عمل ذبك بسهولة من خلال إضافة الدالية التالية في أمر التشغيل:
-e SIGNUPS_ALLOWED=false
تعطيل دعوة المستخدمين
في حال لم تكن ترغب في أن يتمكن المستخدمين في الخادم الخاص بك من دعوة أصدقائهم لعمل حساب واستخدام مدير كلمات المرور الخاصة، يمكنك أيضا تعطيل نظام الدعوات من خلال إضافة الدالة التالية لأمر التشغيل:
-e INVITATIONS_ALLOWED=false
تفعيل حساب المدير الرئيسي
هذه الخاصية لها تبعيات أمنية رهيبة ويجب استخدامها بحذر شديد. أول الأمور التي سوف تحتاج إليها لتفعيل هذه الخاصية هو تفعيل اتصال HTTPS.
بعد ذلك عليك توليد كلمة مرور بمعايير محددة لتتمكن من دخول لوحة التحكم من خلال الأمر التالي:
openssl rand -base64 48
باستخدام كلمة المرور هذه، يمكننا تفعيل خاصية دخول لوحة التحكم كما يلي:
-e ADMIN_TOKEN=fETQM+1n+mpMRh31dnvw65iafeAzez08DdfICgmSd40GhVbyKKlO9UqhDEtMr5iu
يمكنك دخول لوحة التحكم الآن من الرابط التالي باستخدام كلمة المرور التي قمت بعملها:
من المفضل جدا عدم توفير وصول لهذه الصفحة وإدارة الخادم من خلال سطر الأوامر. على كل حال ستقوم بتشغيل البرنامج على الأرجح لمرة واحدة فقط وسوف تتركه يعمل بعدها بدون تعديلات.
ضبط بريد SMTP
أحد أهم الأمور الواجب عملها هو ضبط البريد الإلكتروني لإرسال الإشعارات أو بريد تأكيد الحساب وتفعيله. للقيام بذلك، عليك إضافة الدالات التالية في أمر التشغيل:
-e SMTP_HOST=smtp.domain.tld-e [email protected] SMTP_PORT=587-e SMTP_SECURITY=starttls-e SMTP_USERNAME=username-e SMTP_PASSWORD=password
بالضبع عليك تعديل الأمر كما يلزم ليعمل خادم البريد الخاص بك.
في النهاية، يجب أن يكون لديك أمر تشغيل كالتالي:
docker run -d --name vaultwarden -e SIGNUPS_ALLOWED=false -e INVITATIONS_ALLOWED=false -e SMTP_HOST=smtp.domain.tld -e [email protected] -e SMTP_PORT=587 -e SMTP_SECURITY=starttls -e SMTP_USERNAME=username -e SMTP_PASSWORD=password -v /home/vaultwarden/public_html:/data/ -p 5523:80 vaultwarden/server:latest
أو يمكنك كتابته بالشكل التالي لتحسين قدرتك على قراءة الكود:
docker run \ -d --name vaultwarden \ -e SIGNUPS_ALLOWED=false \ -e INVITATIONS_ALLOWED=false \ -e SMTP_HOST=smtp.domain.tld \ -e [email protected] \-e SMTP_PORT=587 \ -e SMTP_SECURITY=starttls \ -e SMTP_USERNAME=username \ -e SMTP_PASSWORD=password \ -v /home/vaultwarden/public_html:/data/ \ -p 5523:80 vaultwarden/server:latest
لاحظ الفراغ قبل “\” لا يمكنك حذف هذا الفراغ وإلا سيتسبب في فشل التشغيل.
طبعا هناك العديد من الخيارات الممكنة ومنها الأمور الأمنية والتي يمكنك الوصول إليها وإعداداها من خلال الرابط التالي:
https://github.com/dani-garcia/vaultwarden/wiki/
في حال كان لديك سؤال أو استفسار عن طريقة عمل أي شيء من الصفحة السابقة، لا تتردد بترك تعليق وسوف نقوم بتوفير شرح ملائم للموضوع.
الخاتمة
عثوري على هذا البرنامج كان بالصدفة البحتة. بحثت عن برامج وأنظمة متعددة لتجربتها للعثور على ما يمكنني أن أقوم أنه هو الأفضل أو المناسب لي أكثر من غيره ولم أجد. خلال رحله بحثي وصلت لنظام Bitwarden وهو الأفضل في الحقيقة من ناحية المميزات والسعر في حال كان لديك حساب مدفوع فيه، ولكن تثبيته يعتبر كارثة تقنية وقد كرهت طريقة التثبيت والعمل التي اعتمدوها. بالتالي وبالصدفة أثناء بحثي عن بديل، وجدت برنامج Vaultwarden. لا أعلم صراحة إن كان هو الأفضل في المجال، ولكن مما رأيته، هو مناسب جدا لي من ناحية الأداء، المميزات، والأمان لكلمات المرور.
في هذا الدليل لم نتطرق للأمور الأمنية البحتة وهي أمر عليك القيام بها مثل توفير جدار ناري وإعداده بشكل ملائم، واستخدام نوعية تشفير قوية للاتصال وما إلى ذلك. هذه جميعها أمور مهمة بقدر أهمية قوة كلمة مرورك.
أما من ناحية التطبيقات، يمكنك استخدام أي تطبيق متوافق مع Bitwarden بما في ذلك تطبيق Bitwarden الرسمي سواء على الهاتف، أو الكمبيوتر.
ما رأيك أنت؟ هل هذا برنامج تتخيل أنك تستخدمه لإدارة بياناتك؟ وهل أنت معني بتثبيته على خادم خاص أو منزلي من أجل الحفاظ على خصوصيتك وأمن معلوماتك بشكل كامل وتام؟