Điểm:0

Tạo bộ lọc riêng cho fail2ban không thành công

lá cờ kr

Tôi đang nghịch fail2ban trong kubernetes. Để làm được điều đó, tôi đã tạo một nhóm tạo thông báo nhật ký giả mạo: 2021-08-04 18:33:13 Xác thực không thành công 15.15.15.15 Tôi đã tạo một bộ lọc tùy chỉnh để kiểm tra xem fail2ban có hoạt động hay không. Lần đầu tiên tôi thử sử dụng fail2ban-regex với một tệp chứa 10 dòng thông báo tường trình này và nhận được kết quả này:

chạy thử nghiệm
=============

Sử dụng tệp bộ lọc failregex: test, basedir: /etc/fail2ban
Sử dụng tệp nhật ký: /logs.txt
Sử dụng mã hóa: UTF-8


Kết quả
=======

Failregex: tổng cộng 10
|- #) [# lần truy cập] biểu thức chính quy
| 1) [10] \sXác thực không thành công\s<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
| [10] Năm cũ(?P<_sep>[-/.])Tháng(?P=_sep)Ngày(?:T| ?)24giờ:Phút:Giây(?:[.,]Micro giây)?(?:\ s*Zone offset)?
`-

Dòng: 10 dòng, 0 bị bỏ qua, 10 khớp, 0 bị bỏ lỡ
[được xử lý trong 0,12 giây]

nhưng khi tôi thử cùng một bộ lọc đối với tệp chứa nhật ký liên tục, tôi gặp lỗi này:

chạy thử nghiệm
=============

Sử dụng tệp bộ lọc failregex: test, basedir: /etc/fail2ban
Sử dụng tệp nhật ký: /logs/kubernetes.logs
Sử dụng mã hóa: UTF-8

Traceback (cuộc gọi gần đây nhất cuối cùng):
 Tệp "/usr/bin/fail2ban-regex", dòng 34, trong <module>
   exec_command_line()
 Tệp "/usr/lib/python3.8/site-packages/fail2ban/client/fail2banregex.py", dòng 836, trong exec_command_line
   nếu không fail2banRegex.start(args):
 Tệp "/usr/lib/python3.8/site-packages/fail2ban/client/fail2banregex.py", dòng 776, bắt đầu
   self. process(test_lines)
 Tệp "/usr/lib/python3.8/site-packages/fail2ban/client/fail2banregex.py", dòng 584, đang xử lý
   line_datetimestripped, ret, is_ignored = self.testRegex(dòng)
 Tệp "/usr/lib/python3.8/site-packages/fail2ban/client/fail2banregex.py", dòng 456, trong testRegex
   tìm thấy = self._filter. processLine(dòng, ngày)
 Tệp "/usr/lib/python3.8/site-packages/fail2ban/server/filter.py", dòng 613, trong processLine
   timeMatch = self.dateDetector.matchTime(dòng)
 Tệp "/usr/lib/python3.8/site-packages/fail2ban/server/datedetector.py", dòng 368, trong matchTime
   (dòng[khoảng cách] == self.__lastPos[2] chứ không phải self.__lastPos[2].isalnum())
IndexError: chỉ mục chuỗi nằm ngoài phạm vi

Và khi tôi kích hoạt bộ lọc cho fail2ban, tôi không có ip nào bị cấm, vì vậy tôi nghĩ rằng bộ lọc của tôi không hoạt động, nhưng tôi không thể tìm ra lỗi.

bộ lọc.conf:

[Sự định nghĩa]

failregex = \sXác thực thất bại\s<HOST>
djdomi avatar
lá cờ za
tôi nghĩ nó đã được trả lời bởi [Stackoverflow](https://stackoverflow.com/questions/56158596/how-to-use-fail2ban-under-kubernetes)
Điểm:0
lá cờ il

Đây là lỗi đã biết (đã được sửa ở giữa), xem https://github.com/fail2ban/fail2ban/issues/3020

Nhưng lý do thực tế là do kiểu dữ liệu không chính xác và dấu thời gian không đầy đủ (khớp với bộ kiểu dữ liệu mặc định) hoặc một số dòng hoàn toàn không có dấu thời gian. Giải pháp sẽ là một bản cập nhật hoặc (tốt hơn) một kiểu dữ liệu chính xác nhất có thể và trong trường hợp tốt nhất là được neo ở đầu (hoặc cuối).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.