For the complete documentation index, see llms.txt. This page is also available as Markdown.

دليل الأمان

يغطي هذا الدليل أفضل الممارسات الأمنية لتشغيل منصة Chamilo 2.0 في بيئة الإنتاج. الأمان هو مسؤولية مشتركة بين برمجيات المنصة، وتكوين خادمك، والممارسات التشغيلية المستمرة.

دائمًا قم بتحديث Chamilo

الممارسة الأمنية الأكثر أهمية هي الحفاظ على تثبيت Chamilo محدثًا.

  • اشترك في حساب X الأمان Chamilo (@chamilosecurity) أو راقب مستودع GitHub لإعلانات الإصدارات.

  • طبق تصحيحات الأمان فورًا. التحديثات الفرعية في فرع 2.0 مصممة لتكون آمنة للتطبيق.

  • اتبع عملية الترقية لكل تحديث.

HTTPS

قدم Chamilo دائمًا عبر HTTPS في بيئة الإنتاج.

  • احصل على شهادة SSL/TLS (يوفر Let's Encrypt شهادات مجانية عبر Certbot).

  • قم بتكوين خادم الويب الخاص بك لإعادة توجيه جميع حركة المرور HTTP إلى HTTPS.

  • فعّل رأس HSTS (HTTP Strict Transport Security) لمنع هجمات التراجع:

    Strict-Transport-Security: max-age=31536000; includeSubDomains

بدون HTTPS، بيانات اعتماد تسجيل الدخول، وملفات تعريف الارتباط للجلسة، وبيانات المستخدمين جميعها تُرسل كنص عادي ويمكن اعتراضها في الشبكة.

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

حدّ من أذونات الملفات إلى الحد الأدنى الممكن.

المسار
المالك
الإذن
الملاحظات

ملفات التطبيق (كود المصدر)

root أو مستخدم النشر

755 (الدلائل)، 644 (الملفات)

خادم الويب يحتاج فقط إلى الوصول للقراءة.

var/

مستخدم خادم الويب

775

يجب أن يكون قابلاً للكتابة لتخزين Symfony المؤقت، والسجلات، ورفع الملفات

.env

root أو مستخدم النشر

640

يحتوي على أسرار. خادم الويب يحتاج فقط إلى الوصول للقراءة أثناء الاستخدام العادي، لكنه يحتاج إلى الوصول للكتابة أثناء التثبيت.

config/

root أو مستخدم النشر

750

يحتوي على أسرار. خادم الويب يحتاج فقط إلى الوصول للقراءة أثناء الاستخدام العادي، لكنه يحتاج إلى الوصول للكتابة أثناء التثبيت.

لا تقم أبدًا بتعيين أذونات إلى 777. لا تقم أبدًا بتشغيل خادم الويب كـ root.

سياسة كلمة المرور

قم بتكوين متطلبات كلمة مرور قوية في إعدادات الأمان:

  • الحد الأدنى لطول 8 أحرف (يُوصى بـ 12+).

  • اجعل مزيجًا إلزاميًا من الحروف الكبيرة، والحروف الصغيرة، والأرقام، والأحرف الخاصة.

  • فكّر في تفعيل انتهاء صلاحية كلمة المرور لبيئات الامتثال.

  • علّم المستخدمين اختيار كلمات مرور قوية وفريدة.

حدود المعدل وحماية القوة الغاشمة

مستوى التطبيق

  • اضبط العدد الأقصى لمحاولات تسجيل الدخول قبل حظر الحساب (login_max_attempt_before_blocking_account) إلى قيمة صغيرة (مثل 5).

  • فعّل CAPTCHA في صفحة تسجيل الدخول. CAPTCHA نشط/غير نشط — لا يُفعّل تلقائيًا بعد N محاولات فاشلة. اقرنه بـ أخطاء CAPTCHA قبل الحظر (captcha_number_mistakes_to_block_account) لحظر الحسابات التي تفشل في CAPTCHA باستمرار.

مستوى الخادم

استخدم fail2ban لمراقبة فشل تسجيل الدخول وحظر عناوين IP المخالفة:

أنشئ فلترًا مناسبًا في /etc/fail2ban/filter.d/chamilo-auth.conf لمطابقة إدخالات سجل فشل المصادقة.

إدارة الجلسات

  • اضبط عمر الجلسة معقولًا (مثل، 3600 ثانية / 1 ساعة) في إعدادات الأمان.

  • قم بتكوين علامات ملف تعريف الارتباط للجلسة في تكوين Symfony الخاص بك:

  • فكّر في تعطيل "تذكرني" على المنصات ذات المحتوى الحساس.

رؤوس الأمان HTTP

قم بتكوين خادم الويب الخاص بك لإرسال رؤوس الأمان:

الرأس
القيمة
الغرض

X-Content-Type-Options

nosniff

منع استكشاف نوع MIME.

X-Frame-Options

SAMEORIGIN

منع clickjacking عبر iframe.

X-XSS-Protection

1; mode=block

حماية XSS القديمة للمتصفحات القديمة.

Referrer-Policy

strict-origin-when-cross-origin

التحكم في تسرب معلومات referrer.

Content-Security-Policy

متنوع

التحكم في الموارد القابلة للتحميل. يتطلب تعديلًا دقيقًا لـ Chamilo.

مثال لـ Apache:

مثال لـ Nginx:



أمان رفع الملفات

  • قم بحظر امتدادات الملفات القابلة للتنفيذ (exe, bat, sh, php, phtml, cgi) في إعدادات الأمان.

  • قم بتكوين خادم الويب الخاص بك لـ عدم تنفيذ الملفات المرفوعة أبدًا. بالنسبة لـ Apache، أضف إلى جميع مجلد var/:

  • قم بفحص الملفات المرفوعة باستخدام مضاد فيروسات (ClamAV) إذا كان بيئتك تتطلب ذلك.

أمان قاعدة البيانات

  • استخدم مستخدم قاعدة بيانات مخصص لـ Chamilo مع الحقوق الوصولية الضرورية فقط (SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX على قاعدة بيانات Chamilo).

  • لا تستخدم حساب root قاعدة البيانات.

  • تأكد من أن قاعدة البيانات غير قابلة للوصول من الإنترنت العام. اربطها بـ localhost أو شبكة خاصة.

  • فعّل تسجيل تدقيق قاعدة البيانات لبيئات حساسة تجاه الامتثال.

النسخ الاحتياطي (Backup)

  • جدول نسخ احتياطي تلقائي يومي لقاعدة البيانات والملفات المرفوعة.

  • احفظ النسخ الاحتياطية في موقع منفصل عن الخادم (خارج الموقع أو تخزين سحابي).

  • اختبر استعادة النسخ الاحتياطية بشكل دوري للتأكد من أنها قابلة للاستخدام.

  • شفر النسخ الاحتياطية إذا كانت تحتوي على بيانات حساسة.

انظر النسخ الاحتياطي للحصول على تعليمات مفصلة.

المراقبة

  • راقب سجلات Chamilo في var/log/prod.log لاكتشاف الأخطاء والأنشطة المشبوهة.

  • أعد مراقبة الخادم (CPU، الذاكرة، القرص) لاكتشاف نفاد الموارد.

  • قم بتكوين التنبيهات لفشل المصادقة المتكرر.

  • راجع حسابات المستخدمين بشكل دوري لاكتشاف الحسابات غير المصرح بها أو غير النشطة.

قائمة التحقق

استخدم قائمة التحقق هذه عند تنفيذ أو تدقيق تثبيت Chamilo:

آخر تحديث

هل كان هذا مفيدا؟