Servidor de mail en GNU/Linux

El objetivo de esta página es ir documentando lo que voy aprendiendo/comprendiento sobre el funcionamiento y configuración de un servidor de mail bajo GNU/Linux. Esto se basa en que realmente es un quilombo el funcionamiento de un servidor de mail en el sistema del amado pingüino. Contrariamente a lo que uno piensa, el servidor de mails es un sistema complejo, donde entran en juego varios sistemas que se intercomunican ya sea para enviar o recibir como para controlar spam y virus.
Específicamente nos vamos a basar en el servidor Postfix, y obviamente en Debian, por qué? …. porque si!

Funcionamiento general y términos utilizados

Postfix es un Agente de Transporte de Mensajes (de ahora en más MTA), que justamente transporta mensajes desde un cliente de correo (de ahora en más MUA) a un servidor de mail remoto utilizando como protocolo de envio SMTP. Sin embargo, no solo el MTA recibe correos de un cliente, sino que también puede recibirlos de un servidor de correo intermedio o de renvio, o como se los denomina servidor de mail remoto de relay, para enviarlos a su vez a otro servidor MTA o bien entregarlo a una casilla de mail local (mailbox) mediante un MDA (del ingles, Message Delivery Agent). Una vez que Postfix re-envia o entrega el mail a una casilla, su trabajo llega a su fin.

Finalmente, para que el cliente consulte su correo, entran en juego otros servidores como POP3 o IMAP manipulan los correos hacia un MUA como Thunderbird, Icedove, etc.

Para clarificar todo el juego de palabras previo, veamos un hermoso esquema que evidencia por qué no estudiamos diseño.

mail-server.png

Del gráfico anterior podemos comprender que un servidor de mail está compuesto por varios componentes, resumiendo: MTA, MDA y Servidor POP3/IMAP.

Es importante aclarar que Postfix no cumple con la totalidad de estos roles, sin embargo, puede ser utilizado como MTA y MDA. Obviamente que cada MTA tendrá una función -y por ende una configuración- diferente en función de las tareas a realizar, si solo es de relay, o si es de entrega directa.

Si bien la explicación anterior es cierta, se debe aclarar que hoy en día entran en juego otro conjunto de herramientas que son imprescindibles a la hora de implementar un servidor "serio" de mail.

Estamos hablando de componentes que interactuan con Postfix para llevar a cabo el control de virus y el de spam. Veamos un poco cómo se interrelacionan estos nuevos amigos (o enemigos).

mail-server-int.png

Antes de continuar, a modo de resumen, hagamos un glosario de los términos mencionados anteriormente.

Glosario

  • MTA (Mail Transfer Agent): es el servidor de correos salientes, quien envia los mails.
  • MDA (Mail Delivery Agent): es el encargado de ubicar o almacenar los mails, esta tarea también puede ser realizada por el MTA
  • MUA (Mail User Agent): es el cliente de correo, quien se conecta al servidor ya sea para descargar mails o para enviar.
  • Servidor de relay : (o de reenvio), es un MTA que envia su correo a otro MTA, es decir, que no es de entrega directa, sino que hace de intermediario.
  • Entrega directa : Es la acción llevada a cabo por un gateway o pasarela MTA, es decir, no reenvia su correo a otro MTA.
  • Gateway de correo : Es un MTA que realiza la entrega directa, no hay ningún intermediario.

Manos a la obra

No necesitamos tener mucho más conocimiento que el que hemos desarrollado previamente para implementar un servidor completo de mail bajo GNU/Linux.

Por el momento la imlpementación solo consistirá en un servidor de smtp (postfix) y pop3/IMAP (cyrus). Luego agregaremos el antivirus (clamav) y por último el antispam (dspam).

Referencias útiles

  • Libros
    • The Book of Postfix - Ralf Hildebrant & Patrick Koetter (No Starch Press) - ISBN 1-59327-001-1
    • Postfix, The definitive guide - Kyle D. Dent (O'Reilly) - ISBN 0-596-00212-2
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License