تعزيز أمان السيرفرات: أفضل الممارسات في لينكس

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

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

أ. تحديث نظام التشغيل

  • استخدام مديري الحزم: تأكد من تحديث جميع الحزم المثبتة باستخدام أوامر مثل apt, yum, أو dnf حسب التوزيعة المستخدمة.
    bash
    # على Debian/Ubuntu
    sudo apt update && sudo apt upgrade -y

    # على CentOS/Rocky Linux/AlmaLinux
    sudo dnf update -y

ب. تطبيق التحديثات الأمنية

  • الترقية التلقائية: قم بإعداد التحديثات الأمنية لتُثبت تلقائيًا لضمان سد الثغرات بأسرع وقت ممكن.
    bash
    # على Debian/Ubuntu
    sudo apt install unattended-upgrades
    sudo dpkg-reconfigure unattended-upgrades

2. تكوين جدار الحماية (Firewall)

أ. استخدام UFW (Uncomplicated Firewall)

  • تثبيت وتفعيل UFW:
    bash
    sudo apt install ufw
    sudo ufw enable
  • تكوين القواعد الأساسية:
    bash
    sudo ufw allow 22/tcp # SSH
    sudo ufw allow 80/tcp # HTTP
    sudo ufw allow 443/tcp # HTTPS
    sudo ufw status

ب. استخدام Firewalld (لـ CentOS/Fedora)

  • تثبيت وتفعيل Firewalld:
    bash
    sudo dnf install firewalld
    sudo systemctl start firewalld
    sudo systemctl enable firewalld
  • تكوين القواعد الأساسية:
    bash
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload

3. تأمين الوصول عبر SSH

أ. استخدام مصادقة المفاتيح العامة (Public Key Authentication)

  • توليد مفتاح SSH على جهاز العميل:
    bash
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • نسخ المفتاح إلى السيرفر:
    bash
    ssh-copy-id username@server_ip

ب. تعطيل تسجيل الدخول باستخدام كلمة المرور

  • تحرير ملف إعدادات SSH:
    bash
    sudo nano /etc/ssh/sshd_config
  • تعديل الإعدادات:
    bash
    PasswordAuthentication no
  • إعادة تشغيل خدمة SSH:
    bash
    sudo systemctl restart sshd

ج. تغيير المنفذ الافتراضي لـ SSH

  • تحرير ملف إعدادات SSH:
    bash
    sudo nano /etc/ssh/sshd_config
  • تعديل المنفذ:
    bash
    Port 2222
  • تحديث جدار الحماية:
    bash
    sudo ufw allow 2222/tcp
    sudo ufw delete allow 22/tcp
  • إعادة تشغيل خدمة SSH:
    bash
    sudo systemctl restart sshd

د. تعطيل تسجيل الدخول كمستخدم root عبر SSH

  • تحرير ملف إعدادات SSH:
    bash
    sudo nano /etc/ssh/sshd_config
  • تعديل الإعدادات:
    bash
    PermitRootLogin no
  • إعادة تشغيل خدمة SSH:
    bash
    sudo systemctl restart sshd

4. إدارة المستخدمين والصلاحيات بفعالية

أ. استخدام مجموعات لتوزيع الصلاحيات

  • إنشاء مجموعات جديدة:
    bash
    sudo groupadd admin
  • إضافة مستخدم إلى مجموعة:
    bash
    sudo usermod -aG admin username

ب. استخدام sudo بذكاء

  • تحرير ملف sudoers باستخدام visudo:
    bash
    sudo visudo
  • منح صلاحيات محددة لمستخدم:
    bash
    username ALL=(ALL) /usr/bin/systemctl, /usr/bin/journalctl

5. تثبيت واستخدام أدوات الحماية مثل Fail2Ban

أ. تثبيت Fail2Ban

  • على Debian/Ubuntu:
    bash
    sudo apt install fail2ban
  • على CentOS/Fedora:
    bash
    sudo dnf install fail2ban

ب. تكوين Fail2Ban لحماية SSH

  • نسخ ملف التكوين الأساسي:
    bash
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  • تحرير ملف jail.local:
    bash
    sudo nano /etc/fail2ban/jail.local
  • تعديل الإعدادات:
    ini
    [sshd]
    enabled = true
    port = 2222
    logpath = %(sshd_log)s
    maxretry = 5

ج. إعادة تشغيل Fail2Ban

bash
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban

6. تفعيل SELinux أو AppArmor

أ. SELinux (Security-Enhanced Linux)

  • تثبيت SELinux (إذا لم يكن مثبتًا):
    bash
    sudo dnf install selinux-policy selinux-policy-targeted
  • تفعيل SELinux:
    • تحرير ملف الإعدادات:
      bash
      sudo nano /etc/selinux/config
    • تعيين الوضع:
      ini
      SELINUX=enforcing
  • إعادة تشغيل النظام:
    bash
    sudo reboot

ب. AppArmor

  • تثبيت AppArmor:
    bash
    sudo apt install apparmor apparmor-utils
  • تفعيل AppArmor:
    bash
    sudo systemctl enable apparmor
    sudo systemctl start apparmor

7. تقليل الخدمات النشطة على السيرفر

