انتقل إلى المحتوى الرئيسي

الفصل 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