ديف أوبس

إعداد الاستيثاق متعدد العوامل لـ SSH

كيفية إعداد الاستيثاق متعدد العوامل من أجل SSH على Ubuntu

في عالم تكنولوجيا المعلومات الحديث، أصبح من الضروري تأمين أنظمة الخوادم بشكل أكثر صرامة لضمان حماية البيانات والحفاظ على سرية المعلومات. يعد بروتوكول SSH (Secure Shell) أحد الأدوات الأساسية للوصول إلى الأنظمة عن بُعد بشكل آمن، لكن يمكن أن يكون عرضة للهجمات إذا لم يتم تأمينه بشكل صحيح. من بين أساليب الأمان المتقدمة التي يمكن استخدامها لحماية الوصول إلى SSH، يأتي الاستيثاق متعدد العوامل (MFA) كأداة قوية لتحسين الأمان ومنع الوصول غير المصرح به.

الاستيثاق متعدد العوامل هو عملية تتطلب من المستخدم تقديم أكثر من طريقة واحدة للتحقق من هويته. يتم دمجها عادة مع كلمة المرور التقليدية وتضيف طبقة من الأمان عبر استخدام جهاز ثاني أو رمز يُرسل إلى جهاز آخر مثل الهاتف المحمول. في هذا المقال، سنستعرض كيفية إعداد الاستيثاق متعدد العوامل لخادم Ubuntu باستخدام بروتوكول SSH.

1. تثبيت وتحديث النظام

قبل البدء في إعداد الاستيثاق متعدد العوامل (MFA)، من الضروري التأكد من أن النظام محدث ويحتوي على كافة الحزم الأساسية المطلوبة. أولاً، قم بتحديث النظام باستخدام الأوامر التالية:

bash
sudo apt update sudo apt upgrade

ثم قم بتثبيت حزم SSH إذا لم تكن مثبتة بالفعل:

bash
sudo apt install openssh-server

بعد ذلك، تأكد من أن خدمة SSH تعمل بشكل صحيح عبر:

bash
sudo systemctl status ssh

2. تثبيت الحزمة المطلوبة للاستيثاق متعدد العوامل

هناك العديد من الأدوات التي يمكن استخدامها لتطبيق الاستيثاق متعدد العوامل على Ubuntu، من أبرزها Google Authenticator. يستخدم Google Authenticator رموز موقتة يتم توليدها بواسطة تطبيق على الهاتف المحمول مثل Google Authenticator أو Authy. للبدء، يجب أولاً تثبيت الحزمة المطلوبة:

bash
sudo apt install libpam-google-authenticator

3. تكوين Google Authenticator للمستخدمين

بعد تثبيت الحزمة، يجب تمكين Google Authenticator لكل مستخدم يريد استخدام الاستيثاق متعدد العوامل. يتم ذلك عبر تشغيل الأداة التالية:

bash
google-authenticator

سيُطلب منك تحديد بعض الخيارات، مثل:

  • موافقة على تعيين مفاتيح احتياطية: هذا هو المفتاح الذي سيُستخدم لإنشاء الرمز الموقت (TOTP).

  • إعداد المزامنة مع الوقت العالمي UTC: لتحسين دقة الوقت بين الخوادم والأجهزة.

  • إعادة تعيين كلمة مرور واحدة للمستخدم: لتحديد هل يفضل المستخدم تفعيل استيثاق متعدد العوامل مع كلمة المرور أم لا.

بعد الإجابة على الأسئلة، سيقوم google-authenticator بإنشاء رموز QR يجب مسحها باستخدام تطبيق Google Authenticator أو Authy على الهاتف المحمول. ستظهر هذه الرموز في التطبيق وتبدأ في توليد الرموز الموقتة كل 30 ثانية.

4. تكوين PAM لاستخدام Google Authenticator

يتم استخدام PAM (Pluggable Authentication Modules) لتكامل أدوات الأمان المختلفة مع أنظمة Linux. لتفعيل الاستيثاق متعدد العوامل باستخدام Google Authenticator في خدمة SSH، يجب تعديل ملف تكوين PAM.

افتح الملف التالي باستخدام محرر النصوص المفضل لديك (مثل nano):

bash
sudo nano /etc/pam.d/sshd

أضف السطر التالي في أسفل الملف لتمكين Google Authenticator:

bash
auth required pam_google_authenticator.so

5. تكوين SSH للسماح بالاستيثاق متعدد العوامل

الخطوة التالية هي تعديل ملف تكوين SSH لتمكين الاستيثاق متعدد العوامل. افتح الملف التالي:

bash
sudo nano /etc/ssh/sshd_config

