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.

¿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 :)