Postfix (software) - Postfix (software)

Sufijo
El logotipo de Postfix
Autor (es) original (es) Wietse Venema en el IBM Thomas J. Watson Research Center
Desarrollador (es) Venema y muchos otros
Versión inicial 14 de diciembre de 1998 ; Hace 22 años ( 14 de diciembre de 1998 )
Lanzamiento estable
3.6.2 / 24 de julio de 2021 ; Hace 2 meses ( 24 de julio de 2021 )
Versión de vista previa
3.7-20211002 / 2 de octubre de 2021 ; Hace 16 dias ( 02/10/2021 )
Repositorio
Escrito en C
Sistema operativo Multiplataforma
Escribe Agente de transferencia de correo
Licencia Licencia pública de IBM o Licencia pública de Eclipse
Sitio web www .postfix .org

Postfix es un agente de transferencia de correo (MTA) gratuito y de código abierto que enruta y entrega el correo electrónico .

Se publica bajo IBM Public License 1.0, que es una licencia de software libre . Alternativamente, a partir de la versión 3.2.5, está disponible bajo la Licencia Pública Eclipse 2.0 a opción del usuario.

Escrito originalmente en 1997 por Wietse Venema en el Centro de Investigación IBM Thomas J. Watson en Nueva York , y lanzado por primera vez en diciembre de 1998, Postfix continúa a partir de 2021 para ser desarrollado activamente por su creador y otros colaboradores. El software también es conocido por sus antiguos nombres VMailer e IBM Secure Mailer .

En marzo de 2021, según un estudio realizado por E-Soft, Inc., aproximadamente el 32% de los servidores de correo accesibles públicamente en Internet ejecutaban Postfix, lo que lo convierte en el segundo servidor de correo más popular detrás de Exim .

Despliegue típico

Como servidor SMTP , Postfix implementa una primera capa de defensa contra spam y malware . Los administradores pueden combinar Postfix con otro software que proporcione filtrado de spam / virus (p. Ej., Amavisd-new ), acceso al almacén de mensajes (p. Ej., Dovecot ) o políticas complejas de acceso a nivel de SMTP (p. Ej., Postfwd , milter-regex , policyd- peso o lista gris ).

Como cliente SMTP , Postfix implementa un motor de entrega de correo en paralelo de alto rendimiento. Postfix a menudo se combina con software de listas de correo (como Mailman ).

Sistemas operativos

Postfix se ejecuta (o se ha ejecutado) en AIX , BSD , HP-UX , Linux , macOS , Solaris y, en general, en todos los sistemas operativos similares a Unix que se envían con un compilador C y ofrecen un entorno de desarrollo POSIX estándar . Es el MTA predeterminado para los sistemas operativos macOS , NetBSD , RedHat / CentOS y Ubuntu .

Arquitectura

Postfix consiste en una combinación de programas de servidor que se ejecutan en segundo plano y programas de cliente que son invocados por programas de usuario o administradores de sistemas.

El núcleo de Postfix consta de varias docenas de programas de servidor que se ejecutan en segundo plano, cada uno de los cuales maneja un aspecto específico de la entrega de correo electrónico. Algunos ejemplos son el servidor SMTP , el programador , el reescritor de direcciones y el servidor de entrega local. Para fines de control de daños, la mayoría de los programas de servidor se ejecutan con privilegios reducidos fijos y terminan voluntariamente después de procesar un número limitado de solicitudes. Para conservar los recursos del sistema, la mayoría de los programas de servidor terminan cuando quedan inactivos.

Los programas cliente se ejecutan fuera del núcleo de Postfix. Interactúan con los programas del servidor Postfix mediante instrucciones de entrega de correo en el archivo ~ / .forward del usuario y mediante pequeños programas de "puerta" para enviar correo o solicitar información sobre el estado de la cola.

Otros programas brindan soporte administrativo para iniciar o detener Postfix, consultar información de estado, manipular la cola o examinar o actualizar sus archivos de configuración.

