خانه bread crumb arrow icon وبلاگ bread crumb arrow icon آموزش نصب و فعال‌ سازی ModSecurity در Ubuntu و Debian

آموزش نصب و فعال‌ سازی ModSecurity در Ubuntu و Debian

آموزش نصب و فعال‌ سازی ModSecurity در Ubuntu و Debian
تیم محتوا
مدت زمان مطالعه : 10 دقیقه
0 کامنت
۱۴۰۴/۱۱/۲۷

اگه وب‌ سایتت روی سرور آپاچی اجرا میشه و ترافیک واقعی کاربران برات مهمه، پس امنیتش هم نباید به شانس و حدس و گمان سپرده بشه. حملاتی مثل SQL Injection، اسکن و نفوذ خودکار ربات‌ ها، XSS و سوء استفاده از باگ‌ های اپلیکیشن، هر روز بی‌ صدا اتفاق میوفتن حتی اگه خودت متوجهشون نشی.

اینجاست که ModSecurity وارد ماجرا میشه؛ یه Web Application Firewall قدرتمند که قبل از رسیدن درخواست‌ های مشکوک به هسته‌ سایت، جلوی اونها می‌ ایسته و عملاً تبدیل میشه به محافظ نامرئی اپلیکیشن وب.

خبر خوب اینه که نصب و راه‌ اندازی ModSecurity روی اوبونتو قرار نیست پیچیده یا ترسناک باشه. اگر دنبال یه راه‌ حل حرفه‌ ای برای بالا بردن امنیت وب‌ سایتت بدون هزینه‌ های سنگین و ابزارهای پیچیده هستی، این راهنما دقیقاً همون چیزیه که بهش نیاز داری. آماده‌ ای یک لایه‌ دفاعی جدی به سرورت اضافه کنیم؟!

نحوه نصب و پیکربندی ModSecurity برای آپاچی در اوبونتو

نکته مهم برای کاربران Debian 12 (Bookworm)

تو نسخه‌ های جدید Debian، ممکنه که بسته‌ modsecurity-crs به‌ صورت خودکار همراه ModSecurity نصب شده باشه. نصب دستی مجدد CRS میتونه باعث تداخل قوانین و جلوگیری از اجرای Apache بشه  پس قبل از ادامه، وضعیت بسته رو بررسی کنید:

dpkg -l | grep modsecurity-crs

نکته مهم برای کاربران Debian 12 (Bookworm)

اگه این بسته نصب بود، نیازی به نصب مجدد CRS ندارید.

نحوه نصب و تنظیم ModSecurity برای آپاچی در اوبونتو

مرحله 1: نصب ModSecurity در Ubuntu

sudo apt update
sudo apt install libapache2-mod-security2
sudo a2enmod security2
sudo systemctl restart apache2

نصب ModSecurity در Ubuntu

مرحله 2: فعال‌ سازی حالت Blocking Mode

sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
sudo nano /etc/modsecurity/modsecurity.conf

فعال‌ سازی حالت Blocking Mode

خط زیر رو از حالت DetectionOnly به حالت On تغییر بدید:

SecRuleEngine On

فعال‌ سازی حالت Blocking Mod - 2

سپس:

sudo systemctl restart apache2

فعال‌ سازی حالت Blocking Mod - 3

مرحله 3: نصب و فعال‌ سازی OWASP CRS

git clone https://github.com/coreruleset/coreruleset.git
cd coreruleset/
sudo mv crs-setup.conf.example /etc/modsecurity/crs-setup.conf
sudo mv rules/ /etc/modsecurity/

نصب و فعال‌ سازی OWASP CRS

فایل زیر رو بررسی کنید:

sudo nano /etc/apache2/mods-enabled/security2.conf

نصب و فعال‌ سازی OWASP CRS - 2

باید شامل خط های زیر باشه:

