Teniendo un servicio publicado a internet sabemos que vamos a estar expuestos a ataques, por eso es importante no solo mantener actualizado si no también poder saber como ver quienes están intentando ingresar a hacer sus fechorías, así que te muestro como poder verlo de forma simple para tu distribución Linux.

Voy a mostrar 2 formas, una que muestra todos los usuarios y otra que muestra al usuario root, pero básicamente los parámetros son de ejemplo se pueden intercambiar a gusto. Para lograr esto vamos a valernos del análisis sobre un archivo que se llama secure y se encuentra en /var/log. La idea es poder familiarizarse con este y poder chequear por ssh nuestro servidor.

1- Ver todos intentos

En este ejemplo voy a listar, primero la cantidad de veces seguido de la IP que intento establecer la conexión y el nombre de usuario que se probó. Miren bien que head -20 me muestra solo los primeros 20 resultados, si saco este parámetro voy a visualizar todos los intentos.

zgrep -hi "Failed password for " /var/log/secure* | sed "s/invalid user //" | tr -s " " | awk '{print $11" "$9}' | sort | uniq -c | sort -rn | head -20

ssh-ataq1

2- Ver solo al usuario root

En este otro ejemplo, que es otra alternativa, solo al usuario root, similar al ejemplo anterior sort -rn me ordena de mayor a menor los intentos, y head -10 solo los últimos 10 resultados.

cat /var/log/secure* | grep 'Failed password' | awk '{print $9 " " $11 }' | sort | uniq -c | sort -rn | head -10

ssh-ataq2Sabiendo esto ya podemos tomar medidas como bloquear estas IP en el firewall, dado que seguramente sea un ataque de fuerza bruta por diccionario, así que seguiré publicando sobre este tema y si podes colaborar sos bienvenido.

6 Comentarios

  1. Hola muy buen articulo, en mi caso yo tengo un firewall fortinet para controlar la entrada y salida de conexiones, sin embargo cuando ejecuto el comando que indicas veo bastantes intentos de conexión como usuario “root”, pero todas las IPs que me indican pertenecen a la IP de mi firewall, habrá alguna forma de que pueda saber cual es la IP de origen real???

    Gracias por la respuesta.

    • Habría que investigar como buscar, lo que se me ocurre es restringir acceso solo para tu rango ip, quitar http y https de las wan, como para restrigir, haciendo eso mejoras la seguridad y evitas un ataque de diccionario, algo rápido, pero se pueden hacer más cosas. Mira el log.

  2. Jorge,
    Muy buen dato !!,
    Un humilde aporte para colaborar, seria que con referencia a los logs, existe una herramienta llamada Fail2Ban la cual te permite banear (Bloquear) las ip de los equipos que intentan acceder “logear” en nuestro servidor, esta herramienta soporta varios servicios como ssh, asterisk, vsftp, http… Me toco configurarla y realmente funciona muy bien. Basicamente lo que hace es analizar los log del sistema en busqueda de intetos de intrusion por fuerza bruta, luego de obtenida la ip que del atacante crea una regla en iptables bloqueandola definitivamente.
    Mas informacion en: http://www.fail2ban.org/wiki/index.php/Main_Page
    Realmente haces muchos aportes para la comunidad Linux y son de mucha utilidad, varias veces me fueron utiles tus aportes !! Muchas gracias !! Saludos

    • Enrique gracias por el comentario y por e aporte, trato de mostrar todo lo que puedo de forma simple y que a usuarios como vos les sirva algo de las publicaciones me hace seguir investigando para publicar cada vez mejor contenido y se cumple el propósito del blog. Saludos

Deja un comentario