~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
Botnet24h
حمله‌گر ثابت-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