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

الفصل 5.4 - أفضل الممارسات

أهداف التعلم​

في نهاية هذا الفصل، ستكون قادرًا على:

  • تطبيق أفضل ممارسات الأمان
  • إدارة المستخدمين بشكل آمن
  • فهم مبدأ الأقل امتيازًا
  • وضع سياسات لكلمات المرور
  • تدقيق الأذونات

مبدأ الأقل امتيازًا​

المفهوم​

إعطاء الأذونات الضرورية فقط، لا أكثر.

الفوائد:

  • تقليل سطح الهجوم
  • الحد من الأضرار في حالة الاختراق
  • الامتثال للأمان

إدارة المستخدمين​

الإنشاء​

أفضل الممارسات:

  • إنشاء مستخدمين برقم UID ≥ 1000
  • مجموعة رئيسية مخصصة
  • دليل المنزل بأذونات 700
  • شل مناسب (ليس /bin/false للمستخدمين العاديين)
# مثال جيد
sudo useradd -m -s /bin/bash -u 1001 -g users user1
sudo chmod 700 /home/user1

الحذف​

أفضل الممارسات:

  • تعطيل قبل الحذف (usermod -L)
  • حفظ البيانات المهمة
  • التحقق من العمليات النشطة
  • تنظيف الأدلة والملفات
# العملية الموصى بها
sudo usermod -L user1 # قفل
sleep 30 # انتظار
sudo pkill -u user1 # قتل العمليات
sudo userdel -r user1 # حذف

إدارة المجموعات​

التنظيم​

أفضل الممارسات:

  • مجموعات حسب المشروع/الفريق
  • مجموعات حسب الوظيفة (developers, admins)
  • تجنب المجموعات الكبيرة جدًا
  • توثيق المجموعات
# مثال على التنظيم
sudo groupadd projet-alpha
sudo groupadd developers
sudo groupadd admins

الأعضاء​

أفضل الممارسات:

  • إضافة المستخدمين الضروريين فقط
  • مراجعة الأعضاء بانتظام
  • إزالة المستخدمين غير النشطين
  • توثيق الإضافات

كلمات المرور​

السياسة​

التكوين في /etc/login.defs:

# المدة الدنيا (أيام)
PASS_MIN_DAYS 1

# المدة القصوى (أيام)
PASS_MAX_DAYS 90

# التحذير (أيام قبل الانتهاء)
PASS_WARN_AGE 7

التعقيد​

التكوين مع PAM:

# /etc/pam.d/common-password (Ubuntu/Debian)
password requisite pam_pwquality.so retry=3 minlen=8 difok=3

المتطلبات:

  • الطول الأدنى (8+ أحرف)
  • التعقيد (حروف كبيرة، حروف صغيرة، أرقام، رموز)
  • عدم استخدام كلمات من القاموس
  • عدم التكرار

الانتهاء​

# فرض التغيير عند تسجيل الدخول التالي
sudo chage -d 0 user1

# تعيين الانتهاء
sudo chage -E 2024-12-31 user1

# عرض المعلومات
chage -l user1

أذونات الملفات​

أدلة النظام​

أفضل الممارسات:

  • /etc: 755 (root:root)
  • /bin, /sbin: 755 (root:root)
  • /home: 755 (root:root)
  • /home/user: 700 (user:user)
  • /tmp: 1777 (root:root, sticky bit)

ملفات التكوين​

أفضل الممارسات:

  • أذونات مقيدة (600-644)
  • المالك root أو الخدمة
  • عدم التنفيذ إلا عند الضرورة
# مثال
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
sudo chmod 640 /etc/group

استخدام sudo​

التكوين​

أفضل الممارسات:

  • استخدام sudo بدلاً من root مباشرة
  • تقييد الأوامر المسموح بها
  • تسجيل الإجراءات
  • مهلة مناسبة
# /etc/sudoers
# منح الوصول الكامل
user1 ALL=(ALL:ALL) ALL

# تقييد الأوامر المحددة
user1 ALL=(ALL) /usr/bin/systemctl, /usr/bin/docker

# بدون كلمة مرور (تحذير!)
user1 ALL=(ALL) NOPASSWD: ALL

التحقق​

# عرض امتيازات sudo
sudo -l

# عرض السجل
sudo cat /var/log/auth.log | grep sudo

التدقيق والمراقبة​

التحقق من الأذونات​

# ملفات بأذونات واسعة
find /home -type f -perm -o+w

# ملفات SUID/SGID
find / -type f -perm /4000 # SUID
find / -type f -perm /2000 # SGID

# أدلة قابلة للكتابة للعالم
find / -type d -perm -o+w

مراقبة الاتصالات​

# المستخدمون المتصلون
who
w

# سجل الاتصالات
last
lastlog

# محاولات فاشلة
sudo grep "Failed password" /var/log/auth.log

أمان root​

أفضل الممارسات​

لا تفعل أبدًا:

  • الاتصال مباشرة كـ root
  • مشاركة حساب root
  • استخدام root للمهام العادية

دائمًا:

  • استخدام sudo
  • تقييد الوصول إلى root
  • تسجيل إجراءات root
  • تغيير كلمة مرور root بانتظام

الملخص​

في هذا الفصل، تعلمت:

الأقل امتيازًا: إعطاء الأذونات الضرورية فقط
المستخدمون: إنشاء آمن، حذف نظيف
المجموعات: تنظيم منطقي، أعضاء مراقبون
كلمات المرور: سياسة قوية، انتهاء
الأذونات: مقيدة، تدقيق منتظم
sudo: تكوين مناسب، تسجيل
التدقيق: تحقق منتظم، مراقبة


الخطوات التالية​

الوحدة 6: برمجة الشل (مع crons)
الوحدة 7: الشبكة والتكوين


الفصل تم إنشاؤه في: ديسمبر 2024