Sao chép mã này vào một tệp mới /etc/fail2ban/filter.d/sshd-root.conf:
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf
[Definition]
_daemon = sshd
failregex = ^%(__prefix_line)sFailed (?:password|publickey) for root from <HOST>(?: port \d*)?(?: ssh\d*)?$
ignoreregex =
XIN VUI LÒNG TUYỆT VỜI rằng bạn có thể phải chỉnh sửa failregex để xác định chính xác các lần thử đăng nhập gốc không thành công - sử dụng:
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd-root.conf
để kiểm tra rằng nó xác định các mục nhật ký chính xác.
Sau đó, bạn cần chỉnh sửa jail.local của mình để sử dụng bộ lọc mới - thêm một cái gì đó như:
[ssh]
enabled = true
port = 1:65535
filter = sshd-root
logpath = /var/log/auth.log
bantime = 604800
maxretry = 3
Rõ ràng bạn nên điều chỉnh các giá trị này theo nhu cầu của bạn. Các cài đặt ở trên sẽ loại bỏ tất cả các gói đến từ địa chỉ IP vi phạm sau ba lần đăng nhập với quyền root và sẽ phát hành lại IP sau một tuần.