Was ist "Gefunden" in der Fail2Ban-Protokolldatei?

19

Ich habe mehrere Instanzen wie die folgende in /var/log/fail2ban.log:

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

(Wobei # eine Vielzahl von IP-Adressen ersetzt.)

Was genau bedeutet dieser Protokolleintrag? Was bedeutet insbesondere Found?

Ich habe hier und http://www.fail2ban.org nach einer Erklärung der Protokolldatei gesucht . Wenn ich eine offensichtliche Informationsquelle für diese Frage verpasst habe, bitte ich Sie um Entschuldigung, mich in die richtige Richtung zu weisen.

Hier ist die Konfiguration für FailRegex in /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$
nmax
quelle
Was ist Ihr FailRegex in filter.d / sshd.conf? fail2ban.org/wiki/index.php/MANUAL_0_8#Filters
Frank Thomas
(Fügte das FailRegex zum ursprünglichen Beitrag hinzu.)
nmax
Nach meinen Protokollen 10 bis 1 ist ssh die erste Wahl für Hacker. Es ist wahrscheinlich, dass eines davon eine Verbindung zu Ihrem System herstellt. Ich habe mehr als 10.000 ip nur für ssh.
Cybernard
Enthält eines der anderen Regex-Muster in der Datei filter.d / sshd.conf das Wort 'Gefunden'?
Frank Thomas
Seltsamerweise erscheint die Zeichenfolge 'Gefunden' nicht in der Datei sshd.conf oder in einer Datei in / etc / fail2ban. @ Cybernard Ich stimme definitiv zu; das problem ist, dass fail2ban bereits ssh-versuche verbietet und kennwortbasiertes ssh auf dem system deaktiviert ist (nur schlüsselbasiertes ssh).
nmax

Antworten:

17

Die Found xxx.xxx.xxx.xxxMeldung bedeutet, dass der fail2ban-Filter eine Zeile gefunden hat, die mit failregex in der angegebenen Filter- / Gefängnisprotokolldatei übereinstimmt.

Zum Beispiel, wenn das Protokoll anzeigt

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

Die beiden ersten Foundbedeuten, dass die IP-Adresse 1.2.3.4 zweimal im angegebenen sshd-Protokoll (z. B. /var/log/auth.log) gefunden wurde und der Eintrag in der Protokolldatei failregexim Filter übereinstimmt/etc/fail2ban/filter.d/sshd.conf

Wie ich konfiguriert habe, um nach 2 fehlgeschlagenen ssh-attemtps zu sperren, zeigt die 3. Zeile, dass IP 1.2.3.4 gesperrt wurde, nachdem diese 2 Vorkommen gefunden wurden.

Wie ich davon erfahren habe:

Führen Sie in den Python-Quellen von fail2ban (in Debian ist dies der Fall /usr/lib/python3/dist-packages/fail2ban/) Folgendes aus:

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

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

In der Python-Datei "server / filter.py" in Zeile 937 finden Sie die entsprechende Protokollfunktion:

def processLineAndAdd(self, line, date=None):
  [..]
  logSys.info("[%s] Found %s" % (self.jail.name, ip))
  [..]
minni
quelle
Ich weiß, dass es lange her ist, dass diese Antwort veröffentlicht wurde, aber ich bin gerade noch einmal darauf zurückgekommen. Es ist so eine klare, vollständige Antwort - danke.
nmax