الرئيسية
» مسؤول الشبكة
»
قم بإصلاح تحذير السماح بتجاوز جميع عناصر Apache في ownCloud بأمان
قم بإصلاح تحذير السماح بتجاوز جميع عناصر Apache في ownCloud بأمان
إذا أبلغ ownCloud عن فقدان إعداد Apache AllowOverride All، فأضفه إلى <Directory>قسم Apache الذي يتطابق مع مسار تثبيت ownCloud، ثم اختبر الإعدادات، وأعد تشغيل Apache. في تثبيت Debian أو Ubuntu النموذجي، يوجد الإعداد في المضيف الظاهري النشط لـ ownCloud أو في قسم الدليل المطابق في إعدادات Apache. لا تُفعّل التجاوزات على مستوى الخادم بأكمله لمجرد إزالة تحذير واحد.
في خادم ownCloud (الإصدار الكلاسيكي)، يجب السماح لبرنامج Apache بقراءة قواعد التثبيت .htaccess. تدعم هذه القواعد إعادة كتابة عناوين URL وتساعد في حماية المسارات الحساسة. لذا، قد يؤثر غياب قاعدة أو عدم فعاليتها على كلٍ من عناوين URL النظيفة وفحص أمان دليل البيانات. ينطبق هذا الدليل على خادم ownCloud الذي يستخدم خادم Apache HTTP؛ ولا ينطبق على Nginx أو ownCloud Infinite Scale أو إعدادات الاستضافة التي يتحكم فيها مزود الخدمة بتكوين Apache.
مرجع سريع
الهدف
تحقق من الإعداد
السماح بقواعد ownCloud لكل دليل
AllowOverride All<Directory>في الكتلة المطابقة
تأكد من قدرة Apache على تحليل التغيير
sudo apachectl -tيجب الإبلاغSyntax OK
تفعيل التكوين
sudo systemctl reload apache2على دبيان أو أوبونتو
تحقق من عناوين URL النظيفة
تأكد mod_rewriteمن تفعيل هذا الخيار إذا كانت إعداداتك تتطلب ذلك
تأكد من اختفاء التحذير
أعد تحميل نظرة عامة على إدارة ownCloud بعد اختبار عنوان URL المتأثر
ماذا يعني التحذير؟
يُحدد توجيه Apache AllowOverrideما إذا كان مسموحًا للتوجيهات الموجودة في .htaccessالملفات بالتأثير على الطلبات. يلتزم Apache فقط AllowOverrideبما هو موجود داخل <Directory>قسم معين؛ فوضع السطر في المستوى الأعلى لمضيف افتراضي أو في كتلة غير ذات صلة لن يُفعّله لملفات ownCloud. <Directory>قد تعني قاعدة أوسع، أو قاعدة أكثر تحديدًا، أو مضيف افتراضي آخر مُفعّل، أن الإعداد الذي عدّلته ليس هو الإعداد الذي يُلبّي الطلب.
توضح إرشادات تثبيت خادم ownCloud الحالي (الإصدار 10.16) AllowOverride Allفي قسم دليل جذر مستندات ownCloud، أن صلاحية "الكل" تسمح بتجاوز الفئات التي تدعمها وحدات Apache في هذا النطاق. يُنصح بحصر هذه الصلاحية في دليل ownCloud فقط، بدلاً من تغيير سياسة نظام الملفات العامة لـ Apache. كما يشرح دليل Apache AllowOverrideListللمسؤولين إمكانية السماح بتوجيهات محددة فقط، ولكن قائمة محدودة تتطلب اختبار توافق دقيق مع إصدار ownCloud وقواعده المرفقة .htaccess.
مثال على وضع المضيف الافتراضي AllowOverride Allداخل كتلة الدليل لـ /var/www/owncloud.
قبل تغيير أباتشي
تأكد من أن المنتج هو خادم ownCloud (الإصدار الكلاسيكي)، وحدد المسار الدقيق لنظام الملفات الخاص بجذر موقع الويب. /cloudقد يشير عنوان URL مثل هذا، عبر خادم Apache، Aliasإلى دليل مختلف على القرص.
ابحث عن المضيف الظاهري النشط وملف التكوين. في أنظمة Debian أو Ubuntu، تشمل المواقع الشائعة /etc/apache2/sites-available/و /etc/apache2/apache2.conf. أما في أنظمة RHEL، فعادةً ما يوجد تكوين Apache أسفل /etc/httpd/. يمكن للوحات الاستضافة والحاويات استخدام مسارات أخرى.
قم بعمل نسخة احتياطية من الملف قبل التحرير واحتفظ بأي توجيهات موجودة خاصة بـ TLS، والوكيل، والتحكم في الوصول، و ownCloud.
تحقق مما إذا كانت هناك AllowOverride Noneقاعدة أخرى أو قاعدة دليل تنطبق على نفس المسار. لا تقم بتحرير ملف موقع افتراضي غير مُفعّل لاسم مضيف ownCloud.
إصلاح خادم أباتشي ذاتي الإدارة
1. قم بتحرير التكوين النشط
في نظامي Debian أو Ubuntu، افتح المضيف الافتراضي الذي يخدم اسم مضيف ownCloud، على سبيل المثال:
في هذا الملف، ابحث عن <Directory>قسم خاص بدليل تثبيت ownCloud الفعلي أو أضف قسمًا جديدًا. يوضح هذا المثال البسيط الموقع المطلوب؛ احتفظ بأي توجيهات إضافية مطلوبة بالفعل من خادمك.
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
استبدل /var/www/owncloud/المسار الفعلي بمسارك الحقيقي. إذا كان Apache يربط عنوان URL بمسار آخر Alias، فقم بتكوين دليل نظام الملفات الذي يحتوي على ملفات ownCloud، وليس مسار URL فقط. يتضمن دليل تثبيت Apache الخاص بـ ownCloud ملاحظات تكوين إضافية؛ استخدم المثال الذي يتوافق مع إصدار ownCloud وإعداد PHP لديك.
2. تحقق من الوحدات النمطية والبنية النحوية
للحصول على عناوين URL نظيفة بدون علامات اقتباس index.php، يجب استخدام مستندات ownCloud mod_rewriteكمتطلبات mod_envأساسية. على نظامي Debian أو Ubuntu، فعّل وحدة إعادة الكتابة إذا لم تكن مفعلة بالفعل.
sudo a2enmod rewrite
sudo apachectl -t
يجب أن ينتهي اختبار التكوين بـ Syntax OK. إذا أبلغ عن خطأ، فقم بإصلاحه قبل إعادة التحميل. يثبت فحص بناء الجملة الناجح قدرة Apache على تحليل تكوينه؛ ولكنه لا يثبت أن المضيف الظاهري الصحيح نشط أو أن العملية الجارية قد حمّلت الملف المُعدَّل.
يجب أن يعود اختبار تكوين Apache Syntax OKقبل إعادة تحميل الخدمة.
3. أعد تحميل Apache واختبر ownCloud
في نظامي Debian أو Ubuntu، أعد تحميل Apache بعد نجاح فحص بناء الجملة:
sudo systemctl reload apache2
في أنظمة عائلة RHEL، يُطلق على الخدمة عادةً اسم `<اسم httpdالخدمة>`، لذا استخدم اسم الخدمة المطابق وأمر `configuration-test` الخاص بالتوزيعة. لا تنسخ أوامر Debian إلى نظام آخر قبل التأكد من بنية الخدمة فيه.
افتح اسم مضيف ownCloud في متصفحك واختبر صفحةً كانت تحتاج سابقًا إلى إعادة كتابة. إذا كان الخادم يستخدم بادئة مسار مثل `/` /cloud، فاختبر عنوان URL المُسبق أيضًا. يشير تكرار إعادة التوجيه، أو استجابة 403، أو خطأ Apache 500 إلى أن الإعدادات لا تزال بحاجة إلى فحص؛ لذا راجع سجل أخطاء Apache وسجل ownCloud بدلًا من تغيير التوجيهات غير ذات الصلة بشكل متكرر.
قم بالتمكين mod_rewriteفقط عند الحاجة، ثم أعد تحميل خدمة Apache بعد التحقق الناجح من بناء الجملة.
إذا استمر التحذير
العرض
التحقق التالي
يبقى التحذير بعد إعادة التحميل
تأكد من تمكين المضيف الظاهري المعدل واستخدامه لاسم المضيف؛ افحص apachectl -Sوتحقق من وجود قاعدة دليل ذات مستوى أدنى أو أكثر تحديدًا.
لا تزال عناوين URL النظيفة تتضمنindex.php
تأكد من mod_rewriteتمكين ذلك، وأن دليل ownCloud لديه إذن التجاوز المقصود، وأن قاعدة إعادة كتابة ownCloud تتطابق مع مسار عنوان URL الخاص به.
تشير صفحة الإدارة إلى أن دليل البيانات قد يكون متاحًا للعامة
تحقق من وجود مجلد البيانات خارج جذر الموقع الإلكتروني إن أمكن. وإلا، فتأكد من وجود مجلد البيانات المُرفق .htaccess، وإمكانية قراءته، وأن خادم Apache يلتزم به؛ ولا تعتبر إزالة التحذير بديلاً عن حماية المجلد.
يقوم خادم Apache بإرجاع رمز الخطأ 500 أو يُبلغ عن رسالة "غير مسموح به هنا".
اقرأ سجل أخطاء Apache. .htaccessقد لا تسمح فئات التجاوز النشطة بتوجيه معين، أو قد تكون وحدة نمطية مطلوبة غير متوفرة.
التشغيل في حاوية أو مضيف مُدار
افحص إعدادات Apache الموثقة للصورة أو لوحة تحكم الموفر. قد لا يكون ملف Apache على مستوى المضيف هو الخادم الذي يعالج الطلبات.
إذا أبلغ ownCloud عن .htaccessتعذر تحديث ملفه، فتحقق من ملكية الملفات وصلاحيات الكتابة وفقًا لإرشادات الترقية والتحصين الخاصة بـ ownCloud قبل تغييرها. تجنب جعل التثبيت بأكمله قابلاً للكتابة بواسطة خادم الويب كاختصار. تشير وثائق ownCloud إلى أن تفاصيل التكوين تختلف باختلاف التثبيت، وأن PHP-FPM لا يستخدم إعدادات PHP من ملف .php .htaccess؛ بل توجد إعدادات هذه الحالة في ملف .user.ini.php. هذا التمييز في PHP لا يُغني عن حاجة Apache لمعالجة قواعد إعادة الكتابة والوصول الخاصة بـ ownCloud.
قائمة التحقق من الصحة
يتطابق المسار <Directory>تمامًا مع ملفات ownCloud الموجودة على القرص.
تحتوي الكتلة المطابقة على AllowOverride All، ولا توجد قاعدة متعارضة نشطة لها الأسبقية.
sudo apachectl -tالعائدات Syntax OK.
تمت إعادة تحميل Apache باستخدام اسم الخدمة الصحيح.
يتم تحميل صفحة تسجيل الدخول إلى ownCloud وعنوان URL المتأثر سابقًا عبر HTTPS كما هو متوقع.
لم تعد نظرة عامة على الإدارة تعرض نفس التحذير بعد التحديث، ويظل دليل البيانات غير قابل للوصول إليه من الويب العام.
مثال على صفحة تسجيل الدخول إلى ownCloud على اسم المضيف المُكوّن؛ تأكد من حالة التحذير الفعلية في نظرة عامة على الإدارة الخاصة بك.