تحصين خادم SSH
أمّن خادم SSH عبر تحرير sshd_config: عطّل تسجيلات دخول root وكلمات المرور، وغيّر الإعدادات الافتراضية الخطرة، وقيّد المستخدمين، وطبّق طبقات حماية بحيث لا يتمكن من الاتصال إلا العملاء الموثوقون.
تحصين خادم SSH درس مجاني في Linux Server Deployment & SSH Mastery على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Linux Server Deployment & SSH Mastery، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.
لماذا يجب تعزيز حماية SSH؟
يُعد خادم SSH المكشوف على الإنترنت هدفًا دائمًا للهجمات الآلية. وتترك الإعدادات الافتراضية عدة أبواب مفتوحة تتحرى عنها الروبوتات بلا كلل.
يعني تعزيز الحماية تشديد إعدادات الخادم بحيث لا يتمكن المهاجمون من شق طريقهم بالقوة الغاشمة حتى إذا عثروا على خادمكم.
ملف sshd_config
يتحكم الملف /etc/ssh/sshd_config في سلوك SSH على جانب الخادم. وهذا يختلف عن إعداد العميل الذي ضبطتموه سابقًا (~/.ssh/config).
حرّروه دائمًا بصلاحيات root واحتفظوا بنسخة احتياطية قبل إجراء أي تغييرات.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_configتعطيل تسجيل دخول root
حساب root هو أول ما يحاول المهاجمون استخدامه. ويجبر تعطيل تسجيل الدخول المباشر إلى root المهاجمين على تخمين اسم مستخدم صالح أيضًا.
اضبطوا PermitRootLogin على no. ينبغي للمسؤولين تسجيل الدخول كمستخدم عادي واستخدام sudo.
PermitRootLogin noتعطيل المصادقة بكلمة المرور
بعد نجاح المصادقة المعتمدة على المفاتيح، عطّلوا كلمات المرور بالكامل. فهذا يقضي تمامًا على هجمات القوة الغاشمة — إذ لا توجد كلمة مرور لتخمينها.
تحذير: تأكدوا من نجاح تسجيل الدخول باستخدام المفتاح قبل تطبيق هذا الإعداد، وإلا فقد تمنعون أنفسكم من الوصول.
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yesتقييد المستخدمين المسموح لهم بتسجيل الدخول
يمكنكم تحديد الحسابات المسموح لها باستخدام SSH بدقة عبر AllowUsers أو AllowGroups. ويُرفض أي مستخدم غير مدرج حتى مع امتلاكه مفاتيح صالحة.
يمثل هذا إجراءً قويًا وبسيطًا للتحكم في الخوادم متعددة المستخدمين.
AllowUsers deploy admin
# or by group:
AllowGroups sshusersتغيير المنفذ الافتراضي (اختياري)
لا تؤدي إعادة تشغيل SSH على منفذ غير 22 إلى إضافة أمان حقيقي، لكنها تقلل بدرجة كبيرة الضجيج الناتج عن أدوات الفحص الآلية في سجلاتكم.
اختاروا منفذًا غير قياسي، وتذكّروا فتحه في جدار الحماية وإبلاغ العملاء به.
Port 2222الحد من محاولات تسجيل الدخول والجلسات
تقلل عدة توجيهات الفترة الزمنية المتاحة للمهاجمين:
MaxAuthTries— عدد المحاولات الفاشلة قبل قطع الاتصالLoginGraceTime— عدد الثواني المسموح بها للمصادقةMaxSessions— عدد الجلسات المتزامنة لكل اتصال
MaxAuthTries 3
LoginGraceTime 30
MaxSessions 2تطبيق التغييرات بأمان
بعد التحرير، تحقّقوا من صحة البنية باستخدام sshd -t قبل إعادة التشغيل — فقد يؤدي خطأ مطبعي إلى منع الخدمة من البدء، وبالتالي منعكم من الوصول.
بعد ذلك، أعيدوا تحميل الخدمة. أبقوا جلستكم الحالية مفتوحة، واختبروا اتصالًا جديدًا قبل إغلاقها.
sudo sshd -t
sudo systemctl restart sshالحماية من هجمات القوة الغاشمة باستخدام Fail2ban
يراقب Fail2ban سجلات المصادقة لديك ويحظر مؤقتًا عناوين IP التي تفشل مرات كثيرة. وهو يضيف طبقة جدار حماية ديناميكية فوق إعدادات sshd.
ثبّته وفعّل jail الخاص بـ SSH؛ فالإعدادات الافتراضية مناسبة لمعظم الخوادم.
sudo apt install fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshdالتحقق من تشديد الأمان
تأكد من أن الخادم يرفض الآن الأمور التي عطّلتها. حاول الاتصال باستخدام مخرجات مطوّلة لمعرفة أساليب المصادقة التي يوفّرها الخادم.
ينبغي أن يعلن الخادم المشدّد أمنيًا عن publickey فقط، وأن يرفض تسجيلات الدخول باستخدام كلمة المرور أو حساب root.
ssh -v deploy@server
# Look for: 'Authentications that can continue: publickey'أفضل الممارسات
حافظ على أمان خادم SSH بمرور الوقت:
- لا تطبّق
PasswordAuthentication noقبل اختبار تسجيل الدخول باستخدام المفتاح - أبقِ جلسة واحدة مفتوحة أثناء تغيير الإعدادات
- استخدم
sshd -tبعد كل تعديل - اجمع بين تشديد أمان sshd وجدار حماية وFail2ban
تحقق سريع
اختبر معرفتك بتشديد أمان SSH.
مراجعة
لقد شدّدت أمان خادم SSH من خلال /etc/ssh/sshd_config:
- عطّلت تسجيلات الدخول باستخدام root وكلمة المرور
- سمحت للمستخدمين المحددين باستخدام
AllowUsers - ضبطت
MaxAuthTriesوLoginGraceTime - أضفت Fail2ban للحماية الديناميكية من هجمات القوة الغاشمة
تحقق باستخدام sshd -t واختبر دائمًا قبل إغلاق جلستك.
الأسئلة الشائعة
هل درس «تحصين خادم SSH» مجاني؟
نعم — نص درس «تحصين خادم SSH» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Linux Server Deployment & SSH Mastery، انتقل إلى CoddyKit PRO. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.
ماذا ستتعلم في «تحصين خادم SSH»؟
أمّن خادم SSH عبر تحرير sshd_config: عطّل تسجيلات دخول root وكلمات المرور، وغيّر الإعدادات الافتراضية الخطرة، وقيّد المستخدمين، وطبّق طبقات حماية بحيث لا يتمكن من الاتصال إلا العملاء الموثوقون. تتمرن على Linux Server Deployment & SSH Mastery مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Linux Server Deployment & SSH Mastery؟
لا تُشترط خبرة سابقة. Linux Server Deployment & SSH Mastery على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «تحصين خادم SSH»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Linux Server Deployment & SSH Mastery هذا؟
نعم. كل درس في Linux Server Deployment & SSH Mastery يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.