DenyHosts: حماية خوادم SSH من هجمات القوة الغاشمة

<![CDATA[

آلية عمل DenyHosts

تعتمد DenyHosts على عدة آليات رئيسية للكشف عن هجمات القوة الغاشمة وحماية الخادم:

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

فوائد استخدام DenyHosts

يوفر استخدام DenyHosts العديد من الفوائد الأمنية الهامة:

  • حماية فعالة من هجمات القوة الغاشمة: تمنع DenyHosts المهاجمين من تخمين كلمات مرور SSH عن طريق حظر عناوين IP التي تقوم بمحاولات تسجيل دخول فاشلة متكررة.
  • تقليل استهلاك موارد الخادم: عن طريق حظر عناوين IP الخبيثة، تقلل DenyHosts من الحمل على خادم SSH وتوفر الموارد لوظائف أخرى.
  • سهولة الاستخدام: DenyHosts سهلة التثبيت والتكوين، ويمكن استخدامها على مجموعة متنوعة من أنظمة التشغيل Linux و Unix.
  • زيادة الأمان العام للخادم: من خلال منع الوصول غير المصرح به إلى خادم SSH، تساعد DenyHosts في تحسين الأمان العام للخادم وحماية البيانات الحساسة.
  • تنبيهات فورية: يمكن تكوين DenyHosts لإرسال تنبيهات عبر البريد الإلكتروني عند اكتشاف هجمات، مما يتيح للمسؤولين الاستجابة بسرعة للحوادث الأمنية.

تثبيت DenyHosts

يختلف إجراء تثبيت DenyHosts اعتمادًا على نظام التشغيل المستخدم. ومع ذلك، فإن الخطوات الأساسية تتضمن عادةً ما يلي:

  1. تنزيل DenyHosts: يمكن تنزيل أحدث إصدار من DenyHosts من موقع الويب الرسمي أو من مستودعات الحزم الخاصة بنظام التشغيل.
  2. استخراج الملفات: بعد تنزيل الحزمة، يجب استخراج الملفات إلى دليل مناسب.
  3. تكوين DenyHosts: يجب تعديل ملف التكوين (denyhosts.conf) لتحديد إعدادات مثل عدد محاولات تسجيل الدخول الفاشلة المسموح بها، ومدة الحظر، وعناوين البريد الإلكتروني لتلقي التنبيهات.
  4. بدء DenyHosts: بعد التكوين، يمكن بدء خدمة DenyHosts.

مثال على تثبيت DenyHosts على نظام Debian/Ubuntu:

sudo apt update
sudo apt install denyhosts

بعد التثبيت، يمكن تعديل ملف التكوين الموجود في `/etc/denyhosts.conf` لتلبية الاحتياجات الخاصة.

تكوين DenyHosts

يعد ملف التكوين (denyhosts.conf) هو المكان الذي يتم فيه تحديد سلوك DenyHosts. تتضمن بعض الإعدادات الهامة ما يلي:

  • `SECURE_LOG`: مسار ملف سجل SSH الذي سيتم مراقبته.
  • `HOSTS_DENY`: مسار ملف `hosts.deny` الذي سيتم تحديثه بعناوين IP المحظورة.
  • `BLOCK_SERVICE`: الخدمة التي سيتم حظرها (عادةً SSH).
  • `DENY_THRESHOLD_INVALID`: عدد محاولات تسجيل الدخول الفاشلة بأسماء مستخدمين غير صالحة قبل حظر عنوان IP.
  • `DENY_THRESHOLD_VALID`: عدد محاولات تسجيل الدخول الفاشلة بأسماء مستخدمين صالحة قبل حظر عنوان IP.
  • `DENY_THRESHOLD_ROOT`: عدد محاولات تسجيل الدخول الفاشلة كمستخدم root قبل حظر عنوان IP.
  • `AGE_RESET_VALID`: المدة الزمنية (بالثواني) التي يتم بعدها إعادة تعيين عداد محاولات تسجيل الدخول الفاشلة لاسم مستخدم صالح.
  • `AGE_RESET_INVALID`: المدة الزمنية (بالثواني) التي يتم بعدها إعادة تعيين عداد محاولات تسجيل الدخول الفاشلة لاسم مستخدم غير صالح.
  • `AGE_RESET_ROOT`: المدة الزمنية (بالثواني) التي يتم بعدها إعادة تعيين عداد محاولات تسجيل الدخول الفاشلة للمستخدم root.
  • `DAEMON_SLEEP`: المدة الزمنية (بالثواني) التي ينتظرها DenyHosts بين عمليات فحص السجلات.
  • `LOCK_FILE`: مسار ملف القفل الذي يستخدمه DenyHosts لمنع تشغيل مثيلات متعددة في وقت واحد.
  • `ADMIN_EMAIL`: عنوان البريد الإلكتروني الذي سيتم إرسال التنبيهات إليه.
  • `SMTP_HOST`: اسم مضيف خادم SMTP المستخدم لإرسال التنبيهات.
  • `SMTP_PORT`: منفذ خادم SMTP المستخدم لإرسال التنبيهات.
  • `SMTP_USERNAME`: اسم مستخدم خادم SMTP.
  • `SMTP_PASSWORD`: كلمة مرور خادم SMTP.
  • `SYNC_SERVER`: عنوان URL لخادم المزامنة الذي سيتم استخدامه لمشاركة معلومات الحظر.
  • `SYNC_INTERVAL`: المدة الزمنية (بالثواني) بين عمليات المزامنة.

بعد تعديل ملف التكوين، يجب إعادة تشغيل خدمة DenyHosts لتطبيق التغييرات.

إدارة قوائم الحظر

تحتفظ DenyHosts بقوائم عناوين IP المحظورة في ملف `hosts.deny`. يمكن تعديل هذا الملف يدويًا لإضافة أو إزالة عناوين IP. ومع ذلك، يجب توخي الحذر عند تعديل هذا الملف لتجنب حظر عناوين IP مشروعة.

بالإضافة إلى ذلك، تحتفظ DenyHosts بقوائم أخرى مثل:

  • `/var/lib/denyhosts/denied`: قائمة بعناوين IP المحظورة بشكل دائم.
  • `/var/lib/denyhosts/allowed-hosts`: قائمة بعناوين IP المسموح بها دائمًا، ولا يتم حظرها أبدًا.

يمكن إضافة عناوين IP إلى قائمة العناوين المسموح بها لمنع حظرها عن طريق الخطأ.

أفضل الممارسات لاستخدام DenyHosts

لتحقيق أقصى استفادة من DenyHosts، يجب اتباع أفضل الممارسات التالية:

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

بدائل DenyHosts

على الرغم من أن DenyHosts أداة فعالة لحماية خوادم SSH من هجمات القوة الغاشمة، إلا أن هناك بدائل أخرى متاحة، مثل:

  • Fail2ban: أداة مماثلة لـ DenyHosts، ولكنها أكثر مرونة وتدعم مجموعة واسعة من الخدمات.
  • OSSEC: نظام كشف التسلل مفتوح المصدر يمكن استخدامه لمراقبة سجلات SSH والكشف عن هجمات القوة الغاشمة.
  • CrowdSec: منصة أمنية تشاركية مفتوحة المصدر تستخدم الذكاء الاصطناعي للكشف عن الهجمات وحظر عناوين IP الخبيثة.

يعتمد اختيار الأداة المناسبة على الاحتياجات الخاصة للمستخدم ومستوى الأمان المطلوب.

مثال على سيناريو هجوم

لنفترض أن هناك مهاجمًا يحاول اختراق خادم SSH الخاص بك باستخدام هجوم القوة الغاشمة. يقوم المهاجم بتجربة مجموعة متنوعة من كلمات المرور على حسابات مختلفة. بدون DenyHosts، سيستمر المهاجم في محاولة تخمين كلمات المرور، مما قد يؤدي في النهاية إلى اختراق الخادم.

ولكن مع DenyHosts، سيتم مراقبة سجلات SSH، وعندما تتجاوز محاولات تسجيل الدخول الفاشلة من عنوان IP الخاص بالمهاجم الحد المحدد في ملف التكوين، سيتم حظر عنوان IP الخاص بالمهاجم تلقائيًا. هذا يمنع المهاجم من الاستمرار في محاولة تخمين كلمات المرور ويحمي الخادم من الاختراق.

ملاحظات هامة

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

خاتمة

DenyHosts هي أداة قيمة لحماية خوادم SSH من هجمات القوة الغاشمة. من خلال مراقبة سجلات SSH وحظر عناوين IP الخبيثة، تساعد DenyHosts في منع الوصول غير المصرح به إلى الخادم وحماية البيانات الحساسة. سهولة التثبيت والتكوين تجعلها خيارًا جذابًا لمسؤولي النظام الذين يسعون إلى تحسين أمان خوادمهم.

المراجع

]]>