Tôi đã viết một nhà tù tùy chỉnh và bộ lọc trong fail2ban để đăng nhập vào dịch vụ của mình. Tệp nhật ký nằm trong /var/log/motion/motion.log
và đăng nhập thất bại sẽ tạo ra một dòng như thế này:
[0:ml1] [ALR] [STR] [ngày 02 tháng 11 11:42:59] handle_basic_auth: luồng chuyển động - lần thử xác thực không thành công từ <ip>
nhà tù của tôi trong /etc/fail2ban/jail.local
trông như thế này:
[chuyển động-xác thực]
đã bật = đúng
cổng = 8008
bộ lọc = chuyển động-auth.conf
logpath = /var/log/motion/motion.log
banaction = %(banaction_allports)s
thử lại tối đa = 3
thời gian tìm thấy = 10800
bantime = 259200
Và bộ lọc của tôi trong /etc/fail2ban/filter.d
đặt tên chuyển động-auth.conf
trông như thế này:
[Sự định nghĩa]
failregex = \[0:ml1\] \[ALR\] \[STR\] \[.*\] handle_basic_auth: luồng chuyển động - lần xác thực không thành công từ <HOST>
khi tôi chạy fail2ban-regex /var/log/motion/motion.log /etc/fail2ban/filter.d/motion-auth.conf
Tôi nhận được xác nhận rằng bộ lọc của tôi thực hiện chức năng nguyên vẹn như dự định:
chạy thử nghiệm
=============
Sử dụng tệp bộ lọc failregex: motion-auth, basedir: /etc/fail2ban
Sử dụng tệp nhật ký: /var/log/motion/motion.log
Sử dụng mã hóa: UTF-8
Kết quả
=======
Failregex: tổng số 186
|- #) [# lần truy cập] biểu thức chính quy
| 1) [186] \[0:ml1\] \[ALR\] \[STR\] \[.*\] handle_basic_auth: luồng chuyển động - lần xác thực không thành công từ <HOST>
`-
Bỏ qua regex: tổng cộng 0
Số lần truy cập mẫu ngày:
|- [# lần truy cập] định dạng ngày
| [2640] (?:DAY )?MON Ngày %k:Phút:Giây(?:\.Micro giây)?(?: ExYear)?
`-
Dòng: 2929 dòng, 0 bị bỏ qua, 186 khớp, 2743 bị bỏ lỡ
[được xử lý trong 1,06 giây]
Nhưng khi tôi cố tải lại/khởi động lại fail2ban để thêm bộ lọc mới, tôi nhận được thông báo như sau:
Không tìm thấy tệp cấu hình có thể truy cập nào cho 'filter.d/motion-auth.conf' trong /etc/fail2ban
Không thể đọc bộ lọc 'motion-auth.conf'
Lỗi trong tù 'motion-auth'. Bỏ qua...
VÂNG
Có ai biết những gì tôi đang làm sai?