كيفية إضافة 2FA إلى خادم لينكس لتعزيز الأمان

2FA إلى خادم أمان خادم لينكس المصادقة الثنائية أوبونتو ديبيان ريد هات سينتوس

في عالمنا الرقمي المتغير بسرعة، لم يعد كافيًا حماية خادم Linux الخاص بك بكلمة مرور فقط. مع تطور أدوات القراصنة وازدياد تعقيدها، تزداد فرص تعرض نظامك للاختراق يوميًا. كلمة المرور، مهما كانت قوية، يمكن تخمينها أو سرقتها. وهنا تأتي المصادقة الثنائية (2FA) لتوفير حل.

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

في هذا الدليل، سنتعلم كيفية تكوين وتفعيل 2FA على خادم Linux، مع التركيز على التوزيعات المستخدمة على نطاق واسع مثل Ubuntu، CentOS، وDebian. سنستخدم مكتبة PAM (Pluggable Authentication Modules) من Google، والتي تدعم 2FA باستخدام رموز كلمة مرور مؤقتة تعتمد على الوقت (TOTP)، وسنوضح كيفية تأمين تسجيل الدخول عبر SSH باستخدام 2FA.

لماذا تستخدم المصادقة الثنائية على خادم Linux؟

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

  • الهجمات بالقوة الغاشمة: أنظمة آلية تحاول باستمرار مجموعات مختلفة من كلمات المرور.
  • هجمات التصيد الاحتيالي: خداع المستخدمين لتقديم كلمات المرور الخاصة بهم عن طريق تقليد مواقع ويب أو اتصالات موثوقة.
  • تسجيل النقرات: برامج ضارة تسجل ضغطات المفاتيح، وتلتقط أسماء المستخدمين وكلمات المرور.

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

فوائد إضافة 2FA إلى خادم Linux الخاص بك

  • أمان محسن: تضيف 2FA طبقة إضافية من الأمان إلى نظامك، وتحمي البيانات الحساسة والعمليات الحرجة.
  • تقليل مخاطر الوصول غير المصرح به: بوجود خطوتين للمصادقة، يصبح من الصعب بشكل كبير على المتسللين اختراق النظام.
  • زيادة المسؤولية: تصبح كل عملية تسجيل دخول قابلة للتتبع لصاحب كلمة المرور وجهاز 2FA، مما يعزز المسؤولية.

المتطلبات المسبقة لإعداد 2FA على خادم Linux

قبل البدء في إعداد 2FA، تأكد من تلبية المتطلبات التالية:

  • الوصول إلى خادم Linux: يجب أن تكون لديك صلاحيات root أو المستخدم المتميز (sudo) على الخادم.
  • تكوين SSH: يجب أن يكون Secure Shell (SSH) قد تم تكوينه ويعمل على الخادم.
  • تطبيق المصادقة: هاتف ذكي يحتوي على تطبيق مصادقة مثل Google Authenticator، Authy، أو FreeOTP.

الآن، دعنا نبدأ مع الخطوات الفعلية لإعداد 2FA.

الخطوة 1: تحديث خادم Linux الخاص بك

من الضروري التأكد من أن الخادم الخاص بك يعمل بأحدث البرامج قبل إجراء أي تغييرات. افتح نافذة طرفية وسجل الدخول إلى خادمك. قم بتنفيذ الأوامر التالية حسب توزيعك:

لأوبونتو/Debian:

$ sudo apt update && sudo apt upgrade -y

لـ CentOS/RHEL:

$ sudo yum update -y

يضمن هذا الأمر تحديث جميع حزم النظام.

الخطوة 2: تثبيت وحدة PAM الخاصة بـ Google Authenticator

تساعدك وحدة PAM الخاصة بـ Google Authenticator على إنشاء رموز TOTP (كلمات مرور مؤقتة تعتمد على الوقت). سيتم استخدام هذه الوحدة لتمكين المصادقة الثنائية.

لأوبونتو/Debian:

يمكنك تثبيت حزمة PAM الخاصة بـ Google Authenticator باستخدام مدير الحزم apt:

$ sudo apt install libpam-google-authenticator -y

لـ CentOS/RHEL:

أولاً، تحتاج إلى تمكين مستودع EPEL (Extra Packages for Enterprise Linux)، ثم تثبيت حزمة PAM:

$ sudo yum install epel-release -y
$ sudo yum install google-authenticator -y

يعمل هذا الأمر على تثبيت وحدة PAM، مما يسمح لنظام Linux الخاص بك بتوليد والتحقق من رموز 2FA.

الخطوة 3: تكوين Google Authenticator لمستخدمك

بمجرد تثبيت وحدة PAM، تحتاج إلى تكوين Google Authenticator للحساب المستخدم المطلوب. يجب إجراء هذا التكوين لكل مستخدم على حدة، بدءًا من حسابك الخاص.

سجل الدخول إلى حساب المستخدم الخاص بك (أو الحساب الذي ترغب في حمايته باستخدام 2FA) ونفذ الأمر التالي:

$ google-authenticator

يعرض هذا الأمر سلسلة من الأسئلة وينشئ الملفات اللازمة لتكوين 2FA. دعونا نستعرض العملية:

  1. مسح رمز QR: ستظهر في الطرفية رمز QR. يمكنك مسحه ضوئيًا باستخدام تطبيق Google Authenticator أو أي تطبيق آخر متوافق مع TOTP. إذا لم تتمكن من مسح رمز QR، فسيتم توفير مفتاح سري يمكنك إدخاله يدويًا في التطبيق.
  2. الإجابة على أسئلة الإعداد:
    • تحديث ملف .google_authenticator؟ أجب y لإنشاء ملف تكوين لـ 2FA.
    • تعطيل الاستخدام المتعدد لنفس رمز المصادقة؟ أجب y لضمان استخدام كل رمز مرة واحدة فقط.
    • زيادة النافذة الزمنية؟ أجب n (الخيار الافتراضي) ما لم تواجه مشكلات في المزامنة الزمنية.
    • تمكين الحد من عدد المحاولات؟ أجب y لتقييد عدد محاولات تسجيل الدخول.

بعد إكمال هذه الخطوات، سيقوم تطبيق المصادقة الخاص بك الآن بتوليد رمز جديد من ستة أرقام كل 30 ثانية.

الخطوة 4: تكوين SSH للعمل مع 2FA

بشكل افتراضي، يستخدم SSH فقط المصادقة بكلمة المرور أو المصادقة باستخدام المفتاح العام. لفرض 2FA أثناء عملية تسجيل الدخول عبر SSH، ستحتاج إلى تعديل ملف تكوين SSH وتكوين PAM.

1. تحرير تكوين SSH

افتح ملف تكوين SSH في محرر النصوص المفضل لديك. على سبيل المثال، باستخدام nano:

$ sudo nano /etc/ssh/sshd_config

ابحث عن الأسطر التالية وتأكد من تعيينها كما يلي:

ChallengeResponseAuthentication yes

ملاحظة: في Ubuntu 22.04، يجب استخدام السطر التالي بدلاً من ذلك. يتم تغيير ChallengeResponseAuthentication إلى KbdInteractiveAuthentication.

KbdInteractiveAuthentication yes

يؤدي هذا إلى تمكين المصادقة بالاستجابة التحديّة، وهو أمر ضروري لـ 2FA. بعد ذلك، حدد السطر التالي:

UsePAM yes

تأكد من أن UsePAM مفعلة للسماح باستخدام وحدات PAM، بما في ذلك Google Authenticator، للمصادقة.

2. تعديل تكوين PAM

بعد ذلك، تحتاج إلى تعديل إعدادات PAM لـ SSH من خلال تحرير ملف تكوين PAM:

$ sudo nano /etc/pam.d/sshd

أضف السطر التالي في أعلى الملف:

auth required pam_google_authenticator.so

يشير هذا السطر إلى PAM لاستخدام وحدة Google Authenticator للمصادقة.

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

بعد إجراء تغييرات على تكوين SSH، أعد تشغيل خدمة SSH لتدخل التغييرات حيز التنفيذ:

لأوبونتو/Debian:

$ sudo systemctl restart sshd

لـ CentOS/RHEL:

$ sudo systemctl restart sshd

الخطوة 5: اختبار إعداد 2FA

الآن بعد أنتم تكوين 2FA، يجب عليك اختباره للتأكد من أن كل شيء يعمل كما هو متوقع.

  1. فتح نافذة طرفية جديدة: لا تقم بتسجيل الخروج من جلسة SSH الحالية حتى الآن. افتح نافذة طرفية جديدة لاختبار وظيفة 2FA.
  2. تسجيل الدخول عبر SSH: حاول تسجيل الدخول إلى خادمك عبر SSH. ستُطلب منك أولاً إدخال كلمة المرور الخاصة بك، ثم رمز التحقق من تطبيق المصادقة.

إذا تم تكوين كل شيء بشكل صحيح، يجب أن تتمكن الآن من تسجيل الدخول باستخدام كل من كلمة المرور والرمز 2FA.

التعامل مع المصادقة باستخدام مفتاح SSH مع 2FA

