~2 min read • Updated Jan 27, 2026
1. Fail2Ban چیست؟
Fail2Ban یک سیستم جلوگیری از نفوذ (Intrusion Prevention) است که:
- لاگ سرویسها را مانیتور میکند
- الگوهای مشکوک را تشخیص میدهد
- IP متخلف را موقت یا دائم بلاک میکند
Fail2Ban ایمیل را اسکن نمیکند و اسپم تشخیص نمیدهد؛ فقط با IPهای متخلف برخورد میکند.
2. جایگاه Fail2Ban در معماری iRedMail
Attacker ↓ SMTP / IMAP / HTTP ↓ Service (Postfix/Dovecot/Web) ↓ (Log) Fail2ban ← واکنش سریع ↓ Firewall (iptables / nftables)
Fail2Ban مستقیماً روی Firewall اثر میگذارد.
3. وظایف اصلی Fail2Ban در iRedMail
1️⃣ جلوگیری از Brute-force
- SMTP AUTH
- IMAP / POP3
- ورود به Roundcube
2️⃣ کاهش Load سرور
- بلاک IPهای بیفایده
- جلوگیری از هزاران تلاش ناموفق
3️⃣ محافظت از Reputation
- جلوگیری از compromise
- جلوگیری از اسپم outbound
4. اجزای Fail2Ban
- fail2ban-server — daemon اصلی
- filter — الگوهای regex برای تشخیص حمله
- jail — تعریف سرویس + سیاست بلاک
5. مسیرهای مهم Fail2Ban
| مسیر | توضیح |
|---|---|
| /etc/fail2ban/ | تنظیمات اصلی |
| jail.conf | تنظیمات پیشفرض (ویرایش نکن) |
| jail.local | تنظیمات سفارشی |
| filter.d/ | فیلترهای regex |
| /var/log/fail2ban.log | لاگ Fail2Ban |
همیشه تنظیمات را در jail.local انجام بده.
6. Jailهای مهم در iRedMail
- postfix — جلوگیری از SMTP auth fail
- dovecot — جلوگیری از brute-force IMAP/POP3
- roundcube — جلوگیری از حملات login وبمیل
- nginx/apache — جلوگیری از brute-force وب
7. نمونه تنظیم jail.local برای iRedMail
[DEFAULT] bantime = 1h findtime = 10m maxretry = 5 [postfix] enabled = true port = smtp,submission,465 filter = postfix logpath = /var/log/maillog [dovecot] enabled = true port = imap,imaps,pop3,pop3s filter = dovecot logpath = /var/log/maillog
8. تنظیم زمان Ban
| سناریو | bantime |
|---|---|
| Brute-force عادی | 1h |
| Botnet | 24h |
| حملهگر ثابت | -1 (دائم) |
9. بررسی وضعیت Fail2Ban
fail2ban-client status
برای jail خاص:
fail2ban-client status dovecot
10. Unban دستی IP
fail2ban-client set dovecot unbanip 1.2.3.4
11. تست Fail2Ban
- چند بار login اشتباه بزن
- IP باید ban شود
- در لاگ Fail2Ban ثبت میشود
12. خطاهای رایج
❌ Ban شدن کاربران واقعی
- maxretry خیلی پایین
- findtime کوتاه
❌ Fail2Ban کار نمیکند
- مسیر لاگ اشتباه
- regex فیلتر mismatch
13. Best Practice امنیتی
- bantime افزایشی (recidive) فعال باشد
- IPهای داخلی را whitelist کن
- لاگ Fail2Ban را مانیتور کن
- هماهنگی کامل با firewall
14. Fail2Ban + iRedMail = امنیت واقعی
| بدون Fail2Ban | با Fail2Ban |
|---|---|
| Brute-force موفق | حمله خنثی |
| CPU بالا | پایدار |
| Compromise | امن |
نتیجهگیری
Fail2Ban نگهبان شبانهروزی سرور ایمیل است. اگر درست تنظیم شود، آرامش کامل و امنیت پایدار را برای iRedMail فراهم میکند. اما اگر خاموش باشد یا اشتباه پیکربندی شود، سرور در معرض حملات brute-force، compromise و حتی اسپم outbound قرار میگیرد. Fail2Ban یکی از حیاتیترین اجزای امنیتی هر Mail Server حرفهای است.
Written & researched by Dr. Shahin Siami