محافظت از Apache در برابر حملات Brute Force و DDoS با استفاده از mod_security و mod_evasive پرینت


 

## محافظت از Apache در برابر حملات Brute Force و DDoS با استفاده از mod\_security و mod\_evasive

وب‌سرور Apache به‌طور گسترده‌ای در سرورها استفاده می‌شود، اما به‌دلیل محبوبیت بالا، هدف حملاتی مانند **Brute Force** و **DDoS** نیز قرار می‌گیرد. در این مقاله یاد می‌گیرید چگونه با استفاده از دو ماژول امنیتی مهم یعنی `mod_security` و `mod_evasive` از Apache در برابر این تهدیدات محافظت کنید.

---

## 🔐 mod\_security چیست؟

ماژول `mod_security` یک **فایروال برنامه‌ی وب (WAF)** برای Apache است که درخواست‌های ورودی را با قوانین امنیتی بررسی کرده و در صورت شناسایی الگوهای مخرب (مانند SQL injection یا XSS) آن‌ها را مسدود می‌کند.

---

## 🔥 mod\_evasive چیست؟

`mod_evasive` ماژولی است برای جلوگیری از حملات **DDoS**، **DoS** و تلاش‌های مکرر از یک آدرس IP. در صورت شناسایی فعالیت مشکوک، آدرس IP مهاجم مسدود می‌شود.

---

## 🧰 پیش‌نیازها

* سرور لینوکسی (مثلاً Ubuntu/Debian یا CentOS/RHEL)
* Apache نصب‌شده
* دسترسی root یا کاربر sudo

---

## 🧱 ۱. نصب mod\_security

### در Ubuntu/Debian:

```bash
sudo apt update
sudo apt install libapache2-mod-security2 -y
```

### در CentOS/RHEL:

```bash
sudo yum install mod_security -y
```

### فعال‌سازی و شروع پیکربندی:

فایل کانفیگ را باز کنید:

```bash
sudo nano /etc/modsecurity/modsecurity.conf
```

مقدار `SecRuleEngine` را به `On` تغییر دهید:

```apache
SecRuleEngine On
```

### بارگذاری مجدد Apache:

```bash
sudo systemctl restart apache2 # یا httpd در CentOS
```

---

## 📜 اضافه کردن مجموعه قوانین OWASP (توصیه‌شده)

### در Ubuntu:

```bash
sudo apt install modsecurity-crs -y
```

سپس لینک کنید:

```bash
sudo ln -s /usr/share/modsecurity-crs/base_rules/* /usr/share/modsecurity-crs/activated_rules/
```

در فایل کانفیگ مسیر این قوانین را اضافه کنید (در `/etc/apache2/mods-enabled/security2.conf`).

---

## ⚔️ ۲. نصب mod\_evasive

### در Ubuntu/Debian:

```bash
sudo apt install libapache2-mod-evasive -y
```

### در CentOS/RHEL:

```bash
sudo yum install epel-release -y
sudo yum install mod_evasive -y
```

---

## ⚙️ ۳. پیکربندی mod\_evasive

فایل کانفیگ را ایجاد یا ویرایش کنید:

### در Ubuntu:

```bash
sudo nano /etc/apache2/mods-available/evasive.conf
```

### در CentOS:

```bash
sudo nano /etc/httpd/conf.d/mod_evasive.conf
```

محتوای نمونه:

```apache
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify admin@example.com
DOSLogDir "/var/log/mod_evasive"
DOSWhitelist 127.0.0.1
</IfModule>
```

ایجاد دایرکتوری لاگ:

```bash
sudo mkdir -p /var/log/mod_evasive
sudo chown -R www-data:www-data /var/log/mod_evasive
```

فعال‌سازی ماژول و ری‌استارت:

```bash
sudo a2enmod evasive # فقط در Debian/Ubuntu
sudo systemctl restart apache2
```

---

## 🧪 تست عملکرد

### برای mod\_security:

ارسال یک درخواست خطرناک مانند:

```
curl http://yourserver.com/index.php?param=<script>alert(1)</script>
```

باید با **403 Forbidden** مواجه شوید.

---

### برای mod\_evasive:

اجرای حمله‌ی ساده با `ab` (Apache Benchmark):

```bash
ab -n 200 -c 50 http://yourserver.com/
```

در صورتی که `mod_evasive` درست تنظیم شده باشد، برخی درخواست‌ها رد خواهند شد.

---

## ✅ نتیجه‌گیری

با استفاده از `mod_security` و `mod_evasive` می‌توانید لایه‌ی حفاظتی قدرتمندی برای وب‌سرور Apache ایجاد کنید. این ماژول‌ها جلوی حملات رایج را گرفته و امنیت سرور شما را به‌شدت افزایش می‌دهند.

---

### پیشنهاد تکمیلی:

* نصب **Fail2ban** برای مسدودسازی آی‌پی‌های مخرب در سطح سیستم
* استفاده از **Reverse Proxy** مانند Nginx برای توزیع بار
* فعال‌سازی **HTTP/2** و **SSL/TLS سخت‌گیرانه**

 


آیا این پاسخ به شما کمک کرد؟

  • 0
« برگشت