تعزيز أمان السيرفرات: أفضل الممارسات في لينكس
تعزيز أمان السيرفرات في بيئة لينكس يعتبر أمرًا حيويًا لضمان حماية البيانات والحفاظ على استقرار الخدمات. في هذا الدليل، سنستعرض أفضل الممارسات والتقنيات التي يمكن تنفيذها لتعزيز أمان سيرفرات لينكس الخاصة بك.
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
أضف السطر:
bashauth required pam_google_authenticator.so
- تعديل ملف إعدادات SSH:
bash
sudo nano /etc/ssh/sshd_config
تأكد من:
iniChallengeResponseAuthentication 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
تأكد من:
iniPermitRootLogin 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
خاتمة
تعزيز أمان السيرفرات في بيئة لينكس يتطلب اتباع مجموعة من الممارسات والتقنيات المتنوعة لضمان حماية النظام والبيانات من التهديدات المحتملة. من خلال تنفيذ الخطوات المذكورة أعلاه بانتظام، يمكنك تقليل مخاطر الهجمات وتعزيز استقرار وأمان سيرفرك بشكل كبير. تذكر أن الأمان هو عملية مستمرة تتطلب مراقبة وتحديثات دورية لمواكبة التطورات والتهديدات الجديدة.