~3 دقیقه مطالعه • بروزرسانی ۱ اسفند ۱۴۰۴
1. ModSecurity 3 چیست؟
ModSecurity 3 یک Web Application Firewall (WAF) متنباز و قدرتمند است که از سرور شما در برابر حملات رایج وب مانند SQL Injection، XSS، RCE و ... محافظت میکند.
تفاوتهای اصلی با ModSecurity 2:
- ModSecurity 3 دیگر ماژول Apache نیست؛ یک کتابخانه مستقل است.
- برای کارکرد نیاز به کانکتور (Connector) برای Apache یا NGINX دارد.
- از قوانین OWASP Core Rule Set (CRS) پشتیبانی میکند.
- در حالت Experimental ارائه شده و نیازمند مخزن EA4 Experimental است.
سازگاری:
- با Apache و NGINX کار میکند.
- در نسخههای 112 به بالا در cPanel & WHM موجود است.
2. نصب ModSecurity 3
روش 1 — نصب از WHM (توصیهشده)
مسیر:
WHM → Home → Software → EasyApache 4
در بخش Customize، یکی از موارد زیر را انتخاب کنید:
- Apache Modules
- NGINX Modules
بستههای زیر را نصب کنید:
- ea-modsec30-connector-nginx — برای NGINX
- ea-modsec30-connector-apache24 — برای Apache
- ea-modsec30-rules-owasp-crs — قوانین OWASP CRS
در پایان روی Provision کلیک کنید.
روش 2 — نصب از خط فرمان
# برای NGINX
yum install ea-modsec30-connector-nginx
# برای Apache
yum install ea-modsec30-connector-apache24
# قوانین OWASP CRS
yum install ea-modsec30-rules-owasp-crs
3. فایلهای تنظیمات ModSecurity 3
اگر از NGINX استفاده میکنید
| مسیر فایل | توضیحات |
|---|---|
| /etc/nginx/conf.d/modsec30.conf | تنظیمات پیشفرض + include فایلهای cPanel و کاربر |
| /etc/nginx/conf.d/modsec/modsec30.cpanel.conf | قوانین و تنظیمات ساختهشده توسط WHM/cPanel |
| /etc/nginx/conf.d/modsec/modsec30.user.conf | تنظیمات دستی (با احتیاط ویرایش شود) |
| /etc/nginx/conf.d/modsec_vendor_configs/ | قوانین vendorهای third‑party |
| /var/log/nginx/modsec30_audit/ | لاگهای ModSecurity (Concurrent Logging) |
اگر از Apache استفاده میکنید
| مسیر فایل | توضیحات |
|---|---|
| /etc/apache24/conf.d/modsec30.conf | تنظیمات پیشفرض + include |
| /etc/apache2/conf.d/modsec2.cpanel.conf | قوانین ساختهشده توسط cPanel (نام modsec2 برای سازگاری) |
| /etc/apache2/conf.d/modsec/modsec2.user.conf | تنظیمات دستی |
| /etc/apache2/logs/modsec_audit/ | لاگهای ModSecurity |
هشدار: فایلهای user.conf را فقط در صورت ضرورت ویرایش کنید؛ اشتباه در قوانین ممکن است سایتها را از دسترس خارج کند.
4. تفاوتهای مهم ModSecurity 2 و ModSecurity 3
| ویژگی | ModSecurity 2 | ModSecurity 3 (NGINX) | توضیحات |
|---|---|---|---|
| SecDataDir | پشتیبانی میشود | پشتیبانی نمیشود | — |
| SecConnEngine | پشتیبانی میشود | پشتیبانی نمیشود | — |
| SecDisableBackendCompression | پشتیبانی میشود | پشتیبانی نمیشود | — |
| SecGsbLookupDb | پشتیبانی میشود | پشتیبانی نمیشود | — |
| SecGuardianLog | پشتیبانی میشود | پشتیبانی نمیشود | — |
| کد پاسخ | معمولاً 403 | گاهی 406 | رفتار NGINX متفاوت است |
5. NGINX Standalone (ویژگی آزمایشی قدیمی)
NGINX Standalone جایگزین Apache به عنوان وبسرور اصلی میشود. Apache به پورتهای 81 (HTTP) و 444 (HTTPS) منتقل میشود. محتوای استاتیک را NGINX سرو میکند و محتوای دینامیک (PHP و ...) به Apache پروکسی میشود.
پیشنیازها
- EasyApache 4
- مخزن Experimental:
yum install ea4-experimental - PHP-FPM فعال
ea-ruby27-mod_passengerبرای Passenger
نصب
yum --enablerepo=EA4-experimental install ea-nginx-standalone
حذف
yum erase ea-nginx-standalone
تغییرات مهم پس از نصب
- پورتهای Apache: 81 (HTTP) و 444 (SSL)
- فایل تنظیمات اصلی NGINX:
/etc/nginx/conf.d/ea-nginx.conf - لاگها:
/var/log/nginx/domains/domain.comوdomain.com-ssl_log - پروکسی محتوای دینامیک به Apache
محدودیتها
- Pretty Permalinks وردپرس بدون قوانین NGINX کار نمیکند.
.htaccessپشتیبانی نمیشود — باید معادل NGINX نوشته شود.- WordPress Multisite پشتیبانی نمیشود.
نتیجهگیری
ModSecurity 3 یک WAF مدرن و انعطافپذیر برای Apache و NGINX در cPanel & WHM است، اما همچنان Experimental بوده و نیازمند پیکربندی دقیق است. NGINX Standalone نیز مزایای سرعت دارد اما محدودیتهای مهمی دارد. شناخت این ابزارها به مدیران کمک میکند محیطی امن، پایدار و بهینه ایجاد کنند.
نوشته و پژوهش شده توسط دکتر شاهین صیامی