Cuando nuestra organización tiene un servidor de correo de cualquier tipo, Exchange, Kerio, Postfix o cualquier otra solución más o menos compleja y costosa, es muy importante tener un respaldo para que cualquier problema previsto o no de nuestro servidor, de la linea de comunicaciones o de infraestructura, con el que se pierde la conexión desde internet a nuestro servidor, nos garantice que no perdemos los correos que nos envíen durante el corte de servicio. Esto es lo que se denomina MX Backup, servidor de respaldo o Relay de correo.

PostfixEl funcionamiento es sencillo: Durante el corte de servicio de nuestro servidor principal de correo el de respaldo será el encargado de recoger los correos que nos están intentando enviar y ponerlos en lo que llamamos una cola. Cuando restablecemos el servicio deberá entregarnos los correos para que nuestros usuarios no sean infelices y reciban sus comunicaciones. Para esta función es sencillo configurar un servidor con POSTFIX, necesita muy pocos recursos y tienes total control sobre lo que ocurre con tus correos.

Para tener funcionando este servidor de respaldo necesitamos tres cosas, una maquina donde alojar este servicio, modificar la configuración DNS del dominio y algún retoque en la configuración de nuestro servidor principal de correo. Voy a exponeros el dominio trebede.com como ejemplo.

Como servidor para alojar este servicio yo utilizo un Linux con Debian en el que solamente he instalado el paquete postix, en cualquier otra distribución Linux debería funcionar igualmente. Este servidor debe tener accesible desde internet el puerto SMTP, o sea, el TCP 25, para que pueda recibir los correos, así que no te olvides de configurar el Firewall que te da acceso a internet. Hay que modificar la configuración de Postfix de la siguiente forma:

Crear un fichero /etc/postfix/relay_recipients. En este fichero ponemos las direcciones para las que aceptamos correos, si la lista no cambia escribiremos la lista de correos, si cambia ponemos el dominio completo. Importante: Cada linea debe tener dos partes separadas por un espacio, la segunda da lo mismo, pero es necesaria. Mi fichero contiene una sola linea para admitir cualquier correo del dominio:

@trebede.com x

Despues de crearlo hay que ejecutar el comando “#postmap /etc/postfix/relay_recipients” para convertir el fichero de texto al formato que lee postfix

Modificamos tambien el fichero/etc/postfix/main.cf para añadir estas lineas

relay_domains = trebede.com
smtp_recipient_restrictions = permit_mynetworks reject_unauth_destination
proxy_interfaces = 84.124.75.67
relay_recipient_maps = hash:/etc/postfix/relay_recipients
maximal_queue_lifetime = 15d

relay_domains sera la lista, separada por comas de los dominios para los que vamos a hacer respaldo, proxy_interfaces la direccion de nuestro servidor en internet, no la de la red local, relay_recipient_maps es un enlace al fichero que hemos creado antes que tiene la lista de los correos que vamos a permitir y maximal_queue_lifetime hace que los correos puedan estar en la cola hasta 15 dias, si no pones esta linea por defecto estan 5 que puede ser mas que suficiente.

Despues de modificar este fichero debes ejecutar el comando #postfix reload para que se cargue la nueva configuracion.

La configuración DNS es sencilla. Hasta ahora tendríamos una única entrada del tipo MX para el dominio en cuestión, y hay que crear una nueva con una prioridad menor apuntando a la dirección de internet de nuestro servidor de respaldo. Si no tiene nombre en internet creamos un nuevo registro A y hacemos que el nuevo MX le apunte. Es importante que la prioridad sea menor, pues la entrega de los correos se hace por prioridades y este servidor de respaldo entregará los correos a uno que tenga mayor prioridad en cuanto le sea posible. Cuidado, la prioridad MX10 es mayor que la del MX30.

En mi ejemplo la configuración DNS del dominio trebede.com queda asi:

A mail.trebede.com 80.59.96.83

A mail2.trebede.com 84.124.75.67

MX10 mail.trebede.com

MX30 mail2.trebede.com

Por último hay que hacer un pequeño cambio en la configuración de nuestro servidor principal para que no aplique restricciones de seguridad a nuestro servidor de backup, ya que por defecto suelen aplicar restricciones del tipo “mensajes máximo por hora” que si tenemos habilitadas harán que los correos no puedan llegar porque nuestro servidor principal pensará que el de backup es un spammer.

Ahora resta probar y controlar el servicio, para ello puedes parar el servicio SMTP de tu servidor principal y monitorizar el de respaldo, los siguientes comandos seran utiles:

# tail /var/log/mail.log -> Nos muestra las últimas lineas del fichero de log del servidor de correo, de esta forma podemos ver en vivo y en directo qué es lo que esta haciendo, recogiendo correos, intentando entregarlos, ….

# postqueue -p -> Muestra los correos que hay en la cola. Con esto puedes ver como va creciendo la cola cuando el principal esta parado y cuando lo arranques veras que baja el numero de correos retenidos.

# postqueue -f -> Fuerza vaciar la cola, para obligar al servidor a entregar al principal los mensajes cuando sabemos que el servicio está restablecido.

# postqueue -s trebede.com -> Para forzar la entrega de los correos al dominio trebede.com

# postqueue -d id -> Borra el correo con esa id.

# postsuper -d ALL -> Borra todos los correos de la cola.

Lo siguiente sera hacer pruebas, para lo cual habrá una nueva entrada en el blog que aquí ya me he enrollado suficiente.

Pruebas servidor de correo de respaldo mx backup