در این مقاله به ادامه ارائه راهکارهایی جهت افزایش امنیت در وب سرور آپاچی میپردازیم:
غیرفعال نمودن Override در htaccess.
جهت جلوگیری از override فایل htaccess ، باید آن را غیرفعال کنیم. بدین منظور کد زیر را در روت به httpd.conf اضافه میکنیم:
<Directory/> Options -Indexes AllowOverride None </Directory>
در صورتیکه بخواهیم از Override تنظیمات وب سرور استفاده کنیم باید فایل htaccess غیرقابل دانلود باشد. همچنین میتوان نام این فایل را به httpdoverride. تغییر داده و یا دسترسی به تمام فایل هایی با پسوند ht. را به صورت زیر محدود نماییم:
AccessFileName .httpdoverride
<"Files~ "^\.ht> Order allow,deny Deny from all Satisfy All <Files/>
در دسترس نبودن فایل های خارج از روت وب سرور
وب سرور تنها باید به فایل های وب سایت دسترسی داشته باشد. بنابراین با انجام تنظیماتی میتوان این محدودیت را ایجاد نمود. به علت اینکه هر وب سایت درون یک دایرکتوری قرار میگیرد میتوان به صورت محدودیت را اعمال نمود:
</Directory> Order Deny,Allow Deny from all Options None AllowOverride None <Directory/>
<Directory/webdataco>
Order Allow,Deny Allow from all
<Directory/>
در مثال بالا دایرکتوری وب سایت webdataco نام دارد.
دسترسی به تنظیمات آپاچی تنها توسط کاربر روت
برای انجام این کار دستورات زیر را در محیط SSH وارد میکنیم.
chown -R root:root /usr/local/apache chmod -R o-rwx /usr/local/apache
محدود کردن XML Body
با استفاده از کد زیر میتوان این کار را انجام داد:
LimitXMLRequestBody 10325760
کاهش زمان TimeOut
زمان TimeOut در آپاچی بصورت پیشفرض بر روی ۳۰۰ ثانیه تنظیم شده است.با کاهش این زمان میتوان تا حدودی از حملات DDOS جلوگیری نمود.برای انجام این کار در فایل httpd.conf کد زیر را ویرایش میکنیم.
Timeout 45
محدود کردن دسترسی با آی پی
در صورتیکه بخواهیم وب سایت تنها از طریق شبکه داخلی قابل نمایش باشد ، میتوانیم با آی پی این محدودیت را ایجاد نماییم.از کد زیر استفاده میکنیم:
Order Deny,Allow Deny from all Allow from 185.16.0.0/16
یا
Order Deny,Allow Deny from all Allow from 127.0.0.1
اعمال تنظیمات HTTP
جهت مقابله با حملات DDoS ، بهترین راهکار محدود نمودن و جلوگیری از ارسال درخواست های پی در پی به سرور میباشد. برخی از این تنظیمات عبارتند از:
KeepAlive=on KeepAliveTimeout LimitRequestBody LimitRequestFields LimitRequestFieldSize LimitRequestLine LimitXMLRequestBody MaxClients MaxKeepAliveRequests MaxRequestWorkers RequestReadTimeout TimeOut
پنهان کردن هدر ETag
هدر ETag حاوی اطلاعاتی درمورد سرور میباشد که هیچ شخصی از بیرون نباید بتواند به این اطلاعات دسترسی داشته باشد. برای انجام این کار کد زیر را به فایل httpd.conf آپاچی اضافه میکنیم:
FileETag None
محدود سازی درخواست های همزمان
این کار با انجام تنظیماتی در آپاچی امکانپذیر است.مواردی مانند MaxClients , MaxSpareServers , MaxRequestsPerChild , ThreadsPerChild , ServerLimit , MaxSpareThreads باید مطابق با توانایی سخت افزار و سیستم عامل تنظیم شود.
MaxClients تعداد Child Proccess هایی است که میتواند توسط درخواست ها ایجاد شود
اجرای آپاچی در محیط Chroot
Chroot این امکان را میدهد تا هر برنامه در یک محیط ایزوله شده و مجزا از برنامه های دیگر اجرا شود. با انجام این کار ، رد صورت اختلال در هر یک از سرویس های وب سرویس ، مشکلی در بخش های دیگر ایجاد نخواهد شد. برای انجام این کار کد زیر را وارد میکنیم:
SecChrootDir /chroot/apache