كيفية إعداد الاستيثاق متعدد العوامل من أجل SSH على Ubuntu
في عالم تكنولوجيا المعلومات الحديث، أصبح من الضروري تأمين أنظمة الخوادم بشكل أكثر صرامة لضمان حماية البيانات والحفاظ على سرية المعلومات. يعد بروتوكول SSH (Secure Shell) أحد الأدوات الأساسية للوصول إلى الأنظمة عن بُعد بشكل آمن، لكن يمكن أن يكون عرضة للهجمات إذا لم يتم تأمينه بشكل صحيح. من بين أساليب الأمان المتقدمة التي يمكن استخدامها لحماية الوصول إلى SSH، يأتي الاستيثاق متعدد العوامل (MFA) كأداة قوية لتحسين الأمان ومنع الوصول غير المصرح به.
الاستيثاق متعدد العوامل هو عملية تتطلب من المستخدم تقديم أكثر من طريقة واحدة للتحقق من هويته. يتم دمجها عادة مع كلمة المرور التقليدية وتضيف طبقة من الأمان عبر استخدام جهاز ثاني أو رمز يُرسل إلى جهاز آخر مثل الهاتف المحمول. في هذا المقال، سنستعرض كيفية إعداد الاستيثاق متعدد العوامل لخادم Ubuntu باستخدام بروتوكول SSH.
1. تثبيت وتحديث النظام
قبل البدء في إعداد الاستيثاق متعدد العوامل (MFA)، من الضروري التأكد من أن النظام محدث ويحتوي على كافة الحزم الأساسية المطلوبة. أولاً، قم بتحديث النظام باستخدام الأوامر التالية:
bashsudo apt update sudo apt upgrade
ثم قم بتثبيت حزم SSH إذا لم تكن مثبتة بالفعل:
bashsudo apt install openssh-server
بعد ذلك، تأكد من أن خدمة SSH تعمل بشكل صحيح عبر:
bashsudo systemctl status ssh
2. تثبيت الحزمة المطلوبة للاستيثاق متعدد العوامل
هناك العديد من الأدوات التي يمكن استخدامها لتطبيق الاستيثاق متعدد العوامل على Ubuntu، من أبرزها Google Authenticator. يستخدم Google Authenticator رموز موقتة يتم توليدها بواسطة تطبيق على الهاتف المحمول مثل Google Authenticator أو Authy. للبدء، يجب أولاً تثبيت الحزمة المطلوبة:
bashsudo apt install libpam-google-authenticator
3. تكوين Google Authenticator للمستخدمين
بعد تثبيت الحزمة، يجب تمكين Google Authenticator لكل مستخدم يريد استخدام الاستيثاق متعدد العوامل. يتم ذلك عبر تشغيل الأداة التالية:
bashgoogle-authenticator
سيُطلب منك تحديد بعض الخيارات، مثل:
-
موافقة على تعيين مفاتيح احتياطية: هذا هو المفتاح الذي سيُستخدم لإنشاء الرمز الموقت (TOTP).
-
إعداد المزامنة مع الوقت العالمي UTC: لتحسين دقة الوقت بين الخوادم والأجهزة.
-
إعادة تعيين كلمة مرور واحدة للمستخدم: لتحديد هل يفضل المستخدم تفعيل استيثاق متعدد العوامل مع كلمة المرور أم لا.
بعد الإجابة على الأسئلة، سيقوم google-authenticator بإنشاء رموز QR يجب مسحها باستخدام تطبيق Google Authenticator أو Authy على الهاتف المحمول. ستظهر هذه الرموز في التطبيق وتبدأ في توليد الرموز الموقتة كل 30 ثانية.
4. تكوين PAM لاستخدام Google Authenticator
يتم استخدام PAM (Pluggable Authentication Modules) لتكامل أدوات الأمان المختلفة مع أنظمة Linux. لتفعيل الاستيثاق متعدد العوامل باستخدام Google Authenticator في خدمة SSH، يجب تعديل ملف تكوين PAM.
افتح الملف التالي باستخدام محرر النصوص المفضل لديك (مثل nano):
bashsudo nano /etc/pam.d/sshd
أضف السطر التالي في أسفل الملف لتمكين Google Authenticator:
bashauth required pam_google_authenticator.so
5. تكوين SSH للسماح بالاستيثاق متعدد العوامل
الخطوة التالية هي تعديل ملف تكوين SSH لتمكين الاستيثاق متعدد العوامل. افتح الملف التالي:
bashsudo nano /etc/ssh/sshd_config
ابحث عن الإعدادات التالية وقم بتعديلها أو إضافتها إذا لم تكن موجودة:
-
PermitRootLogin: يجب تعطيل تسجيل الدخول كـ root عبر SSH لمنع أي محاولات غير مرغوب فيها.
bashPermitRootLogin no -
PasswordAuthentication: تأكد من أن كلمة المرور مُعتمدة لتشغيل الاستيثاق متعدد العوامل بجانب الرمز الموقت.
bashPasswordAuthentication yes -
ChallengeResponseAuthentication: قم بتفعيل هذا الخيار لتمكين التحقق من الرمز الموقت المولد عبر Google Authenticator.
bashChallengeResponseAuthentication yes -
UsePAM: تأكد من أن هذه الخاصية مُفعلة، لأنها ضرورية لتكامل PAM مع SSH.
bashUsePAM yes
بعد إجراء التعديلات، احفظ الملف وأغلقه.
6. إعادة تشغيل خدمة SSH
لتطبيق التغييرات، يجب إعادة تشغيل خدمة SSH باستخدام الأمر التالي:
bashsudo systemctl restart ssh
7. اختبار إعداد الاستيثاق متعدد العوامل
للتأكد من أن إعداد الاستيثاق متعدد العوامل يعمل بشكل صحيح، حاول الاتصال بالخادم عبر SSH:
bashssh username@your_server_ip
ستتم مطالبتك أولاً بكلمة المرور الخاصة بك، وبعد ذلك سيُطلب منك إدخال الرمز الموقت الذي تم توليده بواسطة تطبيق Google Authenticator على هاتفك المحمول. إذا قمت بإدخال كل من كلمة المرور والرمز بشكل صحيح، فسيتم السماح لك بالوصول إلى الخادم.
8. إضافة استيثاق عبر المفتاح العام (اختياري)
من الأفضل تعزيز الأمان عن طريق إضافة استيثاق عبر المفاتيح العامة إلى SSH بجانب الاستيثاق متعدد العوامل. يسمح هذا باستخدام مفتاح SSH (public/private key pair) للوصول إلى الخادم بدلاً من كلمات المرور التقليدية. يمكن تكوين هذا عن طريق:
-
إنشاء مفتاح SSH على جهاز العميل (إذا لم يكن لديك واحد بالفعل):
bashssh-keygen -t rsa -b 4096 -
إضافة المفتاح العام إلى ملف
~/.ssh/authorized_keysعلى الخادم.
بعد تفعيل الاستيثاق متعدد العوامل، سيتعين على المستخدمين تقديم المفتاح الخاص أولاً، ثم إدخال الرمز الموقت من تطبيق Google Authenticator.
9. الحفاظ على الأمان بعد التثبيت
إعداد الاستيثاق متعدد العوامل هو خطوة كبيرة نحو تعزيز أمان النظام، ولكن هناك خطوات إضافية يمكنك اتخاذها لضمان الحماية المستمرة:
-
استخدام الجدران النارية (Firewalls): تأكد من أن الفتحات الخاصة بـ SSH محمية بالجدران النارية. على سبيل المثال، يمكن السماح بالوصول إلى SSH فقط من عناوين IP معينة.
-
مراقبة السجلات: تتبع محاولات تسجيل الدخول عبر SSH. يمكنك استخدام أدوات مثل
fail2banلحظر العناوين التي تحاول الوصول إلى الخادم بشكل غير مصرح به. -
تحديثات النظام الدورية: حافظ على تحديث نظامك لضمان عدم وجود ثغرات أمنية يمكن استغلالها من قبل المهاجمين.
10. الاستفادة من الأدوات الأخرى لتعزيز الأمان
إضافة إلى Google Authenticator، يمكن استخدام تطبيقات أخرى مثل Yubikey أو Duo Security لتقديم خيارات استيثاق متقدمة. هذه الأدوات يمكن أن توفر خيارات مرنة للمستخدمين وتزيد من صعوبة اختراق الخادم.
الخلاصة
إعداد الاستيثاق متعدد العوامل لخدمة SSH على Ubuntu يعد خطوة حاسمة لضمان أمان الأنظمة التي تعتمد على الوصول عن بُعد. من خلال تكامل Google Authenticator مع SSH، يمكنك تعزيز طبقة الأمان عبر إضافة نوعين من التحقق: كلمة المرور والرمز الموقت. من خلال تطبيق هذه الإجراءات، يمكنك تقليل المخاطر الناجمة عن الوصول غير المصرح به بشكل كبير، مما يجعل خادم Ubuntu الخاص بك أكثر أمانًا ضد محاولات الاختراق.

