Acabo de cat /var/log/auth.log
registrarme y ver que hay muchos | grep "Failed password for"
registros.
Sin embargo, hay dos tipos de registros posibles: para usuarios válidos / no válidos. Se complica mis intentos de | cut
ellos.
Me gustaría ver crear una lista (archivo de texto) con direcciones IP de posibles atacantes y número de intentos para cada dirección IP. ¿Hay alguna manera fácil de crearlo?
Además, solo en relación con ssh
: ¿Qué registros /var/log/auth.log
debo tener en cuenta al hacer una lista de posibles atacantes?
Ejemplo de mi 'auth.log' con números ocultos:
cat /var/log/auth.log | grep "Failed password for" | sed 's/[0-9]/1/g' | sort -u | tail
Resultado:
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user ucpss from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user vijay from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user webalizer from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user xapolicymgr from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user yarn from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user zookeeper from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for invalid user zt from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for mysql from 111.111.11.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for root from 111.11.111.111 port 11111 ssh1
Mar 11 11:11:11 vm11111 sshd[111]: Failed password for root from 111.111.111.1 port 11111 ssh1
/etc/ssh/sshd_config
... configuraciones de búsquedaPasswordAuthentication no
yPermitRootLogin without-password
... luego, todos los intentos de contraseña se frustrarán antes de ingresar al auth.log ...Respuestas:
Podrías usar algo como esto:
Busca la cadena
Failed password for
y extrae (-o
) la dirección IP. Se ordena yuniq
cuenta el número de ocurrencias.La salida se vería así (con su ejemplo como archivo de entrada):
El último en la salida ha intentado 6 veces.
fuente
| sort -n
a la cadena.sed -nr '/Failed/{s/.*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/;p}'
reemplaza a ambos greps.zgrep "Failed" /var/log/auth.log*
buscar a través de los archivos de registro comprimidos, losed
que no puede.Puede ser una solución hinchada, pero le sugiero que busque instalar algo como Fail2Ban
Está hecho para este tipo de inicio de sesión + agrega la ventaja de poder agregar reglas (temporales) en su firewall para bloquear a los infractores reincidentes. Asegúrese de lista blanca, aunque su propio de IP, logré encerrarme a cabo temporalmente en algunas ocasiones
fuente
Esto funcionó muy bien para mí. (Las IP se han cambiado para proteger al culpable)
fuente
fuente
password
no funciona. Que ni siquiera cubre diferentes tipos de entrada,awk
imprimir columna es alternativa a lacut
, no la solución.uniq -c
como en la mejor respuesta.