قائمة مراجعة أفضل ممارسات أمان Apache المكونة من 14 خطوة (يتضمن كتابًا إلكترونيًا بتنسيق PDF)
نشرت: 2017-11-22ريلايفكس / Stock.adobe.com
يظل Apache حاليًا برنامج خادم الويب الرائد في العالم بحصة سوقية تبلغ 45.8%. وينتهي الأمر بوجود حوالي 80 مليون موقع ويب يتم تشغيل خوادم الويب الخاصة بها بواسطة Apache. مثير للإعجاب للغاية، أليس كذلك؟
Apache هو برنامج خادم ويب مفتوح المصدر موجود منذ عام 1995، وهذا وحده يتحدث كثيرًا عن موثوقيته وطول عمره. ثم هناك مواقع الويب رفيعة المستوى التي تعمل على خوادم Apache: تعد Apple وAdobe وPaypal مجرد عدد قليل من العلامات التجارية الكبرى التي تعهد بمواقعها الإلكترونية إلى Apache.
بالطبع، هذا لا يجعل Apache آمنًا بنسبة 100%، حيث لن يكون أي برنامج آمنًا بنسبة 100% من المتسللين، خاصة عندما يكون نظامًا أساسيًا معروفًا وموثوقًا به (يشبه إلى حد كبير WordPress). ولكن إذا كنت تبحث عن كتاب إلكتروني أو وحدة أو دليل أو برنامج تعليمي أو إطار عمل أو قائمة مراجعة أمان خادم الويب لـ Apache، فقد وصلت إلى المكان الصحيح.
إذا كنت ترغب في تعزيز أمان Apache الخاص بك أو كنت تواجه أي مشكلات أمنية في Apache أو تحاول تصحيح ثغرة أمنية أو اثنتين، فستزودك قائمة التحقق التالية بـ 14 من أفضل ممارسات الأمان لإضافتها إلى خطة أمان موقع الويب الخاص بك.
القائمة المرجعية لأفضل ممارسات أمان Apache
بالنسبة لأولئك منكم الذين يريدون تحصين موقع الويب الخاص بكم على WordPress حقًا، يعد تأمين Apache كما تفعل مع أي برنامج آخر يتصل بموقع الويب الخاص بك ويشغله أمرًا ضروريًا. قد يؤدي عدم القيام بذلك إلى التأثير على سرعة موقعك. لذا، إليك كيفية القيام بذلك:
1. تحديث أباتشي
هل تعرف كيف يحتاج WordPress وأي مكونات إضافية وموضوعات قمت بتثبيتها إلى التحديث بانتظام؟ وكذلك يفعل خادم الويب الخاص بك.
إذا كنت متوترًا لأن موقعك لا يعمل على أحدث إصدار من Apache، فيمكنك التحقق من ذلك باستخدام سطر الأوامر httpd -v. إذا كان الإصدار الناتج لا يتطابق مع الإصدار الحالي من Apache، فيمكنك تحديثه بما يلي:
# yum update httpd
# apt-get install [add Apache version here]c
2. قم بتشغيل السجلات
إذا كنت تعمل مع موفر استضافة WordPress مُدار، فسوف يهتمون بمراقبة الخادم الخاص بك وWordPress بحثًا عن نقاط الضعف وعلامات التحذير الأخرى. ومع ذلك، يجب عليك مراقبة حركة مرور الخادم الخاص بك أيضًا.
باستخدام Apache، يمكنك الوصول إلى سجل الأنشطة هذا عن طريق تحديث وحدة mod_log_config الخاصة بك. في الأساس، سيخبرك بما يفعله المستخدمون عندما يلمسون خادمك.
3. احصل على شهادة SSL
نظرًا لأن خادم الويب الخاص بك يتعامل مع جميع طلبات المتصفح/الخادم إلى موقع الويب الخاص بك، فمن المهم تأمينه باستخدام شهادة SSL. والخبر السار هو أنه يمكنك الآن الحصول على شهادة SSL مجانًا. يعد هذا الأمر أكثر أهمية الآن من أي وقت مضى، لذلك إذا لم تكن لديك القدرة التقنية على تثبيت هذا بنفسك، فإن أي مزود استضافة عالي الجودة سيكون قادرًا على القيام بذلك نيابةً عنك.
4. أضف جدار حماية
بالإضافة إلى الحماية الإضافية التي يوفرها تشفير SSL، يجب أن يكون خادم الويب الخاص بك محصنًا بجدار الحماية. بالنسبة لـ Apache، هذا يعني تشغيل ModSecurity.
لتثبيته على الخادم الخاص بك، يمكنك تنفيذ ما يلي:
# yum install mod_security
# /etc/init.d/httpd restart
بمجرد تشغيل جدار الحماية، فإنه سيمنع عددًا من الأنشطة الضارة من الوصول إلى الخادم الخاص بك، مثل حقن SQL واختطاف الجلسة والبرمجة النصية عبر المواقع.
5. قم بتثبيت mod_evasive
Mod_evasive هي الوحدة التي ستحمي خادم Apache الخاص بك من هجمات القوة الغاشمة وهجمات DDoS، لذا تأكد من تمكين هذا أيضًا. سيتم إدراج محاولات تسجيل الدخول المتزامنة والفاشلة في القائمة السوداء بالإضافة إلى مراقبة عناوين IP الضارة.
6. قم بتعيين حدود HTTP
من السهل جدًا حظر هجمات رفض الخدمة الموزعة (DDoS) إذا كنت تعرف نوع الإجراءات التي يجب مراقبتها. نظرًا لأن DDoS يحدث عادةً عن طريق ضرب خادمك بشكل متكرر بطلبات كبيرة، فيجب أن يكون هدفك هو وضع حدود تمنع حدوث ذلك.
فيما يلي بعض الحدود التي تريد وضعها:
- KeepAlive=on
- استمر في حياة الوقت الضائع
- LimitRequestBody
- LimitRequestFields
- LimitRequestFieldSize
- خط طلب الحد
- LimitXMLRequestBody
- MaxClients
- طلبات MaxKeepAlive
- com.MaxRequestWorkers
- طلب وقت القراءة
- نفذ الوقت
7. حذف الوحدات غير المستخدمة
من خلال ترك وحدات غير مستخدمة أو غير خاضعة للصيانة أو منتهية الصلاحية على خادم Apache الخاص بك، فإنك تترك موقعك مفتوحًا أمام المتسللين من خلال نقطة دخول لا تحتاج حتى إلى التواجد هناك.
أول شيء يجب عليك فعله هو معرفة الوحدات النشطة بالفعل. يمكنك القيام بذلك باستخدام أمر LoadModule. بمجرد التدقيق في القائمة وتحديد الوحدات التي لا تحتاج إليها، ما عليك سوى إضافة الرمز "#" قبل كل وحدة تريد إلغاء تنشيطها ثم إعادة التشغيل.
8. تغيير المستخدم والمجموعة الافتراضية
تعد الإعدادات الافتراضية والمستخدمين المتبقيين على أي برنامج، بشكل عام، ممارسة أمنية سيئة. السبب وراء ذلك بسيط: إذا كنت تستخدم اسم مستخدم أو مجموعة Apache الافتراضي، فيمكنك المراهنة على أن المتسللين على علم بهذه الأسماء الافتراضية أيضًا.
بدلاً من ترك الإعدادات الافتراضية في مكانها، يجب عليك إنشاء حساب جديد غير مميز لتشغيل عمليات Apache الخاصة بك من خلاله. باستخدام أوامر #groupadd و# useradd، يمكنك تعيين الكيانات الجديدة. تذكر فقط تحديث httpd.conf بأسماء المستخدمين والمجموعة الجديدة التي قمت بإنشائها.
9. حظر الوصول إلى الدليل
فيما يلي مثال آخر على الإعدادات الافتراضية التي تحتاج إلى تغيير. في هذه الحالة، فإن الوصول الممنوح لملفات الدليل الخاص بك هو الذي يسمح لأي شخص باستكشاف أي مكان يريده.
لوضع كتلة كاملة في مكانها، استخدم الأمر التالي:
<Directory "/">
Require all denied
</Directory>
إذا كنت تريد تمكين الوصول لمستخدمين معينين، فيمكنك القيام بذلك من خلال ما يلي:
<Directory "/usr/users/*/public_html">
Require all granted
</Directory>
إذا كنت تريد تمكين الوصول إلى مجلدات معينة داخل الدليل، فيمكنك القيام بذلك باستخدام هذا:
<Directory "/usr/local/httpd">
Require all granted
</Directory>
قد ترغب أيضًا في الاطلاع على مستودع وحدة Apache لمزيد من التغيير والتبديل في حقوق وصول المستخدم.
10. لا تنشر الدليل
هل تعلم أنه إذا لم يكن الخادم الخاص بك يحتوي على ملف فهرس، فسيتمكن المستخدمون من رؤية كل المحتوى الذي قمت بتخزينه في الدليل الجذر الخاص بك؟ من الواضح أن هذا ليس جيدًا، لذا ستحتاج إلى تعطيل هذا الإعداد الافتراضي باستخدام ما يلي:
<Directory /var/www/html>
Options -Indexes
</Directory>
11. إخفاء تفاصيل الخادم
نظرًا لأن Apache هو برنامج مفتوح المصدر، فإن التفاصيل حول الإصدار المستخدم متاحة بسهولة إذا لم يتم تعطيل هذه الإعدادات من جانب الخادم. وبما أن المتسللين يمكنهم استخدام هذه المعلومات الحساسة لمعرفة كيفية اقتحام الخادم الخاص بك، فستحتاج إلى حظر هذه المعلومات.
هناك شيئان تريد تعطيلهما:
- ServerSignature – وهو إصدار Apache
- ServerTokens - الذي يتضمن إصدار نظام التشغيل، من بين تفاصيل الخادم الحساسة الأخرى
يمكن للمستخدمين الآخرين العثور على هذه المعلومات ببساطة عن طريق عرض صفحة خطأ على موقع الويب الخاص بك، لذلك من المهم جدًا منع ظهورها. للقيام بذلك، قم بتحديث httpd.conf بما يلي:
ServerSignature Off
ServerTokens Prod
12. إخفاء ETag
لسوء الحظ، يتضمن رأس ETag في Apache عددًا من التفاصيل الحساسة حول خادمك. ومن الواضح أن أي شيء يشارك هذا النوع من المعلومات مع العالم الخارجي يجب أن يكون مخفيًا. بالإضافة إلى ذلك، إذا كنت تدير موقعًا للتجارة الإلكترونية، فستحتاج إلى إخفاء هذا حتى تكون متوافقًا مع PCI.
للقيام بذلك، قم بإضافة التوجيه التالي إلى httpd.conf الخاص بك:
FileETag None
13. قم بتعطيل تجاوز htaccess
يعد ملف .htaccess ملفًا مهمًا لأي موقع ويب WordPress. ولهذا السبب تحتاج إلى قفله والتأكد من عدم تمكن أي شخص آخر من تجاوز إعدادات التكوين الخاصة بك.
لتعطيل هذا، قم بإضافة ما يلي إلى httpd.conf الخاص بك في الجذر:
<Directory />
Options -Indexes
AllowOverride None
</Directory>
14. قم بتعطيل SSI وCGI
يمكن للملفات التي تتضمن جانب الخادم (SSI) أن تفتح موقعك لعدد من مشكلات الأمان إذا تركت دون تحديد. الشيء نفسه ينطبق على البرامج النصية CGI. من أجل منع أي منهما من تمكين المتسللين من زيادة التحميل على الخادم الخاص بك أو إدخال نصوص برمجية ضارة في التعليمات البرمجية الخاصة بك، تذكر إيقاف تشغيلها أو تقييد ما يفعلونه من خلال توجيه الخيارات.
فيما يلي بعض قيم الخيارات التي يمكنك استخدامها:
- خيارات الكل
- تتضمن الخيارات NOEXEC
- خيارات-تتضمن
- الخيارات -ExecCGI
- الخيارات - تتضمن -ExecCGI
- خيارات طرق العرض المتعددة
رعاية خادم أباتشي الخاص بك
في محاولة لتعزيز أمان موقع الويب الخاص بك، قم بإيلاء اهتمام خاص لخادم Apache الخاص بك. يمكن أن تؤدي مشكلات مثل التكوين الخاطئ للخادم وترك الإعدادات الافتراضية في مكانها إلى تعريض موقعك للخطر بنفس القدر الذي يمكن أن تتعرض له ممارسات ترميز PHP الأساسية غير المحدثة أو غير الآمنة.
هل تريد تقديم ملاحظاتك أو الانضمام إلى المحادثة؟أضف تعليقاتك على تويتر.