الفصل 9.4 - التدقيق ومراقبة الأمان
أهداف التعلم
في نهاية هذا الفصل، ستكون قادرًا على:
- استخدام أدوات تدقيق Linux
- مراقبة محاولات الوصول
- تحليل سجلات الأمان
- اكتشاف الأنشطة المشبوهة
- تكوين تنبيهات الأمان
- فهم أدوات تدقيق النظام
تدقيق Linux (auditd)
التثبيت
# Ubuntu/Debian
sudo apt install auditd audispd-plugins
# Red Hat/CentOS
sudo yum install audit
الخدمة
# الحالة
sudo systemctl status auditd
# بدء
sudo systemctl start auditd
# تفعيل
sudo systemctl enable auditd
قواعد التدقيق
عرض القواعد
# قائمة القواعد
sudo auditctl -l
# عرض القواعد المحملة
sudo ausearch -i
إضافة قواعد
# تدقيق الوصول إلى الملف
sudo auditctl -w /etc/passwd -p rwxa -k passwd_access
# تدقيق أوامر sudo
sudo auditctl -w /usr/bin/sudo -p x -k sudo_commands
# تدقيق الاتصالات الشبكية
sudo auditctl -a always,exit -F arch=b64 -S connect -k network_connect
# تدقيق تغييرات الأذونات
sudo auditctl -w /etc -p wa -k etc_changes
قواعد دائمة
# ملف: /etc/audit/rules.d/audit.rules
# الصيغة:
-w /etc/passwd -p rwxa -k passwd_access
-w /etc/shadow -p rwxa -k shadow_access
-w /usr/bin/sudo -p x -k sudo_commands
إعادة التحميل:
sudo systemctl restart auditd
البحث في السجلات
ausearch
# البحث بواسطة مفتاح
sudo ausearch -k passwd_access
# البحث بواسطة مستخدم
sudo ausearch -ua user1
# البحث بواسطة نوع
sudo ausearch -m USER_LOGIN
# البحث عن حديث
sudo ausearch -ts recent
# البحث في فترة
sudo ausearch -ts 01/01/2024 00:00:00 -te 01/02/2024 00:00:00
aureport
# تقرير ملخص
sudo aureport
# تقرير بواسطة مستخدم
sudo aureport -u
# تقرير بواسطة نوع الحدث
sudo aureport -e
# تقرير الإخفاقات
sudo aureport --failed
# تقرير الاتصالات
sudo aureport -au
مراقبة السجلات
سجلات الأمان
# Ubuntu/Debian
sudo tail -f /var/log/auth.log
# Red Hat/CentOS
sudo tail -f /var/log/secure
# محاولات فاشلة
sudo grep "Failed password" /var/log/auth.log
# اتصالات SSH
sudo grep "sshd" /var/log/auth.log
# sudo
sudo grep "sudo" /var/log/auth.log
last و lastlog
# تاريخ الاتصالات
last
last -n 20 # آخر 20
# آخر اتصال بواسطة مستخدم
lastlog
# مستخدم محدد
lastlog -u user1
who و w
# المستخدمون المتصلون
who
w
# التفاصيل
w -f
اكتشاف التسلل
سكربت المراقبة
#!/bin/bash
# مراقبة الأمان
LOG_FILE="/var/log/security-monitor.log"
log_event() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" >> "$LOG_FILE"
}
# محاولات فشل SSH
FAILED_SSH=$(grep "Failed password" /var/log/auth.log | wc -l)
if [ "$FAILED_SSH" -gt 10 ]; then
log_event "تنبيه: $FAILED_SSH محاولات SSH فاشلة"
fi
# مستخدمون جدد
NEW_USERS=$(lastlog | grep -v "Never logged in" | wc -l)
log_event "المستخدمون النشطون: $NEW_USERS"
# ملفات معدلة حديثًا
MODIFIED=$(find /etc -type f -mtime -1 2>/dev/null | wc -l)
if [ "$MODIFIED" -gt 0 ]; then
log_event "تنبيه: $MODIFIED ملفات معدلة في /etc"
fi
التنبيهات التلقائية
#!/bin/bash
# تنبيهات الأمان عبر البريد الإلكتروني
# الإعدادات
ALERT_EMAIL="admin@example.com"
THRESHOLD=10
# محاولات SSH الفاشلة
FAILED=$(grep "Failed password" /var/log/auth.log | tail -20 | wc -l)
if [ "$FAILED" -ge "$THRESHOLD" ]; then
echo "تنبيه: $FAILED محاولات SSH فاشلة" | \
mail -s "تنبيه أمان SSH" "$ALERT_EMAIL"
fi
أدوات المراقبة
fail2ban
الحماية من القوة الغاشمة:
# التثبيت
sudo apt install fail2ban
# الإعداد
sudo nano /etc/fail2ban/jail.local
# التفعيل
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# الحالة
sudo fail2ban-client status
sudo fail2ban-client status sshd
rkhunter
اكتشاف rootkits:
# التثبيت
sudo apt install rkhunter
# تحديث قاعدة البيانات
sudo rkhunter --update
# الفحص
sudo rkhunter --check
# فحص سريع
sudo rkhunter --check --skip-keypress
chkrootkit
اكتشاف rootkits:
# التثبيت
sudo apt install chkrootkit
# الفحص
sudo chkrootkit
تقارير الأمان
سكربت التقرير
#!/bin/bash
# تقرير الأمان اليومي
REPORT="/var/log/security-report-$(date +%Y%m%d).txt"
{
echo "=== تقرير الأمان $(date) ==="
echo
echo "=== الاتصالات ==="
last -n 20
echo
echo "=== المحاولات الفاشلة ==="
grep "Failed password" /var/log/auth.log | tail -10
echo
echo "=== المستخدمون مع sudo ==="
sudo -l | grep -E "^User|^Runas"
echo
echo "=== الخدمات النشطة ==="
systemctl list-units --type=service --state=running | head -20
echo
echo "=== المنافذ المفتوحة ==="
ss -tuln | grep LISTEN
} > "$REPORT"
# إرسال عبر البريد الإلكتروني
mail -s "تقرير الأمان $(date +%Y-%m-%d)" admin@example.com < "$REPORT"
Cron للمراقبة
# /etc/cron.daily/security-check
#!/bin/bash
# التحقق اليومي من الأمان
# فحص rootkit
rkhunter --check --skip-keypress
# التحقق من سلامة الملفات
# (إذا كان AIDE مثبتًا)
# aide --check
# التقرير
/usr/local/bin/security-report.sh
الملخص
في هذا الفصل، تعلمت:
auditd: نظام تدقيق Linux، القواعد، السجلات
البحث: ausearch، aureport لتحليل السجلات
المراقبة: سجلات auth، last، who، w
الاكتشاف: سكربتات المراقبة، التنبيهات
الأدوات: fail2ban، rkhunter، chkrootkit
التقارير: أتمتة تقارير الأمان
الممارسة: المراقبة المستمرة، التنبيهات، التقارير
الخطوات التالية
الوحدة 10: إدارة الحزم
الوحدة 11: المراقبة والسجلات
تم إنشاء الفصل في: ديسمبر 2024