Manual de Postfix
Después de la instalación de Postfix, este debería funcionar sin hacer ningún tipo de ajustes. Se puede usar el comando “postconf -n” para obtener una lista de los ajustes que están anulados.
Esta es la configuración básica del archivo /etc/postfix/main.cf:
# Opcional: enviar mensajes usando usuario@nombrededominio en lugar de usuario@host.
# myorigin = $mydomain
# Opcional: especifica la direccion IP externa del proxy
# proxy_interfaces = 1.2.3.4
#Alternativa 1: no retransmitir el correo desde otros hosts
mynetworks_style = localhost
relay_domains =
#Alternativa 2: retransmitir el correo de los clientes locales solamente
# mynetworks = 192.168.1.0/28
# relay_domains =
Configuración de Postfix como cliente null
Un cliente null es una máquina que sólo puede enviar mensajes. No recibe correo de la red y no entrega correo local. Como cliente null se suele utilizar el acceso POP, IMAP o NFS para el acceso de buzón.
En este ejemplo suponemos que el nombre de dominio de Internet es “example.com” y que la máquina se llama “nullclient.example.com”.
1 /etc/postfix/main.cf:
2 myorigin = $mydomain
3 relayhost = $mydomain
4 inet_interfaces = 127.0.0.1
5 local_transport = error:la entrega local está desactivada
6
7 /etc/postfix/master.cf:
8 Comentario de la agente de entrega local
Línea 2: Envia mensajes como “user@example.com” en lugar de “user@nullclient.example.com”
Línea 3: Reenviar todo el correo al servidor de correo del dominio “example.com”. Esto impidirá que el correo sea rechazado por el cliente null si el servidor remoto está fuera de servicio.
Línea 4: No aceptar correo de la red.
Líneas 5-8: Deshabilitar la entrega de correo local. Todo el correo va al servidor de correo, tal como se especifica en la línea 3
Postfix en una red local
En esta ejemplo se describe la configuración como servidor de una red de área local, recibiendo y enviando correo a través de otros sistemas. Suponemos que el nombre de dominio de Internet es “ejemplo.com”. Todos los sistemas están configurados para enviar mensajes como “usuario@ejemplo.com” y para recibir “user@hostname.ejemplo.com”. El servidor principal también recibe correo para “user@ejemplo.com”. Llamaremos a esta máquina “mailhost.ejemplo.com”.
Un inconveniente del envío de mensajes como “user@ejemplo.com” es que el correo de “root” y otras cuentas del sistema también se envía a la central mailhost, más adelante veremos las posibles soluciones.
En primer lugar veremos la configuración de la máquina no mailhost, esta enviara mensajes de “user@ejemplo.com” y será destinataria de “user@hostname.ejemplo.com”.
1 /etc/postfix/main.cf:
2 myorigin = $mydomain
3 mynetworks = 127.0.0.0/8 10.0.0.0/24
4 relay_domains =
5 #Opcional: redirige todos los mensaje no locales a mailhost
6 #relayhost = $mydomain
Línea 2: Envia mensajes como “user@ejemplo.com”.
Línea 3: Especifica las redes de confianza.
Línea 4: No retransmite correo de ningún dominio.
Línea 6: Esto es necesario si Postfix no tiene acceso directo a Internet.
A continuación veremos la configuración de la máquina mailhost. Esta envía mensajes como “user@ejemplo.com” y es destino final de “user@hostname.ejemplo.com” así como de “user@ejemplo.com”.
1 DNS:
2 ejemplo.com IN MX 10 mailhost.ejemplo.com.
3
4 /etc/postfix/main.cf:
5 myorigin = $mydomain
6 mydestination = $myhostname localhost.$mydomain localhost$mydomain
7 mynetworks = 127.0.0.0/8 10.0.0.0/24
8 relay_domains =
9 # Opcional: redirige todos los mail no local mail a cortafuegos
10# relayhost = [firewall.ejemplo.com]
Line 2: Send mail for the domain “example.com” to the machine mailhost.example.com.
Línea 2: Envia todo el correo para el dominio “ejemplo.com” a la máquina mailhost.ejemplo.com. Recuerde que debe especificar el “.” al final de la línea.
Línea 5: Envia mensajes como “user@ejemplo.com”.
Línea 6: Esta máquina será el destino final del correo para “ejemplo.com” y de los nombres de la propia máquina.
Línea 7: Especificar las redes de confianza.
Línea 8: Este host no retransmite el correo de redes no confiables. Línea 10: Esto necesario si el mailhost tiene que tramitar el correo local a través de un servidor con firewall. Los corchetes [] fuerza a Postfix para no hacer búsquedas de registro MX.
En un entorno como este, los usuarios acceden a su buzón de correo de una de las siguientes maneras:
El acceso al buzón a través de NFS o equivalente.
Acceso a través del buzón de correo POP o IMAP.
En el buzón de la máquina.
En este último caso, cada usuario tendrá un alias en la mailhost de correo que envíara los mensjes a su máquina preferida:
/etc/aliases:
joe:joe@joes.maquina.preferida
jane:jane@janes.maquina.preferida
En algunos sistemas el archivo de el alias no está en /etc/aliases. Para averiguar la ubicación en su sistema, ejecute el comando “postconf alias_maps“.
Ejecutar el comando “newaliases” cada vez que cambie el fichero de alias.
Hagamos algunas pero no todas las cuentas a nivel local
Un inconveniente del envío de mensajes como “user@ejemplo.com” en lugar de “user@hostname.ejemplo.com” es que el correo de “root” y otras cuentas del sistema también se envía a la central mailhost.
Con el fin de entregar esas cuentas a nivel local se puede configurar un alias virtual de la siguiente manera:
1 /etc/postfix/main.cf:
2 virtual_alias_maps = hash:/etc/postfix/virtual
3
4 /etc/postfix/virtual:
5 root root@localhost
6 …
Line 5: Como se describe en el apartado virtual del manual, el usuario root coincidirá con root@sitio cuando sitio es igual a $myorigin, cuando sitio es listado en $mydestination o cuando coincide con inet_interfaces o $proxy_interfaces.
Configurando Postfix como máquina primaria o de MX Backup (copia de seguridad) de un sitio remoto
Para esta configuración se ha de tener en cuenta la configuración básica explicada en su apartado correspondiente de este documento.
Cuando su sistema actue como un host SECUNDARIO MX de un sitio remoto esto es todo lo que necesita configurar:
1 DNS:
2 backup.dominio.com EN MX 100 sumaquina.sudominio.com.
3
4 /etc/postfix/main.cf:
5 relay_domains = . . . backup.dominio.com
6 smtpd_recipient_restrictions =
7 permit_mynetworks reject_unauth_destination
8
9 #Deberá especificar su NAT/proxy dirección externa.
10 # proxy_interfaces = 1.2.3.4
12 relay_recipient_maps = hash:/etc/postfix/relay_recipients
13
14 /etc/postfix/relay_recipients:
15 x user1@backup.dominio.com
16 x user2@backup.dominio.com
17. . .
Cuando su sistema actúe como host PRIMARIO MX de un sitio remoto necesitara configurar además lo siguiente:
18 /etc/postfix/main.cf:
19 transport_maps = hash:/etc/postfix/transport
20
21 /etc/postfix/transport:
22 backup.dominio.com relay:[el.otro.mail.host.com]
Notas importantes:
No listar backup.dominio.com en mydestination.
No listar backup.dominio.com en virtual_alias_domains.
No listar backup.dominio.com en virtual_mailbox_domains.
Líneas 1-7: redirige el correo desde internet para backup.dominio.com al host principal MX
Línea 10: Esta es necesario si Postfix recibe correo a través de un NAT o proxy que tiene una dirección IP pública diferente de la IP local.
12-16: Define la lista de direcciones válidas en el “backup.dominio.com”. Esto impide que la cola de correo se llene de mensajes con destino MAILER-DAEMON. Si no puede mantener una lista de destinatarios válidos entonces especifique “relay_recipient_maps = “(un valor vacío) o “@backup.dominio.com cualquier_valor” en la tabla relay_recipients.
Línea 22: El [] fuerza a Postfix a no hacer búsquedas MX.
Especifique dbm en lugar de hash si su sistema utiliza archivos dbm en lugar de ficheros de base de datos. Para saber los tipod de tablas soportadas por Postfix, use el comando “postconf -m”.
Execute the command ” postmap /etc/postfix/transport ” whenever you change the transport table.
Ejecutar el comando “postmap /etc/postfix/transport” cada vez que modifique el archivo de transporte.
NOTE for Postfix < 2.2: Do not use the fallback_relay feature when relaying mail for a backup or primary MX domain.
Nota para Postfix < 2.2: No use la función fallback_relay cuando la retransmisión de correo sea para backup o dominio MX primario.
Bucle de correo entre el host MX postfix y el host fallback_relay cuando el destino final no esté disponible
En main.cf especificar “relay_transport = relay”,
En master.cf especificar “-o fallback_relay =” al final de la entrada de relay.
* In transport maps, specify ” relay: nexthop… ” as the right-hand side for backup or primary MX domain entries.
En transport_maps especifique “relay: nexthop …” para backup o dominio MX primario.
Estos valores de configuración predeterminados de Postfix son para la versión 2.2 y posteriores.