'Tìm thấy' trong Tệp Nhật ký Fail2Ban là gì?


19

Tôi có nhiều trường hợp như sau trong /var/log/fail2ban.log:

2015-12-27 14:31:21,949 fail2ban.filter         [1020]: INFO    [sshd] Found ###.###.###.###

(Trong đó # thay thế cho sự đa dạng của các địa chỉ IP.)

Chính xác ý nghĩa của mục nhật ký này là gì? Đặc biệt, Foundbiểu thị cái gì?

Tôi đã tìm kiếm ở đây và http://www.fail2ban.org để giải thích về tệp nhật ký. Nếu tôi đã bỏ lỡ một nguồn thông tin rõ ràng cho câu hỏi này, lời xin lỗi của tôi - vui lòng chỉ cho tôi đi đúng hướng.

Đây là cấu hình cho FailRegex trong /etc/fail2ban/filter.d/sshd.config:

failregex = ^%(__prefix_line)s(?:error: PAM: )?[aA]uthentication (?:failure|error) for .* from <HOST>( via \S+)?\s*$
        ^%(__prefix_line)s(?:error: PAM: )?User not known to the underlying authentication module for .* from <HOST>\s*$
        ^%(__prefix_line)sFailed \S+ for .*? from <HOST>(?: port \d*)?(?: ssh\d*)?(: (ruser .*|(\S+ ID \S+ \(serial \d+\) CA )?\S+ %(__md5hex)s(,$
        ^%(__prefix_line)sROOT LOGIN REFUSED.* FROM <HOST>\s*$
        ^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from <HOST>\s*$
        ^%(__prefix_line)sUser .+ from <HOST> not allowed because not listed in AllowUsers\s*$
        ^%(__prefix_line)sUser .+ from <HOST> not allowed because listed in DenyUsers\s*$
        ^%(__prefix_line)sUser .+ from <HOST> not allowed because not in any group\s*$
        ^%(__prefix_line)srefused connect from \S+ \(<HOST>\)\s*$
        ^%(__prefix_line)sReceived disconnect from <HOST>: 3: \S+: Auth fail$
        ^%(__prefix_line)sUser .+ from <HOST> not allowed because a group is listed in DenyGroups\s*$
        ^%(__prefix_line)sUser .+ from <HOST> not allowed because none of user's groups are listed in AllowGroups\s*$
        ^(?P<__prefix>%(__prefix_line)s)User .+ not allowed because account is locked<SKIPLINES>(?P=__prefix)(?:error: )?Received disconnect from$
        ^(?P<__prefix>%(__prefix_line)s)Disconnecting: Too many authentication failures for .+? \[preauth\]<SKIPLINES>(?P=__prefix)(?:error: )?Co$
        ^(?P<__prefix>%(__prefix_line)s)Connection from <HOST> port \d+(?: on \S+ port \d+)?<SKIPLINES>(?P=__prefix)Disconnecting: Too many authe$
        ^%(__prefix_line)spam_unix\(sshd:auth\):\s+authentication failure;\s*logname=\S*\s*uid=\d*\s*euid=\d*\s*tty=\S*\s*ruser=\S*\s*rhost=<HOST$

trong bộ lọc.d / sshd.conf, FailRegex của bạn là gì? fail2ban.org/wiki/index.php/MANUAL_0_8#Filters
Frank Thomas

(Đã thêm FailRegex vào bài đăng gốc.)
nmax

ssh là lựa chọn yêu thích đầu tiên của tin tặc, theo nhật ký 10 đến 1. Đây có thể là một trong những kết nối với hệ thống của bạn. Tôi có hơn 10.000 ip chỉ cho ssh.
gian mạng

có bất kỳ mẫu regex nào khác trong bộ lọc.d / sshd.conf có chứa từ 'Found' không?
Frank Thomas

Thật kỳ lạ, chuỗi 'Found' không xuất hiện trong sshd.conf hoặc bất kỳ tệp nào trong / etc / fail2ban. @cybernard Tôi chắc chắn đồng ý; vấn đề là fail2ban đã cấm các lần thử ssh và ssh dựa trên mật khẩu bị vô hiệu hóa trên hệ thống (chỉ ssh dựa trên khóa).
nmax

Câu trả lời:


17

Các Found xxx.xxx.xxx.xxxphương tiện thông điệp, rằng bộ lọc fail2ban tìm thấy một dòng rằng trận đấu failregex trong logfile lọc / tù nhất định.

Ví dụ: nếu nhật ký hiển thị

2016-03-16 15:35:51,527 fail2ban.filter         [1986]: INFO    [sshd] Found 1.2.3.4
2016-03-16 15:35:51,817 fail2ban.filter         [1986]: INFO    [sshd] Found 1.2.3.4
2016-03-16 15:35:52,537 fail2ban.actions        [1986]: NOTICE  [sshd] Ban 1.2.3.4

Hai Foundnghĩa đầu tiên , địa chỉ IP 1.2.3.4 đó đã được tìm thấy 2 lần trong nhật ký sshd đã cho (ví dụ: /var/log/auth.log) và mục nhập trong logfile khớp với failregexbộ lọc/etc/fail2ban/filter.d/sshd.conf

Như tôi đã cấu hình để cấm sau 2 lần ssh-attemtps không thành công, dòng thứ 3 cho thấy, IP 1.2.3.4 đã bị cấm sau 2 lần xuất hiện đó.

Làm thế nào tôi phát hiện ra điều này:

Trong các nguồn python của fail2ban (trong Debian, đây là /usr/lib/python3/dist-packages/fail2ban/) làm điều này:

cd /usr/lib/python3/dist-packages/fail2ban/

grep -r "\[%s\] Found" *

Trong tệp python "server / filter.py" trên dòng 937, bạn tìm thấy chức năng nhật ký tương ứng:

def processLineAndAdd(self, line, date=None):
  [..]
  logSys.info("[%s] Found %s" % (self.jail.name, ip))
  [..]

Tôi biết đã lâu rồi kể từ khi bài trả lời này được đăng, nhưng tôi mới quay lại. Đó là một phản ứng hoàn toàn sáng suốt - cảm ơn.
nmax
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.