Postfix architecture.svg
Elipses amarillas
Uno de los muchos demonios de Postfix que sirven exactamente para un propósito. Esta división en muchas piezas de software más pequeñas se considera una de las razones por las que Postfix es seguro y estable.
Cajas azules
Los cuadros azules representan las llamadas tablas de búsqueda . Una tabla de búsqueda consta de dos columnas (clave y valor) que contienen información utilizada para control de acceso, enrutamiento de correo electrónico, etc.
Cajas amarillas
Los cuadros amarillos son colas de correo o archivos. En cualquier caso, los correos electrónicos se almacenan en medios persistentes (por ejemplo, un disco duro).
nubes blancas
Las nubes representan los puntos en los que los correos electrónicos entran o salen de Postfix. Por ejemplo, smtpd recibe correo de otros servidores de correo o usuarios, mientras que smtp transmite correo a otros MTA.

Implementación

La implementación de Postfix utiliza subconjuntos seguros del lenguaje C y de la API del sistema POSIX . Estos subconjuntos están enterrados bajo una capa de abstracción que contiene aproximadamente el 50% de todo el código fuente de Postfix y que proporciona la base sobre la que se construyen todos los programas de Postfix. Por ejemplo, la primitiva "vstring" hace que el código de Postfix sea resistente a los ataques de desbordamiento del búfer , y la primitiva de "apertura segura" hace que el código de Postfix sea resistente a los ataques de condición de carrera en los sistemas que implementan la API del sistema de archivos POSIX . Esta capa de abstracción no afecta la resistencia al ataque del código que no es Postfix, como el código en bibliotecas del sistema o en bibliotecas de terceros.

Robustez

Conceptualmente, Postfix gestiona las canalizaciones de procesos que pasan la responsabilidad de la entrega de mensajes y la notificación de errores de un proceso al siguiente. Toda la información de "estado" de mensajes y notificaciones se conserva en el sistema de archivos. Los procesos en una tubería operan principalmente sin control centralizado; esta autonomía relativa simplifica la recuperación de errores. Cuando un proceso falla antes de completar su parte de un archivo o transacción de protocolo, su predecesor en la canalización retrocede y vuelve a intentar la solicitud más tarde, y su sucesor en la canalización descarta el trabajo no terminado. Muchos demonios de Postfix pueden simplemente "morir" cuando se encuentran con un problema; se reinician automáticamente cuando llega la siguiente solicitud de servicio. Este enfoque hace que Postfix sea altamente resistente, siempre que el sistema operativo o el hardware no fallen catastróficamente.

Rendimiento

Se ha registrado una sola instancia de Postfix a ~ 300 entregas de mensajes / segundo a través de Internet, que se ejecuta en hardware básico (un sistema Dell 1850 antiguo de 2003 con controlador MegaRAID respaldado por batería y dos discos SCSI ). Esta tasa de entrega es un orden de magnitud por debajo del límite "intrínseco" de 2500 entregas de mensajes / segundo que se logró con la cola de correo en un disco RAM mientras se entregaba al transporte de " descarte " (con un sistema Opteron de doble núcleo en 2007) .

Los sistemas de correo como Postfix y Qmail logran un alto rendimiento al entregar el correo en sesiones paralelas. Con sistemas de correo como Sendmail y Exim que hacen una conexión a la vez, se puede lograr un alto rendimiento enviando lotes limitados de correo en paralelo, de modo que cada lote se entregue mediante un proceso diferente. Postfix y Qmail requieren el envío paralelo a diferentes instancias de MTA una vez que alcanzan su límite de rendimiento intrínseco o los límites de rendimiento del hardware o sistema operativo.

Las tasas de entrega citadas anteriormente son en gran parte teóricas. Con la entrega de correo masivo, la verdadera tasa de entrega está determinada principalmente por las políticas de recepción de correo del destinatario y por la reputación del remitente.

Configuración Base

El archivo main.cf almacena los parámetros de configuración de Postfix específicos del sitio, mientras que master.cf define los procesos demonio. El tutorial de configuración básica de Postfix cubre la configuración principal que cada sitio debe tener en cuenta, y el documento de ejemplos de configuración estándar de Postfix analiza las opciones de configuración para algunos entornos comunes. El documento de reescritura de direcciones de Postfix cubre la reescritura de direcciones y el enrutamiento de correo. La colección de documentación completa se encuentra en Postfix Documentation

Las implementaciones de Postfix más complejas pueden incluir: integración con otras aplicaciones como SpamAssassin ; soporte para múltiples nombres de dominio virtual - y use bases de datos como MySQL para controlar configuraciones complejas.

Historial de versiones

Versión Fecha de lanzamiento Cambios significativos
Importante Menor
Versión antigua, ya no se mantiene: 2.0
Versión antigua, ya no se mantiene: 2.1
Versión antigua, ya no se mantiene: 2.2
Versión antigua, ya no se mantiene: 2.3
Versión antigua, ya no se mantiene: 2.4
Versión antigua, ya no se mantiene: 2.5 2.5.0 24 de enero de 2008
2.5.8 28 de agosto de 2009 Liberación retirada.
2.5.17 6 de febrero de 2012 EOL 2.5
Versión antigua, ya no se mantiene: 2.6 2.6.0 12 de mayo de 2009
2.6.3 2 de agosto de 2009 Lanzamiento sin previo aviso.
2.6.4 26 de agosto de 2009 Liberación retirada.
2.6.19 4 de febrero de 2013 EOL 2.6
Versión antigua, ya no se mantiene: 2,7 2.7.0 13 de febrero de 2010
2.7.16 16 de enero de 2014 EOL 2.7
Versión antigua, ya no se mantiene: 2.8 2.8.0 20 de enero de 2011 Introducción del demonio de la pospantalla que se encuentra antes del sufijo principal y actúa como un bloqueador de zombis. Además: listas blancas de DNS, compatibilidad con SQLite
2.8.1 22 de febrero de 2011
2.8.2 21 de marzo de 2011
2.8.3 9 de mayo de 2011
2.8.4 7 de julio de 2011
2.8.5 3 de septiembre de 2011
2.8.6 24 de octubre de 2011
2.8.7 7 de noviembre de 2011
2.8.8 1 de febrero de 2012
2.8.9 5 de marzo de 2012
2.8.10 24 de abril de 2012
2.8.11 20 de mayo de 2012
2.8.12 1 de agosto de 2012
2.8.13 13 de diciembre de 2012
2.8.14 4 de febrero de 2013
2.8.15 22 de junio de 2013
2.8.16 5 de septiembre de 2013
2.8.17 16 de enero de 2014
2.8.18 13 de octubre de 2014
2.8.19 19 de octubre de 2014
2.8.20 8 de febrero de 2015 EOL 2.8
Versión antigua, ya no se mantiene: 2.9 2.9.0 1 de febrero de 2012 Soporte de Memcache, degradación gradual
2.9.1 18 de febrero de 2012
2.9.2 24 de abril de 2012
2.9.3 20 de mayo de 2012
2.9.4 1 de agosto de 2012
2.9.5 13 de diciembre de 2012
2.9.6 4 de febrero de 2013
2.9.7 22 de junio de 2013
2.9.8 5 de septiembre de 2013
2.9.9 16 de enero de 2014
2.9.10 13 de octubre de 2014
2.9.11 19 de octubre de 2014
2.9.12 8 de febrero de 2015
2.9.13 12 de abril de 2015
2.9.14 20 de julio de 2015
2.9.15 10 de octubre de 2015 EOL 2.9
Versión antigua, ya no se mantiene: 2.10 2.10.0 11 de febrero de 2013 Soporte para TLSv1.1 y TLSv1.2
2.10.1 22 de junio de 2013
2.10.2 5 de septiembre de 2013
2.10.3 16 de enero de 2014
2.10.4 13 de octubre de 2014
2.10.5 19 de octubre de 2014
2.10.6 8 de febrero de 2015
2.10.7 12 de abril de 2015
2.10.8 20 de julio de 2015
2.10.9 10 de octubre de 2015
2.10.10 15 de mayo de 2016 EOL 2.10
Versión antigua, ya no se mantiene: 2.11 2.11.0 15 de enero de 2014 Soporte para DANE
2.11.1 7 de mayo de 2014
2.11.2 13 de octubre de 2014
2.11.3 19 de octubre de 2014
2.11.4 8 de febrero de 2015
2.11.5 12 de abril de 2015
2.11.6 20 de julio de 2015
2.11.7 10 de octubre de 2015
2.11.8 15 de mayo de 2016
2.11.9 1 de enero de 2017
2.11.10 13 de junio de 2017
2.11.11 27 de enero de 2018
Versión antigua, ya no se mantiene: 3,0 3.0.0 8 de febrero de 2015 Soporte para nombres de dominio internacionalizados y direcciones locales como se define en RFC 6530 y documentos relacionados, bibliotecas vinculadas dinámicamente Postfix y complementos de base de datos, operaciones en múltiples tablas de búsqueda, pseudo-tablas que facilitan la implementación de cosas simples y más.
3.0.1 12 de abril de 2015
3.0.2 20 de julio de 2015
3.0.3 10 de octubre de 2015
3.0.4 21 de febrero de 2016
3.0.5 15 de mayo de 2016
3.0.6 28 de agosto de 2016
3.0.7 1 de octubre de 2016
3.0.8 1 de enero de 2017
3.0.10 13 de junio de 2017
3.0.11 28 de octubre de 2017
3.0.12 27 de enero de 2018
3.0.13 20 de mayo de 2018
3.0.14 24 de noviembre de 2018
3.0.15 26 de febrero de 2019
Versión antigua, ya no se mantiene: 3.1 3.1.0 24 de febrero de 2016 Configuración simplificada de TLS oportunista y administración de claves / certificados del servidor SMTP, soporte TTL de respuesta DNS positiva y negativa en la pospantalla, límite de velocidad SASL AUTH en el servidor SMTP, límite de seguridad en el número de solicitudes de verificación de direcciones, lista de colas JSON, entrega independiente del destino retraso de la tasa, entre otras cosas.
3.1.1 15 de mayo de 2016
3.1.2 28 de agosto de 2016
3.1.3 1 de octubre de 2016
3.1.4 1 de enero de 2017
3.1.6 13 de junio de 2017
3.1.7 28 de octubre de 2017
3.1.8 27 de enero de 2018
3.1.9 20 de mayo de 2018
3.1.10 24 de noviembre de 2018
3.1.11 26 de febrero de 2019
3.1.12 30 de marzo de 2019
3.1.13 29 de junio de 2019
3.1.14 22 de septiembre de 2019
3.1.15 3 de febrero de 2020
Versión anterior, pero aún se mantiene: 3.2 3.2.0 28 de febrero de 2017 Negociación de curva elíptica con OpenSSL ≥ 1.0.2 , soporte de procedimiento almacenado para bases de datos MySQL, cidr: soporte de tabla para if / endif y negación, soporte para configuración Milter por cliente , acciones "PASS" y "STRIP" en header / body_checks, y más.
3.2.2 13 de junio de 2017
3.2.3 24 de septiembre de 2017
3.2.4 28 de octubre de 2017
3.2.5 27 de enero de 2018
3.2.6 20 de mayo de 2018
3.2.7 24 de noviembre de 2018
3.2.8 26 de febrero de 2019
3.2.9 30 de marzo de 2019
3.2.10 29 de junio de 2019
3.2.11 22 de septiembre de 2019
3.2.12 3 de febrero de 2020
3.2.13 12 de marzo de 2020
3.2.14 18 de abril de 2020
Versión anterior, pero aún se mantiene: 3.3 3.3.0 21 de febrero de 2018 Finalizó el soporte para la versión heredada Postfix 2.11
3.3.1 20 de mayo de 2018
3.3.2 24 de noviembre de 2018
3.3.3 26 de febrero de 2019
3.3.4 30 de marzo de 2019
3.3.5 29 de junio de 2019
3.3.6 22 de septiembre de 2019
3.3.7 3 de febrero de 2020
3.3.8 12 de marzo de 2020
3.3.9 18 de abril de 2020
Versión anterior, pero aún se mantiene: 3.4 3.4.0 27 de febrero de 2019 Finalizó el soporte para la versión heredada Postfix 3.0
3.4.1 7 de marzo de 2019
3.4.2 10 de marzo de 2019
3.4.3 10 de marzo de 2019 Faltaba uno de los cambios de Postfix 3.4.2 (LINUX5).
3.4.4 14 de marzo de 2019
3.4.5 30 de marzo de 2019
3.4.6 29 de junio de 2019
3.4.7 22 de septiembre de 2019
3.4.8 24 de noviembre de 2019
3.4.9 3 de febrero de 2020
3.4.10 12 de marzo de 2020
3.4.11 18 de abril de 2020
Versión estable actual: 3,5 3.5.0 16 de marzo de 2020 Finalizó el soporte para la versión heredada Postfix 3.1
3.5.1 18 de abril de 2020
Última versión de vista previa de una versión futura: 3.6 19 de abril de 2020
Leyenda:
Versión antigua
Versión anterior, aún mantenida
Ultima versión
Última versión de vista previa
Lanzamiento futuro

Ver también

Referencias

Otras lecturas

enlaces externos