Điểm:2

fail2ban phát hiện IP của kẻ tấn công nhưng không cấm nó và đọc nhật ký chậm

lá cờ br

Từ vài ngày nay, tôi nhận được các cuộc tấn công từ một số địa chỉ IP vào nginx của mình. Tôi đã quyết định sử dụng fail2ban để cấm nó tự động, nhưng tôi nhận thấy rằng nó không hoạt động tốt lắm. Tôi có thể thấy trong nhật ký đang phát hiện địa chỉ IP nhưng không bị cấm như mong đợi.

Hồ sơ tù của tôi là:

[nginx-40x-req]
đã bật = đúng
bantime.rndtime = 2800
bantime.increment = true
cổng = http, https
bộ lọc = nginx-40x-req
logpath = /var/log/nginx/access.log
thử lại tối đa = 5

và bộ lọc của tôi trông như thế này:

[Sự định nghĩa]
failregex = ^{"status": (400|401|403), "request_time": [0-9\.]+,\s+"remote_addr": "<HOST>",

Trên nginx của tôi, tôi đã thêm một bản đồ để phát hiện các yêu cầu của nó và trả về 403 khi được phát hiện. Các bản ghi trông như thế này:

{"status": 403, "request_time": 0,000, "remote_addr": "xx.xx.xx.xx", "@timestamp": "2021-09-03T18:32:34+02:00", "type ": "nginx", "hostname": "vps-e642f340", "host": "d.itsyjd.com", "uri": "/v2/speed_test", "request": "GET https://d .itsyjd.com/v2/speed_test HTTP/1.1", "request_method": "GET", "request_proto": "http", "request_proto_proxy": "-", "request_uri": "/v2/speed_test", "request_args ": "-", "server_proto": "HTTP/1.1", "body_bytes_sent": 552, "http_referer": "-", "http_user_agent": "Mozilla/5.0 (Linux; Android 8.0; MHA-AL00 Build/HUAWEIMHA -AL00; wv) AppleWebKit/537.36 (KHTML, như Gecko) Phiên bản/4.0 Chrome/57.0.2987.132 MQQBrowser/6.2 TBS/044304 Mobile Safari/537.36 (tương thích; Baiduspider/2.0;+http://www.baidu.com/ search/spider.html)", "msec": 1630686754.923, "upstream_connect_time": -, "upstream_header_time": -, "upstream_response": -, "pipe": "p", "gzip_ratio": "-", "brotli_ratio ": "-", "remote_user": "-", "bad_request": "1"}

Trên fail2ban của tôi, tôi có thể thấy rất nhiều thông báo nói rằng địa chỉ IP đã được phát hiện:

2021-09-03 18:34:31,494 fail2ban.filter [32586]: THÔNG TIN [nginx-40x-req] Đã tìm thấy xx.xx.xx.xx - 2021-09-03 18:29:33

Nhưng nó vẫn không cấm các địa chỉ IP đó.

Một điều tôi nhận thấy là tốc độ đọc của fail2ban chậm hơn tốc độ ghi nhật ký, vì vậy tôi bắt đầu nghĩ rằng có thể đó là vấn đề, bởi vì khi những IP đó bị cấm và fail2ban đọc theo thời gian thực, thì các địa chỉ IP khác cũng bị cấm mà không có vấn đề gì . Max_retry là 5 và tất cả các địa chỉ IP đã được phát hiện hơn 5 lần, vì vậy chúng phải bị cấm.

Bất kỳ ai cũng biết tôi có thể làm sai điều gì (vì chắc chắn đó là điều mà tôi không nhìn thấy).

Trân trọng.

CHỈNH SỬA: Sau khi viết thông báo này, tôi đã thấy lệnh cấm đó hoạt động rất chậm. Trong khoảng 15 phút đã cấm khoảng 4 địa chỉ IP từ khoảng 11 địa chỉ, khi mỗi giây chúng bị phát hiện rất nhiều lần.

EDIT2: Xóa nhật ký đơn giản tiếng vang "" > <logfile> đã kích hoạt các lệnh cấm.

Phiên bản fail2ban của tôi là 0.10.2

Với việc kẻ tấn công có vấn đề bị cấm và chỉ nhận được một vài yêu cầu, fail2ban đang đọc theo thời gian thực và đang cấm:

2021-09-03 18:46:13,759 fail2ban.filter [32586]: THÔNG TIN [nginx-40x-req] Đã tìm thấy XX.XX.XX.XX - 2021-09-03 18:46:13
2021-09-03 18:46:13,909 fail2ban.actions [32586]: THÔNG BÁO [nginx-40x-req] Ban XX.XX.XX.XX
2021-09-03 18:46:18,855 fail2ban.filter [32586]: THÔNG TIN [nginx-40x-req] Đã tìm thấy XX.XX.XX.XX - 2021-09-03 18:46:18
2021-09-03 18:47:07,004 fail2ban.filter [32586]: THÔNG TIN [nginx-40x-req] Đã tìm thấy XX.XX.XX.XX - 2021-09-03 18:47:06
2021-09-03 18:48:34,390 fail2ban.filter [32586]: THÔNG TIN [nginx-40x-req] Đã tìm thấy XX.XX.XX.XX - 2021-09-03 18:48:34
2021-09-03 18:48:54,230 fail2ban.filter [32586]: THÔNG TIN [nginx-40x-req] Đã tìm thấy XX.XX.XX.XX - 2021-09-03 18:48:54
2021-09-03 18:48:54,231 fail2ban.filter [32586]: THÔNG TIN [nginx-40x-req] Đã tìm thấy XX.XX.XX.XX - 2021-09-03 18:48:54
2021-09-03 18:48:54,231 fail2ban.filter [32586]: THÔNG TIN [nginx-40x-req] Đã tìm thấy XX.XX.XX.XX - 2021-09-03 18:48:54
2021-09-03 18:48:54,335 fail2ban.actions [32586]: THÔNG BÁO [nginx-40x-req] Ban XX.XX.XX.XX
2021-09-03 18:50:08,488 fail2ban.filter [32586]: THÔNG TIN [nginx-40x-req] Đã tìm thấy XX.XX.XX.XX - 2021-09-03 18:50:08

Vì vậy, tôi vẫn nghĩ rằng vấn đề có thể là tốc độ đọc.

CHỈNH SỬA3:

Cuối cùng tôi đã nâng cấp phiên bản fail2ban lên 0.11.2, tôi đã thêm một mẫu dữ liệu và tôi đã thay đổi trình phát hiện địa chỉ. Bây giờ dường như đọc tệp nginx nhanh hơn rất nhiều.

[Sự định nghĩa]
failregex = ^{"status": (400|401|403), "request_time": [0-9\.]+,\s+"remote_addr": "<ADDR>",
datepotype = "@timestamp": "%%Y-%%m-%%dT%%H:%%M:%%S%%z"
Michael Hampton avatar
lá cờ cz
Đây là phiên bản fail2ban nào?
lá cờ br
Xin chào Michael, phiên bản mới nhất trong Debian 10: 0.10.2. Bây giờ kẻ tấn công đã bị cấm và kẻ tấn công khác chỉ đang thực hiện một vài yêu cầu, có vẻ như đang hoạt động. Tôi vẫn nghĩ về vấn đề đó là tốc độ đọc.
Michael Hampton avatar
lá cờ cz
Nhật ký của bạn có thể đã quá lớn. Bạn có đang xoay nhật ký nginx của mình thường xuyên không?
lá cờ br
Vấn đề là nó trở nên lớn khi kẻ tấn công tấn công và fail2ban không thể đọc nó đủ nhanh. Tôi đã xóa tệp nhật ký nhiều lần trong quá trình kiểm tra của mình vì đó là lần đầu tiên tôi nghĩ đến, vì vậy tệp nhật ký gần như trống rỗng.
lá cờ br
Một câu hỏi: Fail2ban lưu trữ các địa chỉ IP được phát hiện trong bộ nhớ hay nó cố đọc phạm vi "thời gian tìm kiếm" trong tệp?.
Điểm:2
lá cờ il
  1. Không nên theo dõi nhật ký truy cập, xem fail2ban/wiki :: Phương pháp hay nhất đặc biệt là phần "Giảm lưu lượng nhật ký ký sinh".
  2. Các biểu thức chính quy không phù hợp cũng có thể gây ra fail2bans "tốc độ đọc có thể chậm hơn tốc độ ghi", chỉ là tôi không thấy RE của bạn không tốt. Nhưng nó có thể được thực hiện nhanh hơn, chỉ cần bạn thay đổi định dạng ghi nhật ký cho điều đó. Cũng xác định đơn và chính xác mẫu ngày tháng có thể giúp tăng tốc độ xử lý.
  3. Tất cả trong một nó có thể tạo ra tình trạng chạy đua đã biết, fail2ban bị ảnh hưởng cho đến v.0.10.5, xem https://github.com/fail2ban/fail2ban/issues/2660 để biết chi tiết (bản sửa lỗi đã được phát hành trong v.0.10.6/v.0.11.2)

Cũng lưu ý các câu trả lời cho các vấn đề tương tự, ví dụ https://github.com/fail2ban/fail2ban/issues/3021#issuecomment-834287295.

lá cờ br
Cảm ơn!, Tôi không thể tìm thấy bất cứ điều gì về nó nhưng liên kết thì rõ ràng. Tôi đã cập nhật lên phiên bản mới nhất và tôi đã thực hiện một số thay đổi trong bộ lọc. Bây giờ dường như nhanh hơn và cũng có vẻ như kẻ tấn công đã dừng lạ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.