El sistema de correo en Linux
El sistema de correo de Linux se divide en tres funciones principales, aunque dependiendo del sistema de email utilizado puede que varias funciones estén en la misma herramienta. Las funciones son las siguientes:
- Mail Transfer Agent (MTA): Es el que se encargar de enviar y recibir correos. Es la “oficina de correos” del sistema de correo.
- Mail Delivery Agent (MDA): Es el que recibe el correo y lo guarda. Sería el “cartero” del sistema de correo, que lleva el correo de la “oficina de correos” al buzón del usuario.
- Mail User Agent (MUA): Es programa que permite al usuario gestionar sus correos.
Mail Transfer Agent (MTA)
Es el responsable de gestionar los mensajes entrantes y salientes.
Por cada mensaje saliente, MTA determina donde tiene que entregar el mensaje, en el caso de ser una dirección local lo envía directamente al buzón o lo envía al MDA para que proceda con la entrega, en el caso de ser un correo para una dirección externa el MTA deberá establecer la comunicación con otro servidor MTA para su entrega.
Para los mensajes entrantes, MTA deberá aceptar la conexión de otros servidores remotos y recibir los mensajes enviados a los destinatarios internos. El protocolo de comunicación más utilizado es Simple Mail Transfer Protocol (SMTP).
Los MTA más utilizados son:
- Sendmail
- Postfix
- Exim
- Qmail
Sendmail
Sendmail es uno de MTA más utilizados en entornos Linux. Cambiando pocas líneas de su configuración principal podemos cambiar el modo de funcionamiento. Permite configurar el flujo de mensajes a través de reglas, dando a los administradores una herramienta para adaptarse a necesidades específicas.
En sendmail se suele utilizar bindmail (mail) como MDA.
Postfix
Utiliza varios programas para implementar la funcionalidad de MTA. Cada módulo o programa se ejecuta con un usuario diferente de forma que si es comprometido un módulo no afecta a los demás.
Su configuración está dividida en varios ficheros.
En postfix se suele utilizar procmail como MDA, que se define en su fichero de configuración.
Exim
A diferencia de Postfix su configuración se mantiene en un único fichero. Su principal ventaja es que intenta evitar las colas de mensajes procesando los mensajes lo antes posible.
Utiliza ACLs y permite definir reglas para cambiar la dirección de correos entrantes incorporando varias direcciones de host en un único servidor. En la actualidad se usa Exim4.
Exim4 es una combinación de MTA y MDA.
Mail Delivery Agent (MDA)
MDA recibe los mensajes del MTA y los procesa para ser entregados a los usuarios locales, en alguno sistemas se incluye dentro de MTA.
Cuando el programa MTA determina que es para un usuario local lo entrega a MDA que es el encargado de enviarlo al buzón o al destino que el usuario haya especificado.
Principalmente se utilzan tres tipos de buzones de usuario en Linux:
- Ficheros en /var/spool/mail (llamado método mbox): Utiliza un simple fichero para el buzón de cada usuario. Este es el método original utilizado para guardar los correos de los usuarios.
- Ficheros en $HOME/mail
- Directorios mailbox (llamados método maildir): Separa cada usuario en un directorio y cada mensaje es un fichero
Diferentes MDA combinan varias características para gestionar los buzones, las más utilizadas son:
- Filtrado de correos
- Respuesta automática
- Inicio de programas cuando se recibe un correo.
Los programas más usados como MDA son:
- procmail: Algunas distribuciones Linux lo instalan como predeterminado, tiene la ventaja que cada usuario puede configurarse las reglas que necesite modificando el fichero de configuración en $HOME/.procmailrc
- binmail : Es uno de los MDA más utilizados, realmente se conoce como mail (/bind/mail). Por defecto entrega los correos a /var/spool/mail aunque también puede ser configurado para entregarlos a $HOME/mail. Es simple pero sus funciones son limitadas.
- local: Usados en sistemas Unix BDS 4.4 como son FreeBSD.
Mail user Agent (MUA)
El modelo de correo de Linux utiliza un buzón de correo (mailbox) para guardar los correos del usuario. Los programas MUA son utilizados para acceder a estos correos. MUA no recibe lo mensajes, sólo los lee desde el buzón, además dispone de otras características como son crear directorios o ordenar los correos.
El más utilizado es binmail (mail), es el mismo que también se utiliza como MDA.
Existen otros MUA en línea de comandos que también son bastante representativos con son mailx y mutt.
En entornos gráficos se suelen utilizar los siguientes:
- Evolution (GNOME)
- Thunderbird
- Kmail (KDE)
Hay que tener en cuenta que para que el cliente acceda remotamente a los buzones de correo, en el servidor debe haber un programa que permita las conexiones POP o IMAP, un ejemplo muy utilizado es el programa Dovecot, que además hace la función de MDA.
Resumen
Para tener una visión mas clara de los programas mas utilizados podemos ver la siguiente tabla:
MTA | MDA | MUA |
postfix | procmail | mailx / binmail (mail) / mutt |
sendmail | binmail (mail) | mailx / binmail (mail) / mutt |
exim4 | exim4 | mailx / binmail (mail) / mutt |