Hace no mucho expliqué cómo saber qué IPs se han conectado por SSH, pero… ¿y si el usuario o password fue incorrecto y no se conectaron?
O sea, si hay alguien intentando adivinar cómo acceder por SSH a nuestro ordenador o servidor, de veras necesitamos saberlo ¿o no?
Para eso haremos el mismo procedimiento que en el post anterior, filtraremos el log de autentificación pero esta vez, con un filtro diferente:
cat /var/log/auth* | grep Failed
Les dejo un screenshot sobre cómo se ve:
Como pueden ver, me muestra el mes, día y hora de cada intento fallido, así como el usuario con que intentaron entrar y la IP desde la cual intentaron acceder.
Pero esto se puede organizar un poco más, usaremos awk para mejorar un poco el resultado:
cat /var/log/auth* | grep Failed | awk '{print $2 "-" $1 " " $3 "\t USUARIO: " $9 "\t DESDE: " $11}'
Aquí vemos cómo nos quedaría:
Esta línea que les acabo de mostrar no deben aprendérsela toda de memoria, pueden crear un alias para ella, de todas formas el resultado es el mismo que con la primera línea, solo que un poco más organizado.
Esto sé que no a muchos les será de utilidad, pero a los que administramos servidores sé que sí nos mostrará unos cuantos datos interesantes jeje.
Saludos
Muy buen uso de pipes
Saludos
Gracias 🙂
Excelente los 2 post
Yo usaba siempre el primero, pues no me conozco awk, pero voy a tener que aprenderlo
cat /var/log/auth* | grep Failed
Aqui donde trabajo, en la facultad de matematica-computacion de la Univ de Oriente en Cuba, tenemos una fabrica de «hackercillos», que a cada rato andan inventando cosas que no deben y tengo que estar con 8 ojos. El tema del ssh es uno de ellos. Thanks por el tip dude.
Una duda: si uno tiene un servidor de cara a internet pero en iptables uno abre el puerto ssh solo para ciertas direcciones MAC internas (digamos de una oficina), llegarían al log de autenticación los intentos de acceso desde el resto de las direcciones internas y/o externas? Porque yo tengo mis dudas.
En el log lo que se guarda es solo las peticiones permitidas por el firewall, pero denegadas o aprobadas por el sistema como tal (me refiero al login).
Si el firewall no permite pasar peticiones SSH, no llegará al log nada.
Esto no lo he probado, pero vamos… creo que debe ser así 😀
grep -i failed /var/log/auth.log | awk ‘{print $2 «-» $1 » » $3 «\t USUARIO: » $9 «\t DESDE: » $11}’
rgrep -i failed /var/log/(carpetas de logrotates) | awk ‘{print $2 «-» $1 » » $3 «\t USUARIO: » $9 «\t DESDE: » $11}’
en centos-redhat…..etc……
/var/log/secure