Brute Force Monitor در DirectAdmin – تشخیص و جلوگیری از حملات Brute Force

حمله Brute Force یکی از رایج‌ترین روش‌های نفوذ به سرورهاست. DirectAdmin با ابزار قدرتمند Brute Force Monitor (BFM) این حملات را شناسایی، ثبت و در صورت نیاز مسدود می‌کند. این مقاله یک راهنمای کامل برای فعال‌سازی، پیکربندی، یکپارچه‌سازی با CSF، مدیریت IPهای بلاک‌شده و رفع مشکلات رایج ارائه می‌دهد.

Detection and Prevention of Brute ForceMonitor in DirectAdmin

~3 min read • Updated Mar 1, 2026

1. Brute Force Monitor چیست؟


Brute Force Monitor (BFM) از نسخه 1.25.5 در DirectAdmin معرفی شد. در ابتدا فقط ورود به پنل (پورت 2222) را بررسی می‌کرد، اما اکنون یک سیستم امنیتی کامل و چندلایه است.

1.1 قابلیت‌های BFM

  • تشخیص و بلاک ورودهای ناموفق به پنل DirectAdmin
  • یکپارچگی کامل با CSF Firewall (از نسخه 1.61.0)
  • اسکن لاگ سرویس‌های مختلف:
    • Apache
    • Dovecot
    • Exim
    • ProFTPD / Pure-FTPd
    • SSHd
    • Roundcube
    • SquirrelMail
    • phpMyAdmin
  • تشخیص حملات WordPress:
    • wp-login.php
    • xmlrpc.php
  • مدیریت و کوتاه‌سازی خودکار لاگ‌ها
  • ارسال اعلان از طریق Message System یا ایمیل
  • مدیریت Whitelist و Blacklist
  • پشتیبانی از Hook Script برای سفارشی‌سازی
---

2. فعال‌سازی و پیکربندی BFM با قابلیت بلاک IP


BFM بدون فایروال فقط حملات را تشخیص می‌دهد. برای بلاک واقعی IP، باید CSF/LFD نصب باشد.

2.1 روش اول: نصب تازه با CSF فعال

اگر هنگام نصب CustomBuild گزینه CSF را غیرفعال نکرده باشید، CSF و BFM به‌صورت خودکار نصب و یکپارچه می‌شوند.

2.2 روش دوم: نصب CSF روی سرور موجود

  1. نصب CSF:

da build set csf yes
da build csf
  1. اطمینان از باز بودن SSH (یک ترمینال دیگر باز نگه دارید).
  2. ویرایش فایل /etc/csf/csf.conf و تغییر مقدار:

TESTING = "1"

به:


TESTING = "0"

ری‌استارت CSF:

csf -ra
  1. بررسی نسخه DirectAdmin (باید 1.61.0 یا بالاتر باشد):
/usr/local/directadmin/directadmin version
  1. حذف Hook Scriptهای قدیمی:

rm -f /usr/local/directadmin/scripts/custom/block_ip.sh
rm -f /usr/local/directadmin/scripts/custom/brute_force_notice_ip.sh
rm -f /usr/local/directadmin/scripts/custom/show_blocked_ips.sh
rm -f /usr/local/directadmin/scripts/custom/unblock_ip.sh
rm -f /root/blocked_ips.txt
rm -f /root/exempt_ips.txt
---

3. تنظیمات پیشنهادی Brute Force Monitor


مسیر تنظیمات:


Admin Level → Admin Settings → Security Tab
تنظیم در پنل مقدار پیشنهادی کلید در directadmin.conf توضیح
Blacklist IPs for excessive login attempts فعال bruteforce=1 فعال‌سازی BFM
Blacklist IPs after X failed DA logins 10–20 brutecount=20 تعداد تلاش ناموفق
Blacklist IPs after XXX unauthorized connections 100 brute_dos_count=100 درخواست‌های غیرمجاز
Prevent 127.0.0.1 from being blacklisted فعال exempt_local_block=1 عدم بلاک localhost
Time before failed login count resets 1200 ثانیه brute_force_time_limit=1200 زمان ریست شمارش
Remove IP from blacklist after X minutes 0 یا 1440 clear_blacklist_ip_time=0 زمان آنبلاک خودکار
Parse service logs for brute force attacks فعال brute_force_log_scanner=1 اسکن لاگ سرویس‌ها
Notify Admins after an IP has X login failures 100 user_brutecount=100 تعداد تلاش روی یک کاربر
Notify Admins after a User has X failures from IP 100 ip_brutecount=100 تعداد تلاش از یک IP
Scan for WordPress attacks فعال brute_force_scan_apache_logs=1 یا 2 اسکن wp-login.php و xmlrpc.php
---

4. فایل‌های مهم و عیب‌یابی


4.1 فایل‌های کلیدی BFM

مسیر: /usr/local/directadmin/data/admin/

  • ip_blacklist – لیست IPهای بلاک‌شده
  • ip_whitelist – لیست IPهای مجاز
  • brute_skip.list – IPهای مستثنی از اسکن
  • brute_log_entries.list – لاگ حملات
  • brute_user.data – شمارش تلاش‌ها برای کاربران
  • brute_ip.data – شمارش تلاش‌ها برای IPها

4.2 اگر صفحه Brute Force Monitor تایم‌اوت می‌دهد

فایل لاگ بسیار بزرگ شده. راه‌حل:


cd /usr/local/directadmin/data/admin
mv brute_log_entries.list brute_log_entries.list.backup
tail -n 1000 brute_log_entries.list.backup > brute_log_entries.list
chown diradmin:diradmin brute_log_entries.list

4.3 مخفی کردن اعلان‌های Brute Force

در فایل directadmin.conf:


hide_brute_force_notifications=1

یا فقط ایمیل ارسال شود:


brute_force_notifications_email_only=1

4.4 سفارشی‌سازی فیلترهای BFM

فایل اصلی فیلترها:

/usr/local/directadmin/data/templates/brute_filter.list

نسخه سفارشی:

/usr/local/directadmin/data/templates/custom/brute_filter.list

Written & researched by Dr. Shahin Siami