Supongamos que contamos con un servidor OpenBSD y necesitamos enviar correo desde la red local, por ejemplo resúmenes diarios de logwatch o AIDE, a través de un relayhost (servidor de correo para el dominio de la red local) seguro (SMTPS) que requiere autenticación. Este artículo explica cómo configurar smtpd para que reenvíe todo el correo saliente hacia un servidor de correo seguro en la red local sobre TLS con autenticación. De esta forma, todo el correo saliente desde nuestro servidor OpenBSD será reenviado hacia el servidor de correo del dominio, autenticando con una cuenta de correo específica y rescribiendo la cabecera "mail-from" para todos los mensajes salientes. Lo cual corresponde con la típica configuración para un sitio de Internet o servidor simple que requiere enviar correo dentro de un dominio seguro.



Supongamos que disponemos de una cuenta de correo perteneciente al dominio local para el envío de mensajes desde nuestros servidores, digamos "soporte@linuxito.com" (con su respectiva contraseña). El primer paso consiste en guardar las credenciales en el archivo "secrets":

# nano /etc/mail/secrets

El formato de este archivo consta de un nombre de usuario simbólico, junto con la cuenta de correo y su contraseña separadas por dos puntos:

soporte soporte@linuxito.com:trustno1

Guardar el archivo y quitar permisos de lectura para el resto del mundo:

# chmod 0640 /etc/mail/secrets
# chown root:wheel /etc/mail/secrets

Luego es necesario configurar el demonio de correo local (smtpd) para que todo correo saliente sea reenviado hacia el relayhost para el dominio de la red local.

nano /etc/mail/smtpd.conf

El contenido típico del archivo de configuración del servidor es el siguiente


table aliases file:/etc/mail/aliases
table secrets file:/etc/mail/secrets

listen on lo0

action "local_mail" mbox alias <aliases>
action "outbound" relay host "smtps://soporte@mx.linuxito.com:465" tls auth <secrets> mail-from "soporte@linuxito.com"

match for local action "local_mail"
match for any action "outbound"

La regla más importante es la siguiente:

action "outbound" relay host "smtps://soporte@mx.linuxito.com:465" tls auth <secrets> mail-from "soporte@linuxito.com"

Esta indica que todo el correo saliente sea reenviado hacia el relayhost "mx.linuxito.com" (servidor de correo para el dominio de la red local) a través de SMTPS (puerto 465) utilizando TLS y empleando las credenciales autenticación definidas en el archivo "secrets". Además, la última parte de la regla se encarga de reemplazar el remitente para todos los mensajes salientes por "soporte@linuxito.com".

Guardar los cambios en la configuración y verificar la sintaxis:

# smtpd -n
configuration OK

Si todo está bien, reiniciar el servicio:

# rcctl restart smtpd                                            
smtpd(ok)
smtpd(ok)

Es posible verificar el estado del servidor con el siguiente comando:

# smtpctl show status
MDA running
MTA running
SMTP running

Verificar enviando un correo desde línea de comandos:

echo "test obsd" | mail -s "test..." emiliano@linuxito.com

Comprobar la salida del mensaje en el log de correo:

# tail /var/log/maillog

El subcomando show stats de la herramienta smtpctl permite mostrar estadísticas del servidor de correo local:

# smtpctl show stats  
control.session=1
mta.connector=0
mta.domain=0
mta.envelope=0
mta.host=0
mta.relay=0
mta.route=0
mta.session=0
mta.source=0
mta.task=0
mta.task.running=0
queue.evpcache.load.hit=14
queue.evpcache.size=4
scheduler.delivery.ok=7
scheduler.envelope=4
scheduler.envelope.incoming=0
scheduler.envelope.inflight=0
scheduler.ramqueue.envelope=4
scheduler.ramqueue.message=4
scheduler.ramqueue.update=0
smtp.session=0
smtp.session.local=1
uptime=5661
uptime.human=1h34m21s

Referencias

  • man smtpd.conf
  • man smtpd
  • man smtpctl


Tal vez pueda interesarte


Compartí este artículo