خطوات تأمين سيرفر اباتشي على سيرفر اوبنتو securing apache

تأمين سيرفر اباتشي

التأكد من تحديث اباتشي

sudo apt install apache2

التأكد ان اباتشي يعمل بيوزر بصلاحيات محدودة مثلا حتى لا يتمكن المهاجم من الوصول لصلاحيات اعلى في حالة اختراق اليوزر

منع اباتشي من نشر معلومات عن السيرفر والنظام:

ندخل لملف اعدادات اباتشي ونعدله باستخدام التالي

sudo nano /etc/apache2/apache2.conf

نضع المجلد الذي نرغب بحمايته لو كان ووردبريس نضع التالي:

<Directory /var/www/wordpress>

      AllowOverride All

      Options -Indexes

      ServerSignature off

</Directory>

الاوامر الثلاثة السابقة ، الاول يسمح بتعديل قواعد الامان في كل مجلد على حده ، والثاني يمنع عرض الملفات والمجلدات ، والثالث يمنع السيرفر من ارسال بيانات اصدار السيرفر ونظام التشغيل وغيرها

وكذلك نقوم بتفعيل الخيار التالي كذلك من نفس الملف حتى نتمكن من استخدامها داخل المجلدات

AccessFileName .htaccess

الآن نقوم باعادة تشغيل اباتشي

sudo systemctl restart apache2



السماح باستعراض الملفات او تعطيل ذلك داخل اي مجلد directory listing

نقوم بعمل هذا باستخدام .htaccess 

نقوم بانشاء ملف .htaccess داخل المجلد المطلوب حمايته كالتالي

sudo nano .htaccess

ولمنع استعراض الملفات نكتب التالي

Options -Indexes

وللسماح باستعراض الملفات نكتب الامر التالي

Options Indexes

الآن نقوم بتغيير المالك لملف .htaccess الى www-data

sudo chown www-data:www-data .htaccess

وكذلك نعدل صلاحيات الملف ليصبح للقراءة فقط بدون كتابة باستخدام الامر التالي

sudo chmod 0444 .htaccess

وبهذا نكون انتهينا


منع الدخول لاي مجلد باستخدام .htaccess الا باستخدام كلمة مرور

نقوم بتثبيت اداة htpasswd الموجودة مع مكتبة اباتشي باستخدام الامر التالي:

sudo apt install apache2-utils

نقوم بانشاء اسم مستخدم وكلمة مرور خاصة للمجلد باستخدام الاوامر التالية

cd /etc/apache2/

sudo htpasswd -c /etc/apache2/.htpasswd UserName

الان نقوم بادخال كلمة المرور واعادة ادخالها للتأكيد

لو استعرضنا المجلد الحالي سنجد ملف جديد يحتوي على الباسورد باسم

.htpasswd

الآن نذهب لملف .htaccess في المجلد الذي نريد حمايته كالتالي

sudo nano .htaccess

ونكتب التالي

Options -Indexes

AuthType Basic

AuthName "Write anything here"

AuthUserFile /etc/apache2/.htpasswd

Require valid-user

وقم بحفظ الملف

الآن لن تستطيع الدخول للمجلد المقصود الا بعد ادخال اسم المستخدم وكلمة المرور


اضافات أمان مهمة على ملف كل موقع website.com.conf:


# Additional Security Settings

add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';

add_header Content-Security-Policy "default-src 'self'; font-src 'self'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none';";

add_header X-XSS-Protection "1; mode=block";

add_header X-Frame-Options "SAMEORIGIN";

add_header Referrer-Policy "strict-origin";

add_header Permissions-Policy "geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()";

add_header X-Content-Type-Options "nosniff";


ملاحظات هامة:

- يجب التأكد ان جميع صلاحيات الملفات والمجلدات التابعة للموقع هي 755 ووالقراءة فقط للملفات الحساسة

- يجب التأكد ان جميع صلاحيات ملفات .htaccess هي 0444

- يجب التأكد ان المالك لجميع المجلدات والملفات داخل مجلد الموقع هو www-data


في الموضوع القادم سأكتب عن modsecurity وطريقة تثبيته لحماية اكبر ضد الطلبات التخريبية للسيرفر


وبالتوفيق للجميع