Bienvenido! - Willkommen! - Welcome!

Bitácora Técnica de Tux&Cía., Santa Cruz de la Sierra, BO
Bitácora Central: Tux&Cía.
Bitácora de Información Avanzada: Tux&Cía.-Información
May the source be with you!

Friday, April 27, 2012

Introducción a Postfix

Introducción a Postfix

Postfix es un agente de transporte de correo electrónico (MTA) bastante reciente que se suma a la lista de alternativas al legendario Sendmail. En su diseño han primado factores como la seguridad, la eficiencia y la facilidad de configuración y administración, junto con la compatibilidad con Sendmail y con otros sistemas de correo. Siendo el correo electrónico hoy día una herramienta de trabajo vital en multitud de entornos de trabajo, sustituir los sistemas actuales por otro nuevo es una decisión muy delicada. Se debe garantizar que la migración se va a producir sin inconvenientes para los usuarios y con el mínimo tiempo de parada del servicio. Con Postfix esto es fácil de conseguir. Este artículo va dirigido a los administradores de correo, y pretende proporcionarles (siendo consciente de la dificultad de presentar un sistema complejo en tan breve espacio) una información básica, pero bastante completa, de cómo funciona y se configura Postfix, un sistema que se controla totalmente con unos pocos parámetros, sin necesidad de docenas de reglas ininteligibles.

Ventajas de Postfix

Algunas de las virtudes de Postfix son:

  • Diseño modular (no es un único programa monolítico)
  • La seguridad ha sido un condicionante desde el comienzo de su diseño.
  • Lo mismo cabe decir del rendimiento (seguramente Sendmail no se diseñó pensando que algún día habría sitios necesitaran procesar cientos de miles o millones de mensajes al día).
  • Soporte para las tecnologías más usadas hoy día: LDAP, Bases de datos (MySQL), autentificación mediante SASL, LMTP, etc.
  • Estricto cumplimiento de los estándares de correo-e (hasta donde se puede sin dejar a media Internet, que no los cumple, sin poder usar el correo-e).
  • Soporte muy bueno para dominios virtuales.
  • Facilidad de configuración.
  • Compatibilidad hacia/desde fuera con Sendmail (.forward, aliases, suplanta mailq, newaliases, /usr/lib/sendmail con versiones equivalentes).
  • Abundante documentación, y de calidad.
  • Fácil integración con antivirus.
  • Uso sencillo de listas negras.
  • Soporta de forma nativa el formato de buzones Maildir original de qmail.
  • Tiene múltiples formas de obtener información de 'lo que está pasando' para resolver problemas o simplemente, para aprender.
  • Se pueden lanzar varias instancias de Postfix en la misma máquina con distintas configuraciones, usando cada una distintas direcciones IP, distintos puertos, etc.
  • Filtrado de cabeceras y cuerpos de mensajes por expresiones regulares.
  • Utilidades para varias cosas, como gestionar las colas de mensajes.

Por último, pero no menos importante, hay que decir que el código fuente de Postfix (por supuesto de dominio público) es un ejemplo de diseño, claridad y documentación, lo cual facilita su mantenimiento (por su autor o, en el futuro, por otros) así como la incorporación de nuevas capacidades, corrección de errores, etc.


Características

  • Diseño Modular:El sistema Postfix está compuesto de varios procesos que se comunican entre sí, aparte de varias utilidades que puede usar el administrador para influir en el sistema u obtener información de él. Este diseño, junto con el fichero master.cf que permite configurarlos tiene algunas ventajas:
  • Cada proceso corre con los mínimos permisos necesarios para realizar su tarea.
  • Es más sencillo localizar cuál está fallando (suponiendo que eso ocurriera.
  • Se puede activar la emisión de más información de depuración de forma independiente para cada programa. Esto es realmente útil para resolver problemas.
  • Se puede definir ciertos parámetros para cada uno de ellos, como el número máximo de procesos simultáneos de un tipo, etc.
  • Se pueden activar y desactivar algunos de ellos. Por ejemplo en una máquina dial-up que sólo envía correo podemos desactivar el proceso servidor SMTPD.
  • Se puede insertar procesos externos entre ciertas partes del sistema lo cual es muy útil para anti-virus, filtrados, etc.

Podemos, por ejemplo, lanzar un servidor SMTPD adicional en otro puerto o sobre otra IP, con distintas opciones de configuración de acceso. También podemos correr varias instancias de Postfix, con las únicas limitaciones de que ambas no compartan el directorio de colas y que usen distintos valores para myhostname. Con un poco de imaginación podemos hacer realmente maravillas con todas estas opciones.
Otro aspecto en el que Postfix es modular es en el sistema de colas de mensajes. Se mantienen las siguientes colas:


  • maildrop: Es donde van los mensajes enviados localmente, mediante la versión de Postfix de /usr/lib/sendmail
  • incoming: Aquí van los mensajes recibidos por SMTP (tras recibir cierto procesamiento) y los que han pasado por la cola maildrop.
  • active: Los que se está intentando enviar en un momento dado.
  • deferred: Los que se ha intentado y no se ha podido enviar.

Aunque parezca mucha sobrecarga tanta cola, en realidad Postfix las procesa de forma realmente eficiente. Un inconveniente de tanta modularidad es que no tenemos ningún equivalente a sendmail -v, pero activando las opciones de depuración y viendo los ficheros de log, no se echa de menos.

Seguridad

Seguridad frente a ataques contra el servidor y también contra el uso inadecuado (spam, etc). En cuanto a la primera acepción, no conozco ningún problema serio de seguridad que se haya detectado aún en Postfix. Respecto al tema de spam, relay, etc. Postfix soporta directamente el uso de listas negras y, como vimos en el ejemplo de configuración, es relativamente difícil configurarlo como relay abierto. Si se juega mucho con las opciones de restricciones de acceso, sí hay que tener cuidado con las que se ponen y en qué orden. Podemos acabar dejando puertas abiertas, o por el contrario tener un 'bunker' inutilizable. Afortunadamente este tipo de opciones tiene nombres muy descriptivos y están bien documentadas, por lo que es fácil hacerlo bien.
Para terminar, se puede instalar Postfix de forma que corra en modo 'chroot', lo que proporciona aún más seguridad.

Rendimiento

El rendimiento de Postfix es realmente muy bueno. Por ejemplo, cuando se produce algún atasco de correo, tras resolverse los mensajes salen a una velocidad mucho mayor de la que observábamos cuando teníamos Sendmail.
Utiliza técnicas desarrolladas para los modernos servidores Web y, según la documentación, un PC puede recibir y entregar un millón de mensajes distintos al día. Un buen rendimiento es además importante si incorporamos en el servidor (como es nuestro caso) un antivirus de correo.


Referencias

  • Postfix:

No comments: