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:
Post a Comment