أ. مراجعة الخدمات الجارية

  • عرض الخدمات:
    bash
    sudo systemctl list-unit-files --type=service

ب. إيقاف وتعطيل الخدمات غير الضرورية

  • إيقاف خدمة:
    bash
    sudo systemctl stop service_name
  • تعطيل خدمة عند الإقلاع:
    bash
    sudo systemctl disable service_name

8. مراقبة السجلات واستخدام أدوات المراقبة

أ. مراقبة السجلات باستخدام journalctl و logwatch

  • عرض سجلات النظام:
    bash
    sudo journalctl -xe
  • تثبيت واستخدام Logwatch:
    bash
    sudo apt install logwatch
    sudo logwatch --detail High --service all --range today --format html > /var/www/html/logwatch.html

ب. استخدام أدوات المراقبة المتقدمة

  • Nagios: لمراقبة الخدمات والموارد.
  • Zabbix: لجمع وتحليل مقاييس النظام.
  • Prometheus و Grafana: لجمع البيانات وعرضها بشكل مرئي.

9. تنفيذ استراتيجيات النسخ الاحتياطي

أ. استخدام أدوات النسخ الاحتياطي

  • rsync: لمزامنة الملفات بين السيرفرات.
    bash
    rsync -avz /source/ user@backup_server:/destination/
  • tar: لأرشفة وضغط الملفات.
    bash
    tar -czvf backup.tar.gz /path/to/data

ب. جدولة النسخ الاحتياطي باستخدام cron

  • تحرير جدول cron:
    bash
    crontab -e
  • إضافة مهمة نسخ احتياطي يومية:
    cron
    0 2 * * * rsync -avz /source/ user@backup_server:/destination/

10. استخدام التشفير لحماية البيانات الحساسة

أ. تشفير الأقراص باستخدام LUKS

  • تثبيت cryptsetup:
    bash
    sudo apt install cryptsetup
  • تهيئة تشفير القرص:
    bash
    sudo cryptsetup luksFormat /dev/sdX
    sudo cryptsetup open /dev/sdX encrypted_disk

ب. تشفير الاتصالات باستخدام SSL/TLS

  • استخدام Let’s Encrypt للحصول على شهادات SSL مجانية:
    bash
    sudo apt install certbot
    sudo certbot --apache
  • تكوين الخوادم لاستخدام SSL: تأكد من إعداد خوادم الويب لاستخدام الشهادات المصدرة.

11. تنفيذ المصادقة الثنائية (2FA)

أ. تثبيت Google Authenticator

  • تثبيت الحزمة:
    bash
    sudo apt install libpam-google-authenticator
  • تهيئة المصادقة الثنائية للمستخدم:
    bash
    google-authenticator
  • تعديل إعدادات PAM:
    bash
    sudo nano /etc/pam.d/sshd

    أضف السطر:

    bash
    auth required pam_google_authenticator.so
  • تعديل ملف إعدادات SSH:
    bash
    sudo nano /etc/ssh/sshd_config

    تأكد من:

    ini
    ChallengeResponseAuthentication yes
  • إعادة تشغيل خدمة SSH:
    bash
    sudo systemctl restart sshd

12. استخدام أدوات فحص الأمان

أ. استخدام Lynis

  • تثبيت Lynis:
    bash
    sudo apt install lynis
  • تشغيل فحص أمان:
    bash
    sudo lynis audit system

ب. استخدام OpenVAS

  • تثبيت OpenVAS:
    bash
    sudo apt install openvas
    sudo gvm-setup
  • تشغيل الفحص: استخدم واجهة المستخدم الرسومية لـ OpenVAS لفحص السيرفر بحثًا عن الثغرات.

13. الحد من استخدام حساب root

أ. إنشاء مستخدم إداري بديل

  • إنشاء مستخدم جديد:
    bash
    sudo adduser adminuser
    sudo usermod -aG sudo adminuser
  • تسجيل الدخول باستخدام المستخدم الإداري الجديد بدلاً من root.

ب. تعطيل تسجيل الدخول كـ root عبر SSH

  • تحرير ملف إعدادات SSH:
    bash
    sudo nano /etc/ssh/sshd_config

    تأكد من:

    ini
    PermitRootLogin no
  • إعادة تشغيل خدمة SSH:
    bash
    sudo systemctl restart sshd

14. استخدام برامج مكافحة الفيروسات (إن لزم)

أ. تثبيت ClamAV

  • تثبيت ClamAV:
    bash
    sudo apt install clamav clamav-daemon
  • تحديث قواعد الفيروسات:
    bash
    sudo freshclam
  • تشغيل فحص كامل:
    bash
    sudo clamscan -r /home

15. تقليل سطح الهجوم

أ. إغلاق المنافذ غير الضرورية

  • استخدام netstat أو ss لعرض المنافذ المفتوحة:
    bash
    sudo netstat -tuln
    # أو
    sudo ss -tuln
  • إغلاق المنافذ غير المستخدمة عبر جدار الحماية.

ب. إزالة الحزم غير الضرورية

  • إزالة الحزم غير المستخدمة:
    bash
    sudo apt purge package_name
    sudo apt autoremove

خاتمة

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

من geekadmin