Alerta por email de login en ssh

Como administradores de sistemas Linux es importante saber que está ocurriendo en nuestros servidores, en este sencillo ejemplo el sistema nos avisará por email cuando alguien hace un login por ssh.

Para empezar deberemos tener funcionando el xmail y en la configuración del servicio ssh (/etc/ssh/sshd) tendremos que tener habilitada la opción de PAM (UsePAM yes) para poder capturar el evento.

Crearemos un fichero, por ejemplo ssh_login.sh, y lo guardaremos la carpeta /etc/ssh con el siguiente contenido:

#!/bin/bash

# Datos de email
sender="alertas@miserver.com"
recepient="administrador@midominio.com"

if [ "$PAM_TYPE" != "close_session" ]; then
    asunto="ALERTA Login SSH: $PAM_USER desde $PAM_RHOST"
    # Cuerpo del mensaje, env contiene todas las variables de inicio
    mensaje="`env`"
    echo "$mensaje" | mailx -r "$sender" -s "$asunto" "$recepient"
fi

El siguiente paso es que el archivo se pueda ejecutar:

# chmod +x ssh_login.sh

Finalmente añadiremos la siguiente línea en el fichero /etc/pam.d/sshd para que se ejecute al procesar el login de ssh a través de PAM:

session optional pam_exec.so seteuid /etc/ssh/ ssh_login.sh

Como nota final podemos ver que hemos añadido la configuración en PAM con el parámetro “opcional”, esto indica que aunque se genere un error en el script el proceso continuará, si queremos forzar que se ejecute incondicionalmente cambiaremos “optional” por “required”.