Configuración de envio de correo en Debian con SSMTP
Hoy en dia la mayoria de servidores no gestionan su propio correo electrónico pero sí necesitan enviar correos electrónicos para notificaciones, avisos o cualquier otro menester.
Históricamente he venido instalando el paquete Exim (el estándar Debian) configurado sólo para envio via un smarthost (un servidor encargado de aceptar y entregar el correo).
Sin embargo esa solución desperdicia bastantes recursos ya que no necesitamos, ni de lejos, nada tan complejo como un MTA completo. Ahí entra SSMTP. Se trata de una pequeña aplicación que hace las funciones de envio de correo de un MTA emulando las llamadas al venerable sendmail por linea de comandos.
Instalación
Debian provee un paquete estándar con lo que la instalación es trivial.
Configuración
La configuración tampoco es complicada. Necesitamos un servidor SMTP que nos permita reenviar correo, un usuari y una contraseña. Puede ser el de cualquier cuenta de correo incluyendo GMail y servicios similares. Sin embargo yo habitualmente utilizo el servicio SMTP de Mailgun ya que dispongo de cuenta para utilizarlo al desarrollar.
En todo caso la configuración no difiere así que yo voy a utilizar los siguientes datos de ejemplo:
- Servidor: stmp.ejemplo.com
- Usuario: marty@ejemplo.com
- Contraseña: DeLorean1955
Voy a suponer que el usuario y la dirección de correo de la cuenta coinciden ya que es lo más habitual. Sino habria que ajustar algunos campos.
La configuración de SSMTP se realiza en dos ficheros, ambos en el directorio /etc/ssmtp
:
revaliases
ssmtp.conf
Securización
Por ultimo una nota sobre la seguridad. Como se puede ver la contraseña está en texto plano en un fichero que todo el mundo del sistema puede leer. Si probamos a cambiar el permiso del fichero ssmtp.conf
enseguida vemos que los usuarios que no son root
no pueden enviar correos.
La solución és utilizar un usuario específico para el servicio y la funcionalidad el setuid
. La idea la saqué de askubuntu.com aunque también está la misma idea en la wiki de ArchLinux.
El resumen de comandos: