Algo tan sencillo como configurar un relay host SMTP para envío de correo (lo que debería resolverse en una línea de configuración) puede convertirse en una tarea tediosa si se utiliza Sendmail. Una de las tantas bostas que utilizan los sistemas Red Hat y derivados. Damn you Red Hat!
Uno se da cuenta que Sendmail es una porquería cuando abre la página de manual y se encuentra frases como ésta:
NOTES sendmail often gets blamed for many problems that are actually the result of other problems
Ok.
Yendo al caso, al igual que en la mayoría de las organizaciones, en mi red de trabajo existe un único host específico al cual se le permite enviar correo hacia el exterior. Esto es una configuración de seguridad de redes adecuada para evitar el envío de spam. De esta forma un único host, llamado relay host o smart host es capaz de enviar correo, sólo a nombre de usuarios/hosts que tengan autorización. Por ende, si uno de nuestros servidores necesita enviar correo (por ejemplo alarmas, notificaciones, resúmenes, etc.) debe hacerlo a través del relay host.
Exim (Debian)
En exim4
(servicio de correo por defecto en sistemas Debian), el relay host se configura de la siguiente forma. Primero se debe editar el archivo /etc/exim4/update-exim4.conf.conf
y modificar/agregar las siguientes variables:
dc_eximconfig_configtype='smarthost' dc_smarthost='smtp.linuxito.com'
Luego es necesario actualizar la configuración y reiniciar el servicio:
root@debian:~# update-exim4.conf root@debian:~# service exim4 restart Stopping MTA for restart: exim4_listener. Restarting MTA: exim4. root@debian:~#
Sendmail (Red Hat)
En Sendmail se debe editar el archivo de configuración macro /etc/mail/sendmail.mc
y agregar la siguiente línea:
define(`SMART_HOST', `smtp.linuxito.com')dnl
Para luego compilar la configuración:
# make -C /etc/mail
Lo cual requiere tener instalado el paquete sendmail-cf
. Este paquete incluye todos los archivos necesarios para compilar la configuración de Sendmail (generar sendmail.cf
). En definitiva, es necesario un paquete adicional para compilar el archivo de configuración del servicio.
# yum install sendmail-cf
De lo contrario será necesario editar manualmente el archivo de configuración /etc/mail/sendmail.cf
:
# vim sendmail.cf
Y configurar el relay host de la siguiente forma:
# "Smart" relay host (may be null) #DS DSsmtp.linuxito.com
Luego es necesario reiniciar el servicio:
# service sendmail restart
Referencias
- Exim Internet Mailer - Chapter 7 - The default configuration file
- Linux Network Administrators Guide - 18.4. The sendmail.cf and sendmail.mc Files