إذا كنت تستخدم مفاتيح SSH للمصادقة، فقد تتساءل عن كيفية عملها مع 2FA. بشكل افتراضي، يتجاوز المصادقة باستخدام المفتاح SSH وحدات PAM (بما في ذلك Google Authenticator). لفرض 2FA على مفاتيح SSH أيضًا، يمكنك تعديل خيارات المصادقة في ملف sshd_config.

تعطيل تجاوز 2FA لمفاتيح SSH

في ملف sshd_config الخاص بك، ابحث عن السطر التالي وعدّله:

AuthenticationMethods publickey,keyboard-interactive

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

نسخ احتياطي لإعداد 2FA الخاص بك

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

عند تشغيل الأمر google-authenticator، سيتم تزويدك بمجموعة من الأكواد الاحتياطية للاستخدام مرة واحدة. قم بكتابة هذه الأكواد واحتفظ بها في مكان آمن.

أفضل الممارسات لإدارة 2FA على خوادم Linux

على الرغم من أن 2FA تحسن بشكل كبير من الأمان، فإن الحفاظ على بيئة خادم آمنة يتطلب أكثر من مجرد تفعيل المصادقة الثنائية. اتبع أفضل الممارسات التالية لضمان بقاء خادمك محميًا:

  • استخدم كلمات مرور قوية: على الرغم من أن 2FA توفر حماية إضافية، تظل كلمة المرور الضعيفة مصدر خطر أمني. استخدم كلمات مرور معقدة أو المصادقة باستخدام المفاتيح SSH.
  • مراقبة سجلات SSH: تحقق بانتظام من سجلات الوصول إلى SSH لاكتشاف أي نشاط مشبوه. يمكن أن ينبهك ذلك إلى محاولات تسجيل الدخول غير المصرح بها.
  • استخدام جدار الحماية: تأكد من تكوين جدار حماية لحجب حركة المرور غير المرغوب فيها والسماح فقط بالمنافذ الضرورية.
  • تعطيل الوصول إلى الجذر عبر SSH: منع تسجيل الدخول المباشر كجذر عبر SSH. بدلاً من ذلك، قم بتسجيل الدخول كمستخدم عادي واستخدم sudo للحصول على صلاحيات الجذر.
  • تقييد الوصول إلى SSH لعناوين IP محددة: إذا كان ذلك ممكنًا، قيد الوصول إلى SSH لعناوين IP محددة أو نطاقات IP، مما يقلل من مساحة الهجوم.

الأسئلة الشائعة

ماذا يحدث إذا فقدت جهازي 2FA؟
يمكنك استعادة الوصول باستخدام الأكواد الاحتياطية التي تم إنشاؤها أثناء إعداد Google Authenticator. احتفظ دائمًا بهذه الأكواد في مكان آمن.

هل يمكنني تعطيل 2FA لبعض المستخدمين؟
نعم، يمكنك تمكين أو تعطيل 2FA لبعض المستخدمين عن طريق تشغيل الأمر google-authenticator فقط للحسابات التي تريد تأمينها.

هل تبطئ 2FA عملية تسجيل الدخول؟
على الرغم من أن 2FA تضيف خطوة إضافية إلى عملية تسجيل الدخول، إلا أن إدخال رمز المصادقة لا يستغرق سوى بضع ثوانٍ، والفوائد الأمنية تفوق بكثير التأخير الطفيف.

هل يمكنني استخدام 2FA مع عملاء SSH الآخرين مثل Putty؟
نعم، تعمل 2FA مع أي عميل SSH، بما في ذلك Putty. سيتم طلب إدخال رمز 2FA بعد تسجيل الدخول.

هل يؤثر تفعيل 2FA على أداء الخادم؟
لا، لا يؤثر تفعيل 2FA بشكل كبير على أداء الخادم. عملية التحقق من رمز 2FA خفيفة وسريعة.

هل يمكنني استخدام الرموز المادية لـ 2FA بدلاً من Google Authenticator؟
نعم، يمكن استخدام الرموز المادية مثل YubiKey أيضًا مع PAM وSSH، ولكن قد يختلف إجراء التكوين قليلاً عما تم شرحه هنا.

الخلاصة

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

يعد تأمين بيئة Linux الخاصة بك باستخدام 2FA جهدًا ضئيلًا، ولكن الفوائد في حماية المعلومات الحساسة ومنع الاختراقات لا تقدر بثمن. خذ الوقت لتطبيق 2FA اليوم، وستحظى براحة البال وأنت تعلم أن خادمك مؤمن.

LEAVE A COMMENT