Email – Servicios de correo electrónico

En esta oportunidad hablaremos sobre correo electrónico / email, su arquitectura en la red, las entidades que intervienen en el proceso de envío de un email de un cliente a otro, y algunos ejemplos de implementaciones de servidores y clientes.


Arquitectura del servicio de email

  • La arquitectura de correo electrónico se compone básicamente de tres elementos:
    MTA: Mail transport agent, es el servidor de correos electrónicos / email. Este servidor actuará recibiendo los email’s desde los clientes, y enviándolos a un servidor remoto.
    Algunos ejemplos de servidores de correos son Postfix, qmail, sendmail, o exim4, entre otros.
  • MUA: Mail user agent, es el cliente de correos electrónicos que utilizamos para conectarnos al servidor.
    Algunos ejemplos, thunderbird, claws-mail, sylpheed, mutt, eudora, evolution, etc.
  • MDA: Mail delivery agent, es el encargado de permitirle a un usuario a través de un MUA, acceder a sus correos electrónicos. Es decir, MDA es la casilla de correos del usuario.
    Como ejemplos de implementaciones de MDA podríamos considerar a Courier o Dovecot.
 email linux mail postfix

Protocolos involucrados

En todo servicio de correo electrónico se involucran los siguientes protocolos como mínimo:

  • SMTP – Simple mail transfer protocol, o protocolo de transferencia simple de correo. Este protocolo es utilizado por clientes para enviar correos a su servidor de mail de su dominio de origen, y es el mismo protocolo que generalmente se utiliza para transferencias de correos entre servidores de mail.
    SMTP está documentado en la RFC 2821, que puede consultarse en los links adjuntos.
  • POP – Post Office Protocol, o protocolo de oficina de correos, es uno de los protocolos de casilla de correos de usuario, que permite a un usuario, por medio de su cliente de correos, acceder a su casilla de correos y descargar los mails. En POP3 la organización de los correos se encuentra en el cliente de correos del usuario (MUA), y por defecto los correos se descargan al cliente cuando son consultados. Los directorios para dividir correos en categorías son configurados en el cliente, y depende del cliente que usemos y su configuración, será la vista que tendremos de nuestros directorios y bandejas de entrada.
    POP está documentado en la RFC 1939.
  • IMAP – Internet Message Access Protocol, o protocolo de acceso a mensajes en Internet, es otro protocolo de casilla de correos más moderno, que administra y organiza los email’s directamente en el servidor, por lo que los directorios y nuestros inbox configurados en el servidor, serán portados a los clientes de correo que utilicemos. La gran ventaja de este protocolo es que podemos leer los correos independientemente de dónde nos conectemos y en qué tiempo, puesto que los mails quedan por defecto almacenados y organizados en el servidor.
    IMAP se detalla en la RFC 3501.

Servicios anexos

Casi todas las implementaciones abiertas de servidores de correo electrónico, tales como Postfix o Qmail, permiten interactuar con otros servicios para enriquecer su funcionamiento.

Tales servicios son, por ejemplo, controles de spam, en sus diferentes configuraciones (greylists, spamassasin, etc), y controles de antivirus, como ser el caso del famoso ClamAV en GNU/Linux.

Con estos servicios instalados y debidamente configurados, podríamos tener una implementación completa de un servidor de correos para envío de mails y casillas de correos, y a su vez, controles robustos de spam (el gran problema de estas implementaciones) y antivirus, puesto que los mails pueden ser leídos desde cualquier sistema operativo, incluso sistemas “infectables” 🙂

Seguridad en las comunicaciones

Adicionalmente, otras configuraciones e interacciones interesantes, y por demás recomendables, son las de utilizar tráfico cifrado en la comunicación de servidores con clientes, tanto para los canales de comunicación smtp, como para los canales de casilla de correos pop y/o imap. Esto se puede lograr utilizando mecanismos criptográficos y el uso de bibliotecas SSL/TLS y autenticaciones SASL con los clientes de correo.

Cabe aclarar que en un servidor web podríamos instalar una interfaz de webmail que haría las veces de MUA, y deberíamos en ese caso, asegurar las comunicaciones smtp, pop e imap entre el webmail y el servidor de correos (si no son el mismo), y a su vez, asegurar la comunicación http (https) entre el equipo del usuario cliente, y el servidor web que sirve el webmail.

Conclusiones

Hemos mostrado un panorama general de un servicio de correo electrónico, sus elementos, protocolos, y las distintas implementaciones que le dan vida a dichos protocolos. Nos queda para futuros artículos hablar detalladamente de cada una de las implementaciones, y algunas configuraciones interesantes.

Links

http://www.ietf.org/rfc/rfc2821.txt
http://www.ietf.org/rfc/rfc1939.txt
http://tools.ietf.org/html/rfc3501
http://www.postfix.org/
http://www.qmail.org/
https://en.wikipedia.org/wiki/Qmail
https://en.wikipedia.org/wiki/Postfix_(software)