Recientemente tuve un problema con el servidor de correo Postfix y la configuración de aliases, ya que los mismos no funcionaban. Pero afortunadamente lo pude solucionar luego de algunas horas de investigación.



¿Qué son y para qué sirven los aliases? Los aliases proveen un mecanismo para redireccionar el correo electrónico para los usuarios locales. Se definen en una tabla en el archivo /etc/aliases. Principalmente se utilizan para reenviar el correo local hacia una cuenta de correo externa. Por ejemplo, cuando el sistema le envía un correo electrónico a un usuario local, el mensaje simplemente se guarda en la casilla de correo local del usuario (generalmente un archivo en formato mbox). De esta forma, la única manera de que el usuario se entere de que hay correo nuevo, es logueandose en el sistema. En cambio, utilizando un alias, es posible reenviar el correo local hacia una cuenta externa, o hacia otros usuarios. Es decir, si llega un mail para un usuario local, en lugar de guardarlo en su casilla, reenviarlo hacia otra cuenta, o hacia una casilla externa.

Esta tarea se realiza simplemente configurando el alias en la tabla de aliases dentro del archivo /etc/aliases:

# nano /etc/aliases

Se debe utilizar la sintaxis "usuario: destino [otros destinos]". Por ejemplo, si deseo redireccionar el correo del usuario "emi" hacia "emi@yahoo.com":

emi: emi@yahoo.com

También se podría redireccionar el correo de root hacia el usuario webadmin:

root: webadmin

O hacia varias cuentas de correo externas:

root: webadmin sysadmin@midominio.com seginfo@midominio.com

El clásico ejemplo para administradores de servidores GNU/Linux son los mensajes enviados por Cron. Cada vez que una tarea de cron (cronjob) produce una salida, el demonio crond le envía un mensaje de correo electrónico, adjuntando la salida, al usuario propietario de la misma. Es común que se redireccione la salida estándar de todas las tareas de Cron hacia diferentes archivos de log, por lo que si una tarea produce salida, seguramente se trate de un error (salida producida en la standard error). Entonces es importante que el administrador del sistema sea notificado lo antes posible. Para ello se crea un alias, para que el correo enviado a root sea redireccionado hacia una casilla externa, por ejemplo "sysadmin@midominio.com".

Cada vez que se hacen cambios en la tabla de aliases, es necesario refrescar la configuración de Postfix ejecutando:

# posalias /etc/aliases

O directamente reiniciando Postfix (service postfix restart).

En mi caso, tuve problemas con los servidores CentOS 6 de mi organización. Ya que, a pesar de mis intentos, Postfix ignoraba completamente los aliases. Como todo servidor que se encuentra dentro de una organización o dominio, mis servidores envían correo a través de un smarthost (un servidor de correo SMTP específico) configurado en la variable "relayhost", dentro del archivo de configuración del servidor Postfix /etc/postfix/main.cf:

relayhost = smtp.midominio.com

Con el dominio configurado correctamente en la variable "mydomain".

Por otro lado, los mismos están configurados para no recibir correo desde el exterior:

inet_interfaces = 127.0.0.1

De esta forma sólo atienden a localhost.

Hasta aquí todo funcionaba correctamente, las aplicaciones como logwatch, AIDE, etc. enviaban correo sin inconvenientes. Pero los mails de Cron para el usuario root eran enviados a la dirección "root@midominio.com" (con lo cual los terminaba recibiendo el administrador del dominio). Es decir, no solo ignoraba los aliases, sino que los mails para usuarios locales eran reenviados hacia direcciones malformadas ("root@dominio" en lugar de "root@hostname"). Hubiese sido más razonable que, por más que ignore los aliases, envíe el correo a "root@servidor23.midominio.com" (suponiendo que el nombre de host del seridor fuera "servidor23.midominio.com").

Cabe destacar que la configuración de la tabla de aliases era correcta, tal como viene por defecto:

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

Luego de investigar encontré el error de configuración. Se debió a que el valor de la variable "myorigin" (dentro del archivo de configuración del servidor Postfix /etc/postfix/main.cf) estaba configurado igual al dominio, en vez del hostname:

myorigin = $mydomain

La variable $myorigin especifica el dominio desde donde el mail generado localmente aparenta proceder. Pero también especifica el nombre de dominio por defecto que se concatena a las direcciones calificadas (que no tienen la parte @dominio), o sea las direcciones (cuentas) locales.

myorigin = $myhostname

Luego de cambiar la variable $myorigin por el hostname y reiniciar Postfix, los aliases empezaron a funcionar correctamente. Ya que en lugar de agregar "@mindominio.com" a la dirección "root", Postfix comenzó a agregar "@servidor23.midominio.com".

Espero que les sirva.


Tal vez pueda interesarte


Compartí este artículo