Cómo saber qué intentos fallidos de SSH ha tenido nuestro servidor

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

Deben ejecutar el comando anterior como root, o con sudo para hacerlo con permisos administrativos.

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}'

Lo de arriba es UNA sola línea.

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


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   hackloper775 dijo

    Muy buen uso de pipes

    Saludos

    1.    KZKG^Gaara dijo

      Gracias 🙂

  2.   FIXOCONN dijo

    Excelente los 2 post

  3.   Mystog@N dijo

    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.

  4.   Hugo dijo

    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.

    1.    KZKG^Gaara dijo

      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í 😀

  5.   Bray dijo

    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}’

    1.    Bray dijo

      en centos-redhat…..etc……
      /var/log/secure