تثبيت وتأمين موودل خطوة بخطوة

تثبيت وتأمين موودل خطوة بخطوة Ubuntu 20.04/22.04

Moodle هو نظام إدارة التعلم (LMS) مجاني ومفتوح المصدر يستخدمه المدارس والجامعات والشركات والمنظمات الأخرى لتوفير الدورات وبرامج التدريب عبر الإنترنت. مع Moodle ، يمكنك إنشاء بيئات تعلم مخصصة كاملة مع الاختبارات القصيرة والمنتديات والواجبات ومقاطع الفيديو والمزيد.

يتضمن تثبيت Moodle عدة خطوات بما في ذلك إعداد خادم الويب وخادم قاعدة البيانات و PHP وشفرة Moodle نفسها. تأمين تثبيت Moodle بشكل صحيح أمر بالغ الأهمية أيضًا لمنع الوصول غير المصرح به والتهديدات الأمنية الأخرى.

سيوجهك هذا الدليل خطوة بخطوة من خلال عملية تثبيت Moodle على خادم Linux الذي يعمل بنظام Ubuntu 20.04/22.04. كما يغطي الاعتبارات والتكوينات الأمنية المهمة لقفل الوصول وحماية البيانات. سيؤدي اتباع هذه التعليمات إلى بيئة Moodle كاملة الوظائف ومؤمّنة جاهزة لبناء الدورات.

المتطلبات الأساسية

قبل تثبيت Moodle ، يجب التأكد من تحديث خادم Ubuntu 20.04/22.04 الخاص بك وتثبيت الحزم اللازمة:

$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install apache2 mariadb-server php8.0 php8.0-curl php8.0-zip php8.0-gd php8.0-mbstring php8.0-xml php8.0-soap php8.0-intl -y

ستحتاج أيضًا إلى اسم نطاق يشير إلى العنوان IP العام لخادمك. يستخدم هذا الدليل example.com.

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

تثبيت خادم ويب Apache

يتطلب Moodle خادم الويب Apache لتوصيل صفحات الويب. قم بتثبيت Apache بهذا الأمر:

$ sudo apt install apache2 

اضبط جدار الحماية للسماح بحركة مرور HTTP و HTTPS:

$ sudo ufw allow in "Apache Full"

اختبر أن Apache يعمل بشكل صحيح عن طريق الوصول إلى اسم النطاق أو عنوان IP العام لخادمك من متصفح ويب. يجب أن ترى صفحة Apache الافتراضية.

إعداد قاعدة بيانات MariaDB

يعتمد Moodle على قاعدة بيانات MySQL / MariaDB لتخزين جميع بيانات الدورة. قم بتثبيت MariaDB باستخدام:

$ sudo apt install mariadb-server

قم بتشغيل نص الأمان لإزالة الإعدادات غير الآمنة الافتراضية:

$ sudo mysql_secure_installation

عند المطالبة ، قم بتعيين كلمة مرور جذر وإزالة المستخدمين المجهولين وتعطيل تسجيل دخول جذر عن بُعد وإزالة قاعدة بيانات الاختبار. أجب “نعم” على جميع الأسئلة الأخرى.

أنشئ مستخدم قاعدة بيانات وقاعدة بيانات لـ Moodle. قم بتغيير moodleuser وmoodlepassword إلى بيانات اعتماد آمنة:

$ sudo mysql -u root -p
CREATE DATABASE moodledb;
CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'moodlepassword';
GRANT ALL ON moodledb.* TO 'moodleuser'@'localhost';
exit

أصبحت قاعدة بيانات MariaDB جاهزة الآن لـ Moodle.

تهيئة PHP 8.0 لـ Moodle

يتطلب Moodle PHP مع بعض الوحدات المحددة الممكّنة.

أولاً ، قم بتحرير php.ini لضبط بعض الإعدادات الموصى بها:

$ sudo nano /etc/php/8.0/apache2/php.ini

ابحث عن وقم بتحديث القيم التالية:

max_execution_time = 180
max_input_time = 180  
memory_limit = 256M
upload_max_filesize = 100M
post_max_size = 100M 
max_input_vars = 3000

احفظ الملف واخرج عند الانتهاء.

بعد ذلك ، قم بتمكين وحدات PHP المطلوبة:

$ sudo phpenmod mysqli pdo pdo_mysql json zip intl mbstring soap

