Enviar email cuando el usuario root se conecta por SSH

Una de las configuraciones que más utilizan los administradores de sistemas Linux es la configuración de envío de mail al administrador cuando se detecta un acceso del usuario root al sistema por medio de SSH.

Para ello lo primero que debemos hacer es encontrar un archivo de sistema en entornos Linux que sepamos se ejecuta cada vez que un usuario se conecta, es decir, cada vez que un usuario hace login. Como muchos de vosotros sabréis, ese archivo de sistema en Linux es el archivo oculto .bash_profile. Este fichero es leído y todos los comandos incluidos en él ejecutados cada vez que un usuario se conecta al sistema.

En este fichero podemos indicarle al sistema que cada vez que un usuario se conecte efectúe cierto número de acciones, entre ellas la que queremos configurar en esta ocasión, el envío del mail al administrador.

Como queremos que se envíe cuando se conecte el usuario root, debemos de modificar el fichero .bash_profile correspondiente. Para ello nos conectamos como root y nos dirigimos a al directorio root. Allí editamos .bash_profile con nuestro editor de texto preferido.

En este caso utilizaré nano:

nano /root/.bash_profile

Veremos algo como esto:

#.bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME

Al final de nuestra configuración de .bash_profile tenemos que añadir los comandos para que no envíe un mail cada vez que se conecta nuestro usuario root. Para ello escribiremos:

echo ‘ALERTA Acceso shell de Root al servidor (nombre de tu servidor) el :’ `date` `who` | mail -s “Alerta de acceso Root ” admin@tudominio.com

Donde date te da la hora y fecha del acceso y who te dice desde que ip.

Normalmente el archivo .bash_profile suele estar modificado con el comando chattr, para que no pueda ser modificado ni eliminado, es decir, inmutable. Para quitar ese atributo debemos ejecutar antes de modificar el archivo chattr -i /root/.bash_profile.

Por lo que todo resumido sería:

– Login como root.

Comandos:

chattr -i /root/.bash_profile
nano /root/.bash_profile

#.bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME

echo ‘ALERTA Acceso shell de Root al servidor (nombre de tu servidor) el :’ `date` `who` | mail -s “Alerta de acceso Root ” admin@tudominio.com
chattr +i /root/.bash_profile

Con esto la siguiente vez que el usuario root realice un login mediante SSH se enviará un mail al correo del administrador.

4 respuestas a «Enviar email cuando el usuario root se conecta por SSH»

  1. Hola, puedo usar cualquier cuenta de correo??? o tengo que instalar el servidor de email en la misma maquina,

    gracias,

  2. buenas tardes.

    primero q nada salu2, no soy muy experimentado en linux. Estoy intentando usar estas opciones que colocas para el envio demail cuadno root se conecte de nuevo a un equipo y no tengo ese archivo .bash_profile solo poseo el .bash_history, sin embargo cree el archivo pero me dice que hay errores en la sintaxis sera q m pueden ayudar ??

    1. crea el .bash_profile y le pegas esto al principio del archivo

      # .bash_profile
      
      # Get the aliases and functions
      if [ -f ~/.bashrc ]; then
              . ~/.bashrc
      fi
      
      # User specific environment and startup programs
      
      PATH=$PATH:$HOME/bin
      
      export PATH
      unset USERNAME
      

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.