Securizando un VPS con LATCH (III). Evitando a los listillos

Una vez tenemos nuestro VPS protegido ante logins indeseados utilizando LATCH, es posible que algunos de vosotros os hayáis dado cuenta del pequeño fallo que presenta el método utilizado.

Exacto, en caso que el atacante se lie a hacer Ctrl+C justo después de poner el nombre de usuario y la contraseña, podría llegar a detener la ejecución del script antes incluso de realizar la petición al servidor, con lo que podría no servir de nada nuestra medida extra de seguridad.

Para evitarlo no tenemos más que hacer una pequeña modificación:

En el script en el cual comprobamos el estado de la cuenta (en el tutorial llamado stat.sh), añadiremos al principio de todo la siguiente linea:

prettyprint-bash nowrap
trap rutaanuestroscript 2

Es decir, si tenemos el script en /home/LATCH/stat.sh, el archivo quedaría

prettyprint-bash linenums nowrap
trap /home/LATCH/./stat.sh 2
applicationId="PHKXXXXXXXXXXX"
secretkey="TBKXXXXXXXXXXXXXXXXXXX"

Lo que hace el comando trap es "cazar" un comando enviado, en este caso el Ctrl+C (Interrupt from keyboard), el cual se identifica en el sistema con el número 2, y a su vez enlaza al comportamiento que debe tener el sistema el identificarlo.

Es decir, la sintaxis sería
trap comando señal
Siendo "señal" un entero, y "comando" la acción a realizar por el sistema

Más información sobre las señales en UNIX: http://unixhelp.ed.ac.uk/CGI/man-cgi?signal+7

Lo que estamos haciendo en este caso es forzar a que el script se ejecute de nuevo en caso de recibir un Ctrl+C, de modo que se terminaría haciendo la comprobación de la cuenta en LATCH y por tanto se cerraría la conexión.

También sería posible hacerlo todavía más agresivo, introduciendo
trap "pkill ssh" 2
de modo que en cuanto se detectara el Ctrl+C pensaríamos automáticamente que se está tratando de una intrusión y por defecto cerraríamos la conexión.

Nótese que en este caso el comando va entre comillas, ya que éste necesita argumentos.

Con el trabajo realizado en estos 3 posts hemos conseguido proteger de una forma bastante segura a nuestro VPS de posibles intentos de login no deseados.

Espero que os haya servido!

Rizando el rizo

Gracias a Arasthel (@arasthel92) podemos rizar aún más el rizo, haciendo que el script se ejecute en segundo plano, con lo cual incluso aunque hicieran un Ctrl+C el script se seguiría ejecutando, es decir, seguiría haciendo la consulta a los servidores de LATCH, recibiendo la confirmación y cerrando el proceso de SSH si es necesario.

Si deseamos que esto suceda, lo único que debemos hacer es añadir un "&" al final de la llamada al script en el .bashrc, quedando algo como

prettyprint-bash nowrap
/home/LATCH/./stat.sh &

Lo único que puede suceder en el caso de que hicieramos esto, es que al ejecutar el primer comando en el VPS veamos un mensaje indicando que el script ha finalizado su ejecución, algo como
Mensaje

Aunque si esto no nos supone mayor problema, es una forma de tener todavía más asegurado que el atacante no se podrá saltar la verificación de LATCH!