viernes, 7 de febrero de 2014

Instalador servicio correo ssmtp para alertas por email

Complementando las entradas de script de instalación y configuración automática de servicios en un servidor, os propongo una posible solución para dotar a un servidor de capacidad para enviar correos electrónicos de alerta a su administrador. Para ello, se realiza la instalación del servicio ssmtp (servicio de correo electrónico simple) y su correspondiente configuración modificando los archivos ssmtp.conf y revaliases, según la configuración que se indique desde teclado.


Para comprobar el correcto funcionamiento del servicio ssmtp, una vez haya sido instalado y configurado desde el script, sólo tendremos que teclear en la consola de comandos algo como esto:

ssmtp dirección_destino@loquesea.com < mensaje.txt

donde mensaje.txt deberá tener un formato adecuado, tal que así:

from: servidor que envia la alerta
subject: asunto de la alerta
# línea en blanco
texto de la alerta, tantas líneas como se necesiten

En este enlace puedes encontrar más información relacionada con el envío y preparación de correos electrónicos a través de consola. Y hacia el final de esta otra entrada podrás encontrar la primera versión de instalación automática del servicio ssmtp y envío de alertas por email.

En próximas entradas de este mismo blog, os mostraremos scripts que construirán mensajes de alerta automáticos en función del servicio/os que puedan haber caído.

#!/bin/bash

#Script que instala y configura servicio
#de correo electrónico ssmtp

#-------------------------------------
#     FUNCIONES
#-------------------------------------

function eresroot()
{
    if [ "$LOGNAME" != "root" ]              
    then
        echo "Este script debe ser ejecutado con privilegios de root."
        exit 1
    fi 
}

function configura()
{

    #1) Saco copia de seguridad
    if [ -f /etc/ssmtp/ssmtp.conf.old ]
    then
        echo "No se sacará copia de seguridad de ssmtp.conf"
    else
        cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.old
    fi

    if [ -f /etc/ssmtp/revaliases.old ]
    then
        echo "No se sacará copia de seguridad de revaliases"
    else
        cp /etc/ssmtp/revaliases /etc/ssmtp/revaliases.old
    fi


    #2) Modifico ssmtp.conf

    read -p "Introduce el usuario de gmail (sin @gmail.com): " usuario_gmail
    read -s -p "Introduce la contraseña: " clave_gmail

    echo "root=$usuario_gmail@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=$usuario_gmail
AuthUser=$usuario_gmail@gmail.com
AuthPass=$clave_gmail
FromLineOverride=YES
UseSTARTTLS=YES " > /etc/ssmtp/ssmtp.conf

    #3) Modifico revaliases
    echo "root:$usuario_gmail@gmail.com:smtp.gmail.com:587
tu_usuario_linux:$usuario_gmail@gmail.com:smtp.gmail.com:587" >> /etc/ssmtp/revaliases

}

function instala()
{

    which ssmtp
    if [ $? -ne 0 ]
    then
        # Hacemos una instalación silenciosa y sin confirmación
        sudo apt-get install -y -q=2 ssmtp
        if [ $? -eq 0 ]
        then
            echo "Instalación correcta de ssmtp"
            configura
        else
            echo "Error en la instalación de ssmtp"
            exit 1
        fi
    else
        configura   
    fi


}


#-------------------------------------
#     PROGRAMA PRINCIPAL
#-------------------------------------
eresroot
instala



No hay comentarios: