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