¿Qué es 'Encontrado' en el archivo de registro Fail2Ban?

19

Tengo varias instancias como las siguientes en /var/log/fail2ban.log:

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

(Donde # sustituye a una diversidad de direcciones IP).

¿Cuál es exactamente el significado de esta entrada de registro? En particular, ¿qué Founddenota?

Busqué aquí y http://www.fail2ban.org para obtener una explicación del archivo de registro. Si me he perdido una fuente de información obvia para esta pregunta, mis disculpas, por favor, apúnteme en la dirección correcta.

Aquí está la configuración de FailRegex en /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
fuente
en filter.d / sshd.conf, ¿cuál es su FailRegex? fail2ban.org/wiki/index.php/MANUAL_0_8#Filters
Frank Thomas
(Se agregó FailRegex a la publicación original).
nmax
ssh es la primera opción favorita de los piratas informáticos, de acuerdo con mis registros 10 a 1. Es probable que uno de estos se conecte a su sistema. Tengo más de 10,000+ ip solo para ssh.
cybernard
¿Alguno de los otros patrones de expresiones regulares en filter.d / sshd.conf contiene la palabra 'Found'?
Frank Thomas
Curiosamente, la cadena 'Found' no aparece en sshd.conf ni en ningún archivo dentro de / etc / fail2ban. @cybernard Definitivamente estoy de acuerdo; el problema es que fail2ban ya está prohibiendo los intentos de ssh, y ssh basado en contraseña está deshabilitado en el sistema (solo ssh basado en clave).
nmax

Respuestas:

17

El Found xxx.xxx.xxx.xxxmensaje significa que el filtro fail2ban encontró una línea que coincide con failregex en el archivo de registro de filtro / cárcel dado.

Por ejemplo, si el registro muestra

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

Los dos primeros Foundsignifican que la dirección IP 1.2.3.4 se encontró 2 veces en el registro sshd dado (por ejemplo, /var/log/auth.log) y que la entrada en el archivo de registro coincide failregexen el filtro/etc/fail2ban/filter.d/sshd.conf

Como he configurado para prohibir después de 2 intentos fallidos de ssh, la tercera línea muestra que IP 1.2.3.4 ha sido prohibido después de esos 2 casos encontrados.

Cómo me enteré de esto:

En las fuentes de python de fail2ban (en Debian, esto es /usr/lib/python3/dist-packages/fail2ban/), haga esto:

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

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

En el archivo de python "server / filter.py" en la línea 937, encontrará la función de registro correspondiente:

def processLineAndAdd(self, line, date=None):
  [..]
  logSys.info("[%s] Found %s" % (self.jail.name, ip))
  [..]
minni
fuente
Sé que ha pasado mucho tiempo desde que se publicó esta respuesta, pero acabo de volver a recibirla. Es una respuesta tan lúcida y completa, gracias.
nmax