En este post vamos a realizar una configuración básica de postfix como servidor de correo secundario, para su configuración vamos a usar ficheros de texto normales, aunque se podria hacer con soporte MySQL si tuvieramos un volumen de dominios y/o cuentas elevado.
Creamos las entradas en el DNS
Hemos de recordar de añadir la entrada de nuestro nuevo servidor de correo secundario en los servidores DNS.
En el registro MX debemos darle una prioridad mas baja al servidor secundario, sino no lo hacemos asi la configuración no funcionará.
ejemplo.com. 43200 IN MX 10 mail.ejemplo.com. ejemplo.com. 43200 IN MX 20 backup.ejemplo.com.
Seguidamente añadimos el registro A apuntando a la Ip del servidor secundario.
mail.ejemplo.com. 343 IN A 123.456.789.123 backup.ejemplo.com. 343 IN A 987.654.321.987
Configuración de Postfix
Si no tenemos instalado postfix en nuestro sistema, lo instalamos con el siguiente comando:
apt-get install postfix
Seguidamente vamos aconfigurar postfix para que acepte e-mails solamente de dominios conocidos, de las cuentas que tenemos creadas en el servidor principal, y definiremos donde queremos que mande los e-mails.
Editamos el fichero main.cf
nano /etc/postfix/main.cf
Y añadimos
smtpd_banner = $myhostname ESMTP mynetworks = 127.0.0.0/24 maximal_queue_lifetime = 30d relay_recipient_maps = hash:/etc/postfix/recipientmaps relay_domains = hash:/etc/postfix/relaydomains transport_maps = hash:/etc/postfix/transportmaps smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
En este fichero hemos cambiado:
- maximal_queue_lifetime: el valor por defecto son 5 dias, en nuestro caso los hemos puesto en 30 dias. En un servidor en producción en un entorno ‘serio’, 5 días seria suficiente para solventar cualquier incidencia en el servidor principal.
- relay_recipient_maps: En este fichero añadiremos todas las cuentas que queremos que postfix acepte correo. Este valor es opcional, si dejamos la linea en blanco, el servidor va a aceptar correo para cualquier cuenta, exista esta o no en el servidor principal. Es una buena practica añadir la lista de cuentas para prevenir el Mail Backscatter
- relay_domains: En este fichero añadiremos todos los dominios para los que postfix acepte correo.
- transport_maps: En este fichero añadiremos donde queremos que nos mande los correos que esten el el queue.
Seguidamente empezaremos editando el fichero relaydomains:
nano /etc/postfix/relaydomains
Y añadimos los dominios para los cuales queremos hacer de backup.
Es posible definir estos dominios directamente en el fichero main.cf en lugar de hacerlo en este fichero por separado, la forma de hacerlo en el fichero principal es añadirlos separados por comas. Pero, como veremos mas adelante, en cualquiera de las opciones que escojamos hemos de ejecutar postmap, es mas sencillo y ordenado crear este fichero aparte.
ejemplo1.com OK ejemplo2.com OK ejemplo3.com OK
Ahora editamos el fichero recipientmaps que contendra todas las cuentas de correo en las que queremos hacer backup.
nano /etc/postfix/recipientmaps
Y las añadimos…
postmaster@ejemplo1.com OK usuario@ejemplo2.com OK info@ejemplo1.com OK admin@ejemplo3.com OK
Para finalizar editaremos el fichero transportmaps.
nano /etc/postfix/transportmaps
En este fichero añadiremos donde queremos que nos envie el correo que este almacenado en el queue una vez que el servidor principal responda.
Es posible definir un servidor que este dentro de nuestra red local o bien un servidor externo.
Para definir un servidor dentro de nuestra red local es mejor poner la Ip entre corchetes [], asi evitamos la busqueda a traves de DNS.
La estructura del fichero debe ser, primero el nombre del dominio seguido del nombre del servidor principal y el puerto que usaremos para transferir los correos.
ejemplo1.com smtp:mail.ejemplo.com:25 ejemplo2.com smtp:mail.ejejmplo.com:587 ejemplo3.com smtp:[192.168.10.20]:25
Actualizar las tablas de búsqueda de Postfix
Cada vez que realicemos un cambio en el fichero relaydomains, transportmaps o recipientmaps es necesario ejecutar postmap para crear/actualizar las tablas de búsqueda de postfix.
postmap /etc/postfix/recipientmaps postmap /etc/postfix/relaydomains postmap /etc/postfix/transportmaps service postfix restart