أعد تشغيل Apache لتصبح التغييرات في PHP سارية المفعول:

$ sudo systemctl restart apache2

أصبح PHP الآن جاهزًا لتشغيل Moodle.

تحميل وتثبيت Moodle

مع تكوين خادم الويب وقاعدة البيانات وPHP ، يمكنك الآن تثبيت Moodle نفسه.

أولاً ، انتقل إلى دليل جذر الوثيقة لـ Apache:

$ cd /var/www/html

قم بتحميل أحدث إصدار مستقر من Moodle:

$ sudo wget https://download.moodle.org/download.php/stable403/moodle-4.3.2.zip

قم بفك ملفات الضغط:

$ sudo unzip moodle-4.3.2.zip

إعادة تسمية الدليل:

$ sudo mv moodle moodle-install

ضبط الأذونات:

$ sudo chown -R www-data:www-data /var/www/html/moodle-install
$ sudo chmod -R 755 /var/www/html/moodle-install

ادخل إلى اسم النطاق لخادمك متبوعًا بـ /moodle-install في متصفح ويب. سيتم توجيهك إلى صفحة تثبيت Moodle.

حدد لغتك وانتقل إلى الخطوة التالية. قدم تفاصيل قاعدة البيانات الخاصة بك بما في ذلك المضيف والاسم والمستخدم وكلمة المرور. بالنسبة لدليل البيانات ، أدخل المسار /var/www/html/moodledata. استكمل عملية التثبيت عن طريق تعيين اسم مستخدم وكلمة مرور المدير واسم الموقع.

بعد حفظ التكوينات ، سيتم توجيهك إلى واجهة Moodle الرئيسية. تم الآن تثبيت النظام الأساسي ويجب تأمينه.

تأمين تثبيت Moodle

يحتوي تثبيت Moodle الافتراضي على العديد من ثغرات الأمان التي يجب معالجتها. وهذا ينطوي على تغييرات في الإعدادات في Moodle نفسه بالإضافة إلى خادم الويب وقاعدة البيانات.

استخدام HTTPS

لا يتم تشفير حركة مرور HTTP ويمكنها الكشف عن كلمات المرور والبيانات الحساسة الأخرى. لتمكين HTTPS على Apache:

$ sudo a2enmod ssl
$ sudo systemctl reload apache2 

احصل على شهادة SSL/TLS من مزود مثل Let’s Encrypt وقم بتثبيتها وفقًا لتوثيقهم. أعد توجيه جميع حركة مرور HTTP إلى HTTPS عن طريق تحرير /etc/apache2/sites-available/000-default.conf:

<VirtualHost *:80>
        Redirect "/" "https://example.com/"
</VirtualHost>

احفظ الملف وأعد تحميل Apache مرة أخرى. يجب الآن إعادة توجيه الوصول إلى النطاق إلى اتصال HTTPS آمن.

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

يجب أن تكون ملفات ودلائل Moodle مملوكة لمستخدم خادم الويب. قم بتشغيل:

$ sudo chown -R www-data:www-data /var/www/html/moodle*

أغلق الأذونات أكثر مع:

$ sudo find /var/www/html/moodle* -type d -exec chmod 750 {} \;
$ sudo find /var/www/html/moodle* -type f -exec chmod 640 {} \; 

وهذا يمنع مستخدم الويب من إنشاء أو تعديل الملفات في مجلدات Moodle.

استخدم كلمة مرور مسؤول قوية

عند التثبيت الأولي لـ Moodle ، قم بتعيين كلمة مرور قوية للغاية لحساب المسؤول. تأكد من أنها 16 حرفًا على الأقل ، وتستخدم أرقامًا ورموزًا وأحرفًا كبيرة وصغيرة.

يمكنك أيضًا تحسين سياسات كلمة المرور من خلال إنفاذ الحد الأدنى للطول والتعقيد تحت إدارة الموقع> الأمان> سياسات الموقع.

تحديد مُنشئي الدورات

بشكل افتراضي، يمكن لأي مستخدم مسجل الدخول إنشاء دورات جديدة في منصة Moodle. هذا عرض غير ضروري. بدلاً من ذلك، حدد إمكانية إنشاء الدورات فقط للمشرف من خلال الانتقال إلى إدارة الموقع > المستخدمون > الأذونات > تحديد الأدوار.

