اگر شما میزبان یک وب سایت یا یک اپلیکیشن تحت وب هستید، احتمالا تا به حال حملات DoS یا Brute Force را تجربه نموده اید اما با نصب mod_evasive در آپاچی می توان بسیاری از حملات را دفع نمود. mod_evasive ماژولی است که عمل دفع حملات در هنگام حمله HTTP DoS یا برخی حمله DDoS یا Brute Force را انجام می دهد. هم چنین mod_evasive طوری طراحی شده تا یک ابزار مشاهده حملات هکری باشد و به سادگی برای اطلاع دادن به شما در مورد برخی حملات سایبری و بودن در نقش یک فایروال لایه 7 پیکربندی شده است بطوری که حتی در مواقع ضروری برای شما ایمیل اطلاعیه نیز می فرستد. نحوه کار به این صورت است که این ماژول آدرس IP ارسال شده به شما را که بیش از حد معمول به شما درخواست داده به مدت 10 دقیقه مسدود نموده تا به این صورت حملات را کنترل نماید. لازم به ذکر است که در فایل تنظیمات، این زمان را می توان کاهش یا افزایش داد.
آموزش نصب mod_evasive در Centos 7
در این مقاله آموزشی قصد داریم نحوه فعال سازی، پیکربندی و نصب mod_evasive بر روی سیستم عامل centos 7 را دنبال نموده و به این منظور از ابزار توسعه آپاچی لینوکس استفاده می نماییم.
نکته: اگر سرور آپاچی شما از سورس کامپایل شد باید مطمئن شوید که ماژول mod_so هم به درستی داخل آن کامپایل شده باشد در غیر اینصورت قادر به اضافه کردن هیچ ماژول سومی روی سرور آپاچی خود نیستید. بعد از کامپایل می توانید با دستور زیر ماژول های فعال شده خود را بررسی نمایید.
1
|
# apachectl -M | grep mod_so
|
نصب پیش نیازها در نصب mod_evasive روی Centos 7:
ما قصد ساخت mod_evasive از منبع را داریم بنابراین لازم است پکیج های زیر را نصب نماییم:
1
2
3
|
# yum install httpd-devel
#yum groupinstall 'Development tools'
|
نحوه دانلود و کامپایل کردن mod_evasive در فرایند نصب mod_evasive :
با استفاده از دستور زیر به دایرکتوری “opt” وارد شده و ماژول mod_evasive را از Github دانلود نمایید.
1
|
# cd /opt/
|
کامند زیر را برای دانلود سورس وارد کتید :
1
|
# wget https://codeload.github.com/shivaas/mod_evasive/zip/master
|
سورس را با کد دستوری زیر از حالت فشرده خارج نمایید:
1
|
# unzip master
|
اکنون با نوشتن این کد وارد دایرکتوری دانلود شده شوید:
1
|
# cd mod_evasive-master
|
ما در این بخش قصد داریم که ابزار “apxs” را مورد استفاده قرار دهیم. این ابزار، ابزاری مناسب برای اضافه نمودن اشیا اشتراکی پویا ( Dynamic Shared Objects ) به سرور آپاچی قبلی است. بنابراین برای اضافه نمودن ماژول mod_evasive کامند زیر را اجرا نمایید:
1
|
# apxs -i -c -a mod_evasive24.c
|
تا اینجا اگر در نصب mod_evasive همه مراحل صحیح پیش رفته باشد، در ادامه هیچ گزارش خطایی مشاهده نمی گردد.
برای اعمال تنظیمات، سرویس آپاچی خود را ری استارت نمایید:
1
|
# systemctl restart httpd
|
به منظور بررسی فعال شدن آپاچی و در حال اجرا بودن آن، لازم است جمله دستوری زیر را اجرا نمایید:
1
|
# apachectl -M | grep evasive
|
در این مرحله باید خروجی مانند زیر را مشاهده نمایید:
1
|
# evasive24_module (shared)
|
پیکربندی mod_evasive :
توسط کامند زیر میتوانید تنظیمات خود را در فایل “httpd.conf” اضافه نمایید :
# nano /etc/httpd/conf/httpd.conf
باید در پیکر بندی اعداد و ارقام زیر را وارد نمایید:
1
2
3
4
5
6
7
8
9
|
<IfModule mod_evasive24.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify <YOU@YOURMAIL.COM>
</IfModule>
|
*کد دستوری DOSPageCount تعداد درخواست های یک کاربر از دامنه ای یکسان برای صفحه ورودی شما را مشخص می نماید. وقتی تعداد درخواست ها به حد مرز مجاز خود رسیدند، کاربر به لیست کاربران مسدودی اضافه می گردد.
*کد دستوری DOSSiteCount نیز همانند کد دستوری قبلی، تعداد درخواست های ارسالی کاربر به سایت شما را مشخص می نماید. در این حالت نیزاگر تعداد درخواست ها از حد بگذرند، کاربر مسدود می گردد.
*کد دستوری DOSPageInterval تعداد اینتروال های مجاز در آستانه صفحه ورودی شما را شمارش می کند. مقدار پیشفرض همانگونه که میبینید عدد 1 است.
*کد دستوری DOSSiteInterval نیز تعداد اینتروال های مجاز در آستانه سایت را شمارش می کند. مقدار پیشفرض در این حالت نیز عدد 1 است.
*همانطور که قبلا اعلام نمودیم یک گزینه جهت مسدود کردن کاربران درخواست داده شده به سایت شما وجود دارد که می توانیم میزان زمان مسدودی را با عدد دهی به کد دستوری DOSBlockingPeriod تعیین نماییم. بازه زمانی انتخاب شده توسط ما 60 دقیقه است. بدین معنا که کاربر مسدود شده باید 60 دقیقه در انتظار ارسال درخواست مجدد باقی بماند. هرچه بازه زمانی بیشتر باشد، احتمال دفع حملات HTTP DoS، DDoS یا Brute Force با استفاده از ماژول