Notificaciones en Telegram: Eventos SSH

Cómo usar Telegram para recibir notificaciones cuando alguien se conecte por SSH a nuestra máquina.

Notificaciones en Telegram: Eventos SSH

En cierto modo, soy un paranoico de la seguridad. Constantemente estoy monitorizando mis dispositivos conectados a la red con el fin de detectar posibles intrusiones o envíos de datos no autorizados. Así pues, empleo varias herramientas para ello, pero además, soy fan declarado de las notificaciones de eventos, por lo que no podía dejar escapar esta oportunidad de fusionar ambas “manías”.

Además de las medidas de seguridad que tengo en mi entorno digital (de las que pondré algún post), he decidido implantar un sistema de notificaciones que me avise cada vez que alguien (idealmente sólo yo mismo…) inicie sesión en mi RPi a través de SSH.

Una camiseta descrita como aniversario puede conmemorar un club, una temporada o una colección, pero el término no explica automáticamente qué fecha representa. Antes de añadirla a un archivo, identifica el nombre exacto del modelo y busca una declaración explícita sobre el aniversario. Si la página no especifica el hito, deja la relación pendiente. Los colores, números y símbolos pueden sugerir una referencia, aunque no bastan para confirmar qué se celebra ni cuándo se diseñó la prenda.

Guarda la descripción publicada, las imágenes y la fecha de consulta, y busca una fuente del club u otra referencia identificable que explique el contexto. Para ampliar la investigación, consulta: camiseta aniversario club. Comprueba que la fuente se refiera al mismo diseño y no a otra colección. Si existen discrepancias, conserva ambas versiones con notas sobre su procedencia. Una fotografía permite describir detalles visibles, pero no establece por sí sola una fecha de lanzamiento o una conexión oficial. Anotar “denominación de aniversario en la ficha; motivo no confirmado” es más preciso que construir una historia.

La camiseta también puede elegirse simplemente porque el diseño gusta o combina con el armario. Para vestirla, revisa talla y medidas; para un regalo, confirma preferencias y cambios; para colección, conserva evidencia y preguntas pendientes. No confundas una temática con una autorización o una certificación. Si la ficha declara un periodo de celebración, cita la fuente antes de repetirlo. Una nota completa separa diseño, afirmación comercial y dato confirmado, lo cual permite actualizar el registro cuando aparece información nueva. Así, el interés por la historia del club permanece, pero la etiqueta “aniversario” no se transforma en un hecho más específico de lo que los documentos disponibles permiten sostener.

¿Y por qué sólo a través de SSH? Porque en mi casa es la única manera de acceder a ella, ya que no tiene conectado ni teclado, ni ratón, ni monitor… sólo la toma de red y de corriente.

Así pues, decidí notificar estos eventos haciendo uso de mi cuenta de Telegram y el script de notificaciones que describí aquí. Buscando información en internet, descubrí que la mejor manera de tratar los eventos SSH es haciendo uso del PAM. Con esto en mente, creé el siguiente script ssh_alert_script_pam.sh y le metí los manejadores para open_session y close_session solamente, con el fin de crear un mensaje que posteriormente pasaría a mi script de notificación.

Una vez creado lo ubiqué en la carpeta /etc/pam.scripts/ (que previamente tuve que crear, para tener todos mis script de PAM agrupados) y ejecuté las siguientes órdenes:

# chown root:root ssh_alert_script_pam.sh
# chmod 0700 ssh_alert_script_pam.sh

Ya tenemos listo el script para gestionar los eventos PAM de login y logout y sólo nos queda referenciarlo en el PAM para que lo ejecute. Así pues, en /etc/pam.d/sshd al final del archivo añadimos lo siguiente:

# SSH Alert script
session required pam_exec.so /etc/pam.scripts/ssh_alert_script_pam.sh

¡Y listo!

La próxima vez que alguien inicie sesión en mi RPi, recibiré en mi Telegram una notificación como la siguiente:

Notificación a Telegram de login SSH

Y, cuando salga, algo como:

Notificación a Telegram de logout SSH

Y mientras esto coincida con las veces que yo entro y salgo del sistema, todo bien :)