تحت دور المستخدم الموثوق به، قم بإلغاء تحديد “إنشاء دورات جديدة”. احفظ التغييرات. الآن، يمكن فقط للمشرف إنشاء الدورات.

تعطيل الوصول للضيوف

يسمح الوصول للضيوف لأي شخص بتسجيل الدخول ورؤية محتوى الدورة دون التسجيل في حساب مستخدم. قم بتعطيل هذا الخيار تحت إدارة الموقع> المستخدمون> المصادقة.

قم بتعيين “تمكين الوصول للضيوف” إلى لا واحفظ التغييرات. اشترط تسجيل المستخدم لجميع أنواع الوصول.

استخدم HTTPS للاتصال بقاعدة البيانات

بشكل افتراضي ، يتصل Moodle بقاعدة البيانات عبر HTTP غير المشفرة. قم بتشفير هذا المرور عن طريق تحرير /var/www/html/moodle-install/config.php:

ابحث عن السطر:

$CFG->dbhost = 'localhost'; 

غيّره إلى:

$CFG->dbhost = 'localhost:3306';

وهذا يجبر اتصال SSL المشفر.

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

قم بقفل قاعدة بيانات MariaDB من خلال تعيين كلمة مرور جذر قوية أولاً.

ثم، قم بتقييد الوصول عن بُعد بهذه التعديلات على /etc/mysql/mariadb.conf.d/50-server.cnf:

bind-address = 127.0.0.1  
port = 3306

وهذا يمنع الاتصالات الخارجية بقاعدة البيانات. أعد تشغيل MariaDB بعد إجراء التغييرات.

تأكد أيضًا من عدم وجود جلسة تسجيل دخول لمستخدم mysql Unix:

$ sudo usermod -s /usr/sbin/nologin mysql

وهذا يمنع أي وصول على مستوى نظام التشغيل باستخدام حساب mysql.

حدد تحميل ملفات PHP

يمكن أن تحتوي الملفات التي تم تحميلها على شفرة خبيثة ويجب تقييدها. قم بتعديل /etc/php/8.0/apache2/php.ini وأضف:

file_uploads = On
upload_max_filesize = 2M  
max_file_uploads = 2

وهذا يقيّد التحميل إلى ملفين بحجم 2 ميجابايت لكل منهما. ضبط حسب احتياجاتك.

تعطيل تنفيذ PHP في التحميلات

لمنع تنفيذ ملفات PHP التي تم تحميلها، قم بتعطيلها تحديدًا لدليل التحميل:

<Directory /var/www/html/moodledata/filedir>
   php_admin_flag engine off 
</Directory>

أضف هذا إلى تكوين Apache الخاص بك في /etc/apache2/sites-available/000-default.conf داخل علامات VirtualHost.

قم بتثبيت جدار حماية تطبيقات الويب (WAF)

يوفر WAF رصدًا وتصفيةً معمقة لجميع حركة مرور الويب. يمكنه حظر الحقن SQL و XSS و CSRF والهجمات الأخرى قبل الوصول إلى Moodle.

يتكامل جدار الحماية مفتوح المصدر ModSecurity بشكل وثيق مع Apache. اتبع دليلاً لتثبيته للحصول على حماية قوية ضد التهديدات.

استخدم ملحقات الأمان

يوفر Moodle ملحقات تعزز الأمان في مجالات مثل المصادقة والأذونات والتصفية وما إلى ذلك. ضع في اعتبارك تمكين الملحقات مثل No Self Signups و ReCAPTCHA و Access Rule Levels ، الخ.

الخاتمة

يجب أن يكون لديك الآن بيئة Moodle كاملة الوظائف مثبّتة على Ubuntu مع حزمة LAMP آمنة مؤمّنة لقفل نقاط الضعف. بعض الخطوات التالية هي:

  • إنشاء دورات ومستخدمين ومحتوى
  • تخصيص القالب
  • تثبيت ملحقات إضافية حسب الحاجة
  • إعداد النسخ الاحتياطي وإنشاء خطة للتعافي من الكوارث
  • رصد السجلات للكشف عن أي نشاط مشبوه
  • الاحتفاظ بتحديثات Moodle والاعتماديات

يتطلب تثبيت وتأمين Moodle بشكل صحيح جهدًا ولكن النتيجة هي منصة تعلم إلكتروني يمكن الوثوق بها يثق بها مستخدموك.

LEAVE A COMMENT