martes, 20 de octubre de 2015

INSTALAR SSMTP EN RASPBERRY PI 2

"SSMTP" es una herramienta "sendmail" muy útil si no disponemos de un servidor MTA local (Linux Mail Transfer Agent), ya que actuará como un "smpt relay" que reenviará los correos de nuestra Raspberry a una cuenta externa Gmail. Si queremos, por ejemplo, que nuestros scripts manden notificaciones via e-mail de manera sencilla, el programa "SSMTP" nos servirá como instrumento para reenviar todo el correo que queramos a un servidor "SMPT" externo.

Instalaremos el paquete "SSMTP" y además un conjunto de herramientas para mandar correos desde la línea de comandos, que nos servirá como "testeo" de la aplicación:

$ sudo apt-get install mailutils ssmtp

Una vez instalados, abriremos el archivo de configuración:

$ sudo nano /etc/ssmtp/ssmtp.conf

Borramos el contenido y añadimos los siguientes parámetros:


root=usuario@gmail.com # especificamos la cuenta reenviadora. 
mailhub=smtp.gmail.com:587 # servidor y puerto servidor de correo Gmail
hostname=nombre de la Raspberry # hostname de nuestra Raspberry
AuthUser=usuario de Gmail # usuario de la cuenta reenviadora
AuthPass=contraseña # password de la cuenta reenviadora
# permitimos el protocolo de comunicación seguraTLS/SSL
UseTLS=Yes 
UseSTARTTLS=YES 
FromLineOverride=YES

Guardado el archivo, asignaremos los permisos oportunos. Debemos ser muy precavidos porque la contraseña de nuestra cuenta Gmail está en texto plano y sin un mínimo de seguridad cualquiera podría acceder a ella. Por eso, tenemos que tener muy claro quién va a acceder al archivo y qué usuarios van a poder mandar emails.
En mi caso, otorgaré el control total al usuario "root" y permiso de lectura al grupo "adm" (administradores del sistema):

$ sudo chown root:adm /etc/ssmtp/ssmtp.conf
$ sudo chmod 740 /etc/ssmtp/ssmtp.conf

También podemos crear un alias para que los usuarios locales puedan reenviar mails. Para configurar cada uno editamos el archivo "revaliases":

$ sudo nano /etc/ssmtp/revaliases


# sSMTP aliases
#
# Format:       local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
usuario_local:usuario@gmail.com:smtp.gmail.com:587

Con esto podemos asociar un usuario local a nuestra cuenta de gmail.

Una vez configurado todo, tendremos dos opciones probar la aplicación:

  • Mandando un correo a través del comando "mail" que instalamos con "mailutils": 
         $ sudo echo "esto es una prueba" | mail -s Prueba destinatario@gmail.com
  • Enviando un mail por medio del comando "ssmtp":
         $ sudo ssmtp destinatario@gmail.com
         
    Donde detallamos el asunto:

          Subject: esto es una prueba desde consola

          Pulsamos "enter" e introducimos el cuerpo del mensaje:

          Prueba desde Raspberry

          Para mandarlo solo tenemos que pulsar "ctrl + d".
         
Verificamos que nuestro mail se ha enviado correctamente desde el registro del sistema:

$ sudo cat /var/log/syslog





Hay que tener en cuenta que por defecto Google puede bloquear los intentos de inicio de sesión a nuestro correo de reenvío desde un dispositivo que no utilice sus estándares de seguridad. Para evitar esto accedemos al enlace https://www.google.com/settings/security/lesssecureapps y pinchamos en "activar" en "acceso de aplicaciones menos seguras:







Con todo esto, ya podremos enviar mails de notificaciones o alertas automáticamente a través de nuestros scripts desde nuestra Raspberry a cualquier dirección de correo que deseemos...














No hay comentarios:

Publicar un comentario