Vigila tus sesiones SSH con un comando

Este post esta indicado para todos aquellos que llevamos o gestionamos un servidor o una máquina que tiene activo el servicio ssh. Como bien sabéis, ssh (Secure SHel) es un protocolo que permite a un host conectarse remotamente a una máquina que tenga activado este servicio. Podemos tenerlo activado en un servidor, en un pc de uso diario o por ejemplo, en una raspberry, como yo utilicé en el post de instalar wordpress en una raspberry.

Este protocolo es muy útil, sobre todo cuando queremos trabajar con una máquina remotamente. Gracias a él podemos interactuar con el sistema mediante una terminal, y si lo deseamos, también tenemos la opción de lanzar aplicaciones con entorno gráfico.

Este post no es nada complejo y puede que haya herramientas mucho mas sofisticadas para realizar esta tarea. Como sabéis, al tener el servicio ssh activo y un puerto abierto para conectar desde fuera de mi LAN a este servicio, son numerosas veces las que recibimos ataques de intento de login. SSH es un servicio bastante vulnerable a fuerza bruta, ya que la mayoría de la gente no lo tiene bien configurado. Aún así, nunca viene mal tener un pequeño control de los intentos de login que ha habido.

Los intentos de login, ya sean aceptados o rechazados se guardar el el fichero /var/log/auth.log de nuestra máquina. Siempre y cuando trabajemos con Linux. Básicamente, para saber las Ip’s que han tenido acceso o han sido rechazadas por nuestro servicio ssh, vamos usar la herramienta awk. Esta herramienta permite crear condiciones como si de programación estuviésemos hablando y con un simple comando, obtener nuestro objetivo.

awk '{if ($6=="Failed") print $11}' auth.log > ips.txt

Lo que estamos diciendo en este comando es:

Si en el bloque6 (cuando hablamos de bloque, nos referimos a columna o palabra en una línea) lo que haya es igual a ‘Failed’ imprime el bloque11 (El bloque de la línea que contiene la Ip). Para que os quede más claro, os pongo una imagen para que veais la estructura de un fichero log para ssh.

Vigila tus sesiones ssh

Por ejemplo, podemos ver una de las líneas de una conexión aceptada. Para volcar en el fichero de texto las conexiones aceptadas en vez de las rechazadas únicamente tendríamos que cambiar en nuestro comando el ‘Failed’ por ‘Accepted’. De esta forma, tendríamos todas las Ip’s que han iniciado sesión en nuestro ssh. Aunque OJO! Si te han hackeado, lo más probable es que el hacker haya borrado esos logs para no haber dejado rastro, ya que es la última fase que hay que seguir a la hora de realizar un ataque!

 

Es un pequeño tutorial muy sencillo. Pero os puede servir de ayuda y que así, a la vez conozcais la herramienta awk que tiene una gran potencia, creerme.

? ¡Saludos ciclistas! ?

Sobre mí

¡Hola a todo@s!
Soy Miguel Negro López, creador de CycleWeb, estudiante de Ingeniería Informática de tercer curso en la Universidad de Castilla La Mancha ,más concretamente en Ciudad Real. Apasionado del deporte pero sobre todo del ciclismo. De ahí el nombre de este pequeño proyecto.