~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 روی سرور موجود
- نصب CSF:
da build set csf yes
da build csf
- اطمینان از باز بودن SSH (یک ترمینال دیگر باز نگه دارید).
- ویرایش فایل
/etc/csf/csf.confو تغییر مقدار:
TESTING = "1"
به:
TESTING = "0"
ریاستارت CSF:
csf -ra
- بررسی نسخه DirectAdmin (باید 1.61.0 یا بالاتر باشد):
/usr/local/directadmin/directadmin version
- حذف 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