ابحث عن الإعدادات التالية وقم بتعديلها أو إضافتها إذا لم تكن موجودة:

  • PermitRootLogin: يجب تعطيل تسجيل الدخول كـ root عبر SSH لمنع أي محاولات غير مرغوب فيها.

    bash
    PermitRootLogin no
  • PasswordAuthentication: تأكد من أن كلمة المرور مُعتمدة لتشغيل الاستيثاق متعدد العوامل بجانب الرمز الموقت.

    bash
    PasswordAuthentication yes
  • ChallengeResponseAuthentication: قم بتفعيل هذا الخيار لتمكين التحقق من الرمز الموقت المولد عبر Google Authenticator.

    bash
    ChallengeResponseAuthentication yes
  • UsePAM: تأكد من أن هذه الخاصية مُفعلة، لأنها ضرورية لتكامل PAM مع SSH.

    bash
    UsePAM yes

بعد إجراء التعديلات، احفظ الملف وأغلقه.

6. إعادة تشغيل خدمة SSH

لتطبيق التغييرات، يجب إعادة تشغيل خدمة SSH باستخدام الأمر التالي:

bash
sudo systemctl restart ssh

7. اختبار إعداد الاستيثاق متعدد العوامل

للتأكد من أن إعداد الاستيثاق متعدد العوامل يعمل بشكل صحيح، حاول الاتصال بالخادم عبر SSH:

bash
ssh username@your_server_ip

ستتم مطالبتك أولاً بكلمة المرور الخاصة بك، وبعد ذلك سيُطلب منك إدخال الرمز الموقت الذي تم توليده بواسطة تطبيق Google Authenticator على هاتفك المحمول. إذا قمت بإدخال كل من كلمة المرور والرمز بشكل صحيح، فسيتم السماح لك بالوصول إلى الخادم.

8. إضافة استيثاق عبر المفتاح العام (اختياري)

من الأفضل تعزيز الأمان عن طريق إضافة استيثاق عبر المفاتيح العامة إلى SSH بجانب الاستيثاق متعدد العوامل. يسمح هذا باستخدام مفتاح SSH (public/private key pair) للوصول إلى الخادم بدلاً من كلمات المرور التقليدية. يمكن تكوين هذا عن طريق:

  1. إنشاء مفتاح SSH على جهاز العميل (إذا لم يكن لديك واحد بالفعل):

    bash
    ssh-keygen -t rsa -b 4096
  2. إضافة المفتاح العام إلى ملف ~/.ssh/authorized_keys على الخادم.

بعد تفعيل الاستيثاق متعدد العوامل، سيتعين على المستخدمين تقديم المفتاح الخاص أولاً، ثم إدخال الرمز الموقت من تطبيق Google Authenticator.

9. الحفاظ على الأمان بعد التثبيت

إعداد الاستيثاق متعدد العوامل هو خطوة كبيرة نحو تعزيز أمان النظام، ولكن هناك خطوات إضافية يمكنك اتخاذها لضمان الحماية المستمرة:

  • استخدام الجدران النارية (Firewalls): تأكد من أن الفتحات الخاصة بـ SSH محمية بالجدران النارية. على سبيل المثال، يمكن السماح بالوصول إلى SSH فقط من عناوين IP معينة.

  • مراقبة السجلات: تتبع محاولات تسجيل الدخول عبر SSH. يمكنك استخدام أدوات مثل fail2ban لحظر العناوين التي تحاول الوصول إلى الخادم بشكل غير مصرح به.

  • تحديثات النظام الدورية: حافظ على تحديث نظامك لضمان عدم وجود ثغرات أمنية يمكن استغلالها من قبل المهاجمين.

10. الاستفادة من الأدوات الأخرى لتعزيز الأمان

إضافة إلى Google Authenticator، يمكن استخدام تطبيقات أخرى مثل Yubikey أو Duo Security لتقديم خيارات استيثاق متقدمة. هذه الأدوات يمكن أن توفر خيارات مرنة للمستخدمين وتزيد من صعوبة اختراق الخادم.

الخلاصة

إعداد الاستيثاق متعدد العوامل لخدمة SSH على Ubuntu يعد خطوة حاسمة لضمان أمان الأنظمة التي تعتمد على الوصول عن بُعد. من خلال تكامل Google Authenticator مع SSH، يمكنك تعزيز طبقة الأمان عبر إضافة نوعين من التحقق: كلمة المرور والرمز الموقت. من خلال تطبيق هذه الإجراءات، يمكنك تقليل المخاطر الناجمة عن الوصول غير المصرح به بشكل كبير، مما يجعل خادم Ubuntu الخاص بك أكثر أمانًا ضد محاولات الاختراق.