Envío de email cuando hay un login por ssh

En máquinas conectadas directamente a Internet (y esto incluye el acceso a ellas vía un puerto abierto del Firewall), es recomendable estar atento a los "logins de usuario" que se producen. En entornos profesionales, además del aviso de correo que programamos aquí, es conveniente hacer uso de otras herramientas tipo SIEM o HostIDS. En mi servidor, que es pequeñito y con pocos recursos, yo utilizo lo que sigue.

He agregado esto al fichero "/etc/pam.d/sshd".

# Envío de correo cuando login
session optional pam_exec.so /root/bin/send-mail-on-ssh-login.sh

El fichero completo (/etc/pam.d/sshd), como referencia y copia de seguridad, está adjunto al final de este artículo (le has agregado la extensión .txt para que sea "subible" al blog).

Y he creado el script correspondiente en "/root/bin/" con este contenido:

#!/bin/sh
if [ "$PAM_TYPE" != "open_session" ]
then
  exit 0
else
  {
    echo "User: $PAM_USER"
    echo "Remote Host: $PAM_RHOST"
    echo "Service: $PAM_SERVICE"
    echo "TTY: $PAM_TTY"
    echo "Date: `date`"
    echo "Server: `uname -a`"
  } | mail -s "$PAM_SERVICE login on `hostname -s` for account $PAM_USER" example@example.com
fi

exit 0

¡OJO!: has de modificar la dirección de mail "example@example.com" por la tuya propia donde quieres recibirlos.

Referencias:
1.- http://blog.th-neumeier.de/2011/02/send-email-on-ssh-login-using-pam/
2.- http://serverfault.com/questions/400613/send-notification-email-when-the...
3.- http://www.tiger-computing.co.uk/get-notified-with-every-ssh-login/
4.- http://www.farinspace.com/secure-login-linux-server/
5.- http://www.mydigitallife.info/how-to-get-linux-server-sends-email-alert-...

Para avisar cuando alguien hace login como root (no permitido por ssh, sólo como "promoción interna" ;-)), añadimos al .bashrc de root lo siguiente (¡¡OJO!! No hagas copy/paste de esta línea. Es mejor que la teclees pues debe de haber -introducidos por el "parser" de coloreado de sintaxis- códigos de control extraños en algunos caracteres que no funcionan si la copias):

echo 'ALERT - Root Shell Access () on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d"(" -f2 | cut -d")" -f1`" example@example.com

Espero que te sea útil.

Si consideras alguna parte mejorable, por favor, indícamelo con un comentario. Como siempre, te estaré muy agradecido.

AdjuntoTamaño
Plain text icon sshd.txt2.18 KB

Clasificado en artículos de:

comment reply