## 🔐 ۱۳ نکته امنیتی برای افزایش امنیت وبسرور Apache
---
### 1. 🧼 **پنهانسازی نسخه Apache و سیستمعامل**
نمایش نسخهی Apache میتواند به مهاجمان اطلاعات حیاتی دهد.
ویرایش فایل پیکربندی اصلی:
```bash
sudo nano /etc/apache2/conf-enabled/security.conf # در Ubuntu
# یا
sudo nano /etc/httpd/conf/httpd.conf # در CentOS
```
و اضافه یا ویرایش کنید:
```apache
ServerTokens Prod
ServerSignature Off
```
---
### 2. 🧱 **محدودسازی دسترسی به دایرکتوریها**
در فایلهای Virtual Host:
```apache
<Directory />
Options None
AllowOverride None
Require all denied
</Directory>
```
سپس برای دایرکتوری مورد نظر، بهصورت هدفمند مجوز بدهید.
---
### 3. 🔐 **فعالسازی HTTPS (با SSL/TLS)**
استفاده از Let's Encrypt یا گواهی SSL خصوصی برای رمزنگاری دادهها بین کلاینت و سرور.
```bash
sudo apt install certbot python3-certbot-apache
sudo certbot --apache
```
---
### 4. 🧰 **استفاده از ماژولهای امنیتی mod\_security و mod\_evasive**
این دو ماژول درخواستهای مخرب را تشخیص داده و حملات DDoS/Brute Force را دفع میکنند.
---
### 5. 🚫 **غیرفعالسازی فهرستنمایی فایلها (Directory Listing)**
در فایلهای Virtual Host:
```apache
<Directory /var/www/html>
Options -Indexes
</Directory>
```
---
### 6. 🧨 **محدودسازی روشهای HTTP خطرناک**
مانند `TRACE`, `PUT`, `DELETE`:
```apache
<LimitExcept GET POST HEAD>
Require all denied
</LimitExcept>
```
---
### 7. 👁️🗨️ **نصب و پیکربندی Fail2ban برای Apache**
Fail2ban رفتارهای مشکوک در لاگها را بررسی کرده و IPهای مشکوک را در فایروال مسدود میکند.
```bash
sudo apt install fail2ban
```
سپس Jail مربوط به Apache را فعال کنید.
---
### 8. ⚙️ **تنظیم محدودیت در اندازه درخواستها**
برای جلوگیری از حملات overflow:
```apache
LimitRequestBody 1048576 # برابر با 1MB
```
---
### 9. ⏱️ **غیرفعالسازی ماژولهای غیرضروری**
بررسی ماژولهای فعال:
```bash
apache2ctl -M
```
سپس با `a2dismod` یا حذف از کانفیگ، آنها را غیرفعال کنید.
---
### 10. 🚧 **ایزولهسازی سایتها با Virtual Hosts مجزا و مجوزهای دقیق**
هر سایت را در دایرکتوری خودش با کاربر و مجوز محدود میزبانی کنید تا در صورت نفوذ به یکی، سایر سایتها آسیب نبینند.
---
### 11. 🧯 **فعالسازی Logging برای دسترسی و خطاها**
برای تحلیل امنیتی، لاگها را فعال و در مکان امنی ذخیره کنید:
```apache
CustomLog /var/log/apache2/access.log combined
ErrorLog /var/log/apache2/error.log
```
---
### 12. 🗝️ **استفاده از AppArmor یا SELinux برای محدودسازی سطح دسترسی Apache**
در CentOS:
```bash
sudo setenforce 1
```
در Ubuntu از AppArmor استفاده کنید تا سطح دسترسی Apache را محدود کنید.
---
### 13. 🧪 **آپدیت منظم Apache و سیستمعامل**
همیشه Apache و ماژولهای آن را با آخرین نسخهها بهروزرسانی کنید:
```bash
sudo apt update && sudo apt upgrade # در Debian/Ubuntu
sudo yum update # در CentOS/RHEL
```
---
## ✅ نتیجهگیری
اجرای این ۱۳ نکته امنیتی، وبسرور Apache شما را در برابر بخش عمدهای از تهدیدهای رایج ایمن میکند. امنیت هیچگاه کامل نیست، اما **لایهلایهسازی دفاع** بهترین راه برای کاهش خطر است.