Che cos'è "Trovato" nel file di registro Fail2Ban?


19

Ho più istanze come la seguente in /var/log/fail2ban.log:

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

(Dove # sostituisce una varietà di indirizzi IP.)

Qual è esattamente il significato di questa voce di registro? In particolare, cosa Foundindica?

Ho cercato qui e http://www.fail2ban.org una spiegazione del file di registro. Se ho perso un'ovvia fonte di informazioni per questa domanda, le mie scuse - per favore, indicami la giusta direzione.

Ecco la configurazione di 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$

in filter.d / sshd.conf, qual è il tuo FailRegex? fail2ban.org/wiki/index.php/MANUAL_0_8#Filters
Frank Thomas

(Aggiunto FailRegex al post originale.)
nmax,

ssh è la prima scelta preferita dagli hacker, secondo i miei registri da 10 a 1. È probabilmente uno di questi che si collega al tuo sistema. Ho oltre 10.000+ ip solo per ssh.
cybernard,

gli altri pattern regex in filter.d / sshd.conf contengono la parola "Found"?
Frank Thomas,

Curiosamente, la stringa 'Found' non appare in sshd.conf o in nessun file all'interno di / etc / fail2ban. @cybernard Sono assolutamente d'accordo; il problema è che fail2ban sta già vietando i tentativi di ssh e ssh basato su password è disabilitato sul sistema (solo ssh basato su chiave).
nmax,

Risposte:


17

Il Found xxx.xxx.xxx.xxxmessaggio indica che il filtro fail2ban ha trovato una riga che corrisponde a failregex nel file di registro filtro / jail specificato.

Ad esempio se il registro mostra

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

I primi due Foundsignificano che l'indirizzo IP 1.2.3.4 è stato trovato 2 volte nel registro sshd dato (ad es. /Var/log/auth.log) e che la voce nel file di registro corrisponde failregexnel filtro/etc/fail2ban/filter.d/sshd.conf

Dato che ho configurato il ban dopo 2 ssh-tenttps falliti, la terza riga mostra che IP 1.2.3.4 è stato bannato dopo quei 2 eventi trovati.

Come ho scoperto questo:

Nei sorgenti Python di Fail2ban (in Debian questo è /usr/lib/python3/dist-packages/fail2ban/) fare questo:

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

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

Nel file python "server / filter.py" alla riga 937 trovi la funzione di registro corrispondente:

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

So che è passato molto tempo da quando questa risposta è stata pubblicata, ma ci sono tornata di nuovo. È una risposta così lucida e completa - grazie.
nmax,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.