Tôi đã gặp sự cố sau (đã được giải quyết) với fail2ban và đặt nhầm chỗ khi tràn ngăn xếp nên tôi sẽ đặt nó ở đây ngay bây giờ.
Vì vậy, tôi đã đọc các vấn đề trong một số ngày và dường như không tìm thấy giải pháp nào ở bất kỳ đâu.
Tôi đang thực hiện một số thử nghiệm trên phòng thí nghiệm máy chủ web, tôi đã thiết lập hai máy chủ và máy khách VM (Ubuntu 20.04).
Trên máy chủ, tôi có một ứng dụng đăng nhập PHP được định cấu hình để cung cấp cho tôi nhật ký này bất cứ khi nào ai đó không đăng nhập được.
root@local:/var/log/apache2# đuôi -f error.log
[Thứ Sáu ngày 18 tháng 6 10:13:37.657446 năm 2021] [php7:notice] [pid 2465] [client 192.168.1.11:44750] [lỗi] đăng nhập không thành công, người giới thiệu: http://192.168.1.10/index.php
[Thứ Sáu ngày 18 tháng 6 10:13:41.434454 năm 2021] [php7:notice] [pid 2465] [client 192.168.1.11:44750] [lỗi] đăng nhập không thành công, người giới thiệu: http://192.168.1.10/index.php
[Thứ Sáu ngày 18 tháng 6 10:13:46.236750 năm 2021] [php7:notice] [pid 2465] [client 192.168.1.11:44750] [lỗi] đăng nhập không thành công, người giới thiệu: http://192.168.1.10/index.php
Và Fail2Ban v0.10.2 đã cấu hình để bắt nó.
/etc/fail2ban/jail.local:
[đăng nhập-cấm]
đã bật = đúng
cổng = http, https
bộ lọc = cấm đăng nhập
logpath = /var/log/Apache2/error.log
thử lại tối đa = 3
thời gian tìm thấy = 180
bantime = 60
/etc/fail2ban/filter.d/login-ban.conf:
[Sự định nghĩa]
failregex = ^\[.*\]\s\[.*]\s\[.*].*\[client.*<HOST>\].*\[error\].*
bỏ quaregex =
Bây giờ, regex hoạt động hoàn hảo, nếu tôi kiểm tra với fail2ban-regex:
fail2ban-regex /var/log/apache2/error.log /etc/fail2ban/filter.d/login-ban.conf --print-all-matched
tôi có
|- (Các) dòng phù hợp:
| [Thứ Sáu ngày 18 tháng 6 10:36:07.312503 2021] [php7:notice] [pid 780] [client 192.168.1.11:44754] [lỗi] đăng nhập không thành công, người giới thiệu: http://192.168.1.10/index.php
| [Thứ Sáu ngày 18 tháng 6 10:36:14.417955 năm 2021] [php7:notice] [pid 784] [client 192.168.1.11:44756] [lỗi] đăng nhập không thành công, người giới thiệu: http://192.168.1.10/index.php
Nhưng fail2ban không cấm IP và fail2ban.log gửi cho tôi một cảnh báo DNS:
18-06-2021 10:50:22,083 fail2ban.ipdns [2154]: CẢNH BÁO Đã xác định IP bằng cách sử dụng Tra cứu DNS: 8 = {'0.0.0.8'}
18-06-2021 10:50:22,085 fail2ban.filter [2154]: THÔNG TIN [cấm đăng nhập] Đã tìm thấy 0.0.0.8 - 2021-06-18 10:50:22
Tôi đã thử đặt tham số usedns thành 'no' và 'raw', điều duy nhất hoàn thành là loại bỏ nhật ký cảnh báo dns, vẫn không cấm và không ghi lại máy chủ đang cố đăng nhập.
Tôi hy vọng đây là đủ thông tin và điều này sẽ giúp được ai đó ngoài kia nhiều như tôi.