IncludeOptional /etc/modsecurity/*.conf
Include /etc/modsecurity/rules/*.conf

نصب و فعال‌ سازی OWASP CRS - 3

ریستارت Apache:

sudo systemctl restart apache2

install configure modsecurity apache ubuntu 9

مرحله 4: تست عملکرد ModSecurity

ویرایش VirtualHost:

sudo nano /etc/apache2/sites-available/000-default.conf

تست عملکرد ModSecurity

افزودن تست Rule:

SecRuleEngine On
SecRule ARGS:testparam "@contains test" "id:254,deny,status:403,msg:'Test Successful'"

تست عملکرد ModSecurity - 1

سپس:

sudo systemctl restart apache2

تست عملکرد ModSecurity - 2

تست در مرورگر:

http://SERVER-IP/?testparam=test

تست عملکرد ModSecurity - 3

و بررسی لاگ:

cat /var/log/apache2/error.log | grep "Test Successful"

تست عملکرد ModSecurity - 4

ModSecurity دقیقاً چه تأثیری روی امنیت و عملکرد سایت دارد؟

ModSecurity به‌عنوان یک Web Application Firewall، جلوی حملات وب مثل SQL Injection و XSS رو می‌ گیره، اما فقط نصب و فعال‌ سازی کافی نیست. Ruleهای امنیتی روی تجربه کاربر، عملکرد سرور و حتی پاسخدهی اپلیکیشن تأثیر میذارن و گاهی ممکنه درخواست‌ های سالم هم مسدود بشن (False Positive).

برای نتیجه بهتر، باید Rule ها مرتب تنظیم و تست بشن، لاگ‌ ها مانیتور بشن و توی محیط‌ های پرترافیک مصرف CPU و I/O کنترل بشه. در نهایت، ModSecurity وقتی مؤثره که بخشی از یک استراتژی امنیتی چندلایه باشه، نه فقط یه ابزار دفاعی ساده.

نمونه لاگ واقعی ModSecurity

مثال حمله SQL Injection (شبیه‌ سازی آموزشی)

درخواست مخرب نمونه:

http://SERVER-IP/login.php?user=admin' OR 1=1 --

نمونه لاگ واقعی در audit.log:

Message: Warning. Pattern match "(?i:(?:union.*select|select.*from))" at ARGS:user
Action: Intercepted (phase 2)
[severity "CRITICAL"] [id "942100"] [msg "SQL Injection Attack Detected"]

این لاگ نشان میده که CRS حمله رو شناسایی و بلاک کرده.

مثال حمله XSS

درخواست:

http://SERVER-IP/?q=<script>alert(1)</script>

نمونه لاگ:

[id "941130"] [msg "XSS Filter - Category 1: Script Tag Vector"]
status: 403, action: deny

بخش فنی تکمیلی: درک لاگ‌ها و منطق Ruleها

هر هشدار ModSecurity فقط یک زنگ خطر ساده نیست؛ نتیجه پردازش Rule ها و الگوهای رفتاریه که درخواست‌ های ورودی رو بررسی میکنن. لاگ‌ ها اطلاعات مهمی مثل شناسه Rule، نوع حمله، پارامتر آسیب‌پذیر و شدت رخداد رو ثبت میکنن.

تحلیل این لاگ‌ ها به ما کمک میکنه بفهمیم:

  • چه حملاتی سایت رو تهدید میکنن

  • کدوم Rule ها نیاز به تنظیم دقیق‌ تر دارن

  • کدام رویدادها واقعاً خطرناک هستن

مقایسه ModSecurity با Fail2ban و NAXSI

ابزارنوع محافظتلایه امنیتیسناریوی مناسب
ModSecurityتحلیل محتوای درخواست HTTP + Rule-Basedلایه اپلیکیشن (WAF)حملات وب، تزریق‌ ها، XSS
Fail2banبلاک IP براساس لاگلایه سیستم / شبکهBrute-Force , SSH , Login Attempts
NAXSIWhitelist-Based WAF برای Nginxلایه اپلیکیشنترافیک ساختاریافته و کنترل‌ شده

پیشنهاد حرفه‌ ای:

اگه Apache دارید: ModSecurity + CRS بهترین گزینه ست

اگه Nginx دارید: NAXSI یا نسخه Nginx ModSecurity

برای حملات Login: Fail2ban ابزار مکمل عالی ست (جایگزین WAF نیست)

پیشنهاد های امنیتی پیشرفته

برای بیشترین سطح محافظت:

  • افزایش تدریجی Paranoia Level

  • اتصال لاگ‌ های ModSecurity را به SIEM یا ELK

  • Disable کردن قوانین غیرضروری برای کم کردن False-Positive

  • استفاده نکردن از حالت DetectionOnly در محیط‌ های Production

  • تعریف کردن Rule های اختصاصی برای API ها

  • استفاده از موارد زیر همراه با ModSecurity از:

    Fail2ban

    Rate-Limit

    HTTPS + HSTS

بهترین نتیجه زمانی به دست میاد که WAF بخشی از یک Security Stack چندلایه باشه.

مطالعه بیشتر و منابع پیشنهادی

برای درک عمیق ModSecurity و OWASP CRS، منابع زیر مفیدن:

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

سخن آخر

حالا که ModSecurity رو نصب و راه‌ اندازی کردی، با خیال راحت‌ میتونی از امنیت سایتت لذت ببری. یادت باشه که امنیت هیچ‌ وقت ثابت نیست و همیشه در حال تغییر و به‌روزرسانیه. بنابراین، ابزارهایی مثل ModSecurity باید بخشی از استراتژی کلی امنیتی سایتت باشه.

یک سایت امن فقط بازدیدکننده‌ ها رو محافظت نمی‌ کنه، بلکه باعث میشه رتبه‌ ات توی گوگل بالاتر بره و اعتماد بیشتری جلب کنی. پس امنیت رو جدی بگیر، تغییرات رو تست کن و همیشه به‌ روز باش. همین امروز برای امنیت سایتت قدم بردار و فردا نتایجشو ببین!

برای سرور لینوکس امن و مطمئن، پیشنهادات آذرسیس رو از دست نده!

این پست را به اشتراک بگذارید
سوالات متداول نصب و پیکربندی ModSecurity برای آپاچی در اوبونتو

بله، اما به‌صورت ماژول جداگانه و با تنظیمات متفاوت.

خیر، فقط آشنایی پایه با لینوکس و مدیریت سرور کافیه.

0

دیدگاه و پرسش