یک پیکربندی دیگر برای امنیت دروپال

Drupal security

یک پیکربندی مناسب دیگر برای میزبانی اشتراکی سایت ها، توسط php و apache به این صورت می باشد که پروسه ی apache تحت کاربر و گروه www-data:www-data اجرا می شود. و برای هر وب سایت نیز یک کاربر و گروه در لینوکس ایجاد می کنیم.

مثلا برای سایت test1.com کاربر و گروه test1:test1 و برای سایت test2.com، کاربر و گروه test2:test2 را ایجاد می کنیم.

فایل های هر وی سایت، در پوشه ی خانگی کاربر مربوطه ذخیره می شود به عنوان مثال

 

/home/site1/public_html

مجوز های پوشه ها را برابر 0750 قرار می دهیم و مجوز های فایل ها را 0640 قرار می دهیم. کاربر و گروه owner فایل هم، همان کاربر و گروه صاحب فایل می باشد.

cd /home/site1
chown site1:site1 -R .
find -type d -exec chmod 0750 {} \;
find -type f -exec chmod 0640 {} \;

منتها مشکل در این جا این است که آپاچی نمی تواند به فایل های کاربران دسترسی داشته باشد.

در روش قبلی، گفتم که به تمام فایل ها group owner وب سرور را بدهید. یعنی www-data. اما در این روش جدید، شما می توانید apache را به تمامی گروه های کاربران اضافه کنید. یعنی در این روش، بر عکس، به ازای هر سایت، یک گروه جدید به وب سرور اضافه می کنیم. خوشبختانه در لینوکس این امکان وجود دارد که یک کاربر عضو چند گروه باشد.

usermod -a -G site1 www-data
usermod -a -G site2 www-data

و به این ترتیب مشکل دسترسی برطرف می شود. اما باید به تعداد سایت هایی که میزبانی میشود، گروه به آپاچی نسبت دهیم.

تذکر: تنظیم umask و تنظیمات فایل settings.php که در مطلب قبلی ذکر شد، نیز فراموش نشود.

تذکر: فراموش نکنید که حرفه ای ترین و امن ترین روش برای میزبانی، استفاده از chroot jail می باشد و یا استفاده از ACL ها. منتها من در این مطلب به روش های ساده تر پرداختم. ضمن این که بسیاری از هاست های اشتراکی که الان موجود است، از همین روش های ساده هم گاها استفاده نمی کنند و کلا تکنیک امنیتی خاصی را پیاده سازی نکرده اند.

نکته: یکی از اهداف اصلی من این است که که امنیت هاست به گونه این باشد که بتوانیم به کاربران دسترسی SSH بدهیم و ضمنا امنیت سیستم همچنان حفظ شود.

موفق باشید.

افزودن دیدگاه جدید