Fail2Ban 로그 파일에서 '발견'은 무엇입니까?


19

/var/log/fail2ban.log에 다음과 같은 여러 인스턴스가 있습니다.

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

(여기서 #은 다양한 IP 주소를 대체합니다.)

이 로그 항목의 의미는 정확히 무엇입니까? 특히, 무엇을 Found의미합니까?

로그 파일에 대한 설명은 여기와 http://www.fail2ban.org 에서 검색했습니다 . 이 질문에 대한 명백한 정보 출처를 놓친 경우 사과드립니다. 올바른 방향으로 알려주십시오.

다음은 /etc/fail2ban/filter.d/sshd.config의 FailRegex 구성입니다.

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$

filter.d / sshd.conf에서 FailRegex는 무엇입니까? fail2ban.org/wiki/index.php/MANUAL_0_8# 필터
프랭크 토마스

(원래 게시물에 FailRegex를 추가했습니다.)
nmax

내 로그 10-1에 따르면 ssh는 해커가 가장 좋아하는 첫 번째 선택입니다. 시스템에 연결하는 것 중 하나 일 것입니다. ssh에 대해서만 10,000 개 이상의 IP가 있습니다.
cybernard

filter.d / sshd.conf의 다른 정규식 패턴에 'Found'라는 단어가 포함되어 있습니까?
Frank Thomas

흥미롭게도 문자열 'Found'는 sshd.conf 또는 / etc / fail2ban 내의 파일에 나타나지 않습니다. @cybernard 나는 확실히 동의한다. 문제는 fail2ban이 이미 ssh 시도를 금지하고 있으며 암호 기반 ssh가 시스템에서 비활성화되어 있다는 것입니다 (키 기반 ssh 만 해당).
nmax

답변:


17

Found xxx.xxx.xxx.xxx메시지 수단은 fail2ban 필터 라인과 일치하는 결과는 주어진 필터 / 감옥 로그에 failregex있다.

예를 들어 로그에

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

두 번째 첫 번째 Found의미는 IP 주소 1.2.3.4가 주어진 sshd 로그 (예 : /var/log/auth.log)에서 2 번 발견되었으며 로그 파일의 항목 failregex이 필터에서 일치 함 을 의미합니다./etc/fail2ban/filter.d/sshd.conf

2 번의 실패한 ssh-attemtps 이후에 금지하도록 구성한 것처럼 세 번째 줄은 IP 1.2.3.4가 2 번 발견 된 후에 금지되었음을 나타냅니다.

내가 이것에 대해 알게 된 방법 :

python 소스 fail2ban (데비안에서는 이것이 있습니다)에서 다음을 /usr/lib/python3/dist-packages/fail2ban/수행하십시오.

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

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

937 행의 python 파일 "server / filter.py"에서 해당 로그 함수를 찾을 수 있습니다.

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

이 답변이 게시 된 지 오랜 시간이 걸렸지 만 다시 돌아 왔습니다. 이처럼 명쾌하고 완전한 답변입니다. 감사합니다.
nmax
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.