stringtranslate.com

Exim

Exim es un agente de transferencia de correo (MTA) utilizado en sistemas operativos tipo Unix . Exim es un software libre distribuido bajo los términos de la Licencia Pública General de GNU y su objetivo es ser un gestor de correo general y flexible con amplias funciones para comprobar el correo electrónico entrante .

Exim ha sido adaptado a la mayoría de los sistemas tipo Unix, así como a Microsoft Windows mediante la capa de emulación Cygwin . Exim 4 es actualmente el MTA predeterminado en los sistemas Debian Linux . [3]

Existen muchas instalaciones de Exim, especialmente en proveedores de servicios de Internet [4] y universidades del Reino Unido. Exim también se usa ampliamente con el administrador de listas de correo GNU Mailman y cPanel .

En marzo de 2023, un estudio realizado por E-Soft, Inc., [5] estimó que el 59% de los servidores de correo accesibles públicamente en Internet ejecutaban Exim.

Origen

La primera versión de Exim fue escrita en 1995 por Philip Hazel para su uso en los sistemas de correo electrónico del Servicio de Computación de la Universidad de Cambridge . El nombre inicialmente significaba EXPERIMENTAL INTERNET MAILER . [ 6] Originalmente se basaba en un MTA más antiguo, Smail -3, pero desde entonces se ha desviado de Smail-3 en su diseño y filosofía. [7] [8]

Modelo de diseño

Exim, al igual que Smail , sigue el modelo de diseño de Sendmail , donde un único binario controla todas las funciones del MTA. Exim tiene etapas bien definidas durante las cuales gana o pierde privilegios . [9]

A lo largo de los años se han diagnosticado varios problemas graves de seguridad en Exim. [10] Desde que se lanzó la versión 4 rediseñada, hubo cuatro fallas de ejecución de código remoto y una falla conceptual relacionada con cuánta confianza es apropiado depositar en el usuario en tiempo de ejecución ; esta última se solucionó en un bloqueo de seguridad en la revisión 4.73, una de las raras ocasiones en las que Exim rompió la compatibilidad con versiones anteriores de configuraciones de trabajo.

Configuración

Exim es altamente configurable y por lo tanto tiene características que faltan en otros MTA. Siempre ha tenido importantes funciones para el control de políticas de correo, brindando al administrador la posibilidad de controlar quién puede enviar o retransmitir correo a través del sistema. En la versión 4.x, esto ha evolucionado hasta convertirse en un sistema basado en listas de control de acceso que permite controles muy detallados y flexibles. La integración de un marco para el escaneo de contenido, que permitió una integración más sencilla de medidas antivirus y antispam , se produjo en las versiones 4.x. Esto hizo que Exim fuera muy adecuado para aplicar diversas políticas de correo.

La configuración se realiza a través de un archivo de configuración (normalmente único), que debe incluir la sección principal con configuraciones y variables genéricas, así como las siguientes secciones opcionales:

El archivo de configuración permite la inclusión de otros archivos, lo que genera dos estilos de configuración diferentes.

Estilos de configuración

Existen dos escuelas principales de estilo de configuración para Exim. La escuela nativa mantiene la configuración de Exim en un archivo y los archivos externos solo se utilizan como fuentes de datos; esto está fuertemente influenciado por las preferencias de Philip Hazel y las notas sobre el rendimiento, ya que el archivo de configuración se vuelve a leer en cada ejecución, lo que sucede después de la bifurcación para recibir conexiones entrantes y en la entrega.

El segundo estilo que se encuentra con frecuencia es el estilo Debian , que está diseñado para facilitar que una aplicación instalada proporcione automáticamente soporte de integración de correo sin que el administrador tenga que editar los archivos de configuración. Hay un par de variantes de este y Debian proporciona documentación de su enfoque como parte de los paquetes. En estos enfoques, se utiliza un archivo de configuración debconf para crear el archivo de configuración de Exim, junto con plantillas y directorios con fragmentos de configuración. La metaconfiguración se ajusta con macros que tienen nombres que comienzan con DC_ . Cuando se invoca el supervisor de exim, este vuelve a procesar los archivos de configuración y produce una configuración de un solo archivo que utiliza el binario de exim.

Debido a que el enfoque de Debian difiere significativamente del de Exim, es común encontrar una falta de soporte para el enfoque de Debian en las listas de correo regulares de Exim, y se recomienda a la gente [11] [12] que haga preguntas sobre Debian en la lista de correo administrada por Debian. El paquete Ubuntu [13] aún recomienda a los usuarios que utilicen la lista de correo de Debian.

Documentación

Exim cuenta con una documentación extensa y exhaustiva; si una característica o algún comportamiento no está documentado, se clasifica como un error. La documentación consta de la Especificación Exim y dos archivos auxiliares: la especificación experimental para las características que podrían desaparecer y "NewStuff", que rastrea los cambios muy recientes que podrían no haberse integrado completamente en la especificación principal. La Especificación Exim está disponible en varios formatos, incluso en línea en HTML y en texto simple para una búsqueda rápida. El sistema de preparación de documentos garantiza que el formato de texto simple sea muy utilizable.

Actuación

Exim se ha implementado en entornos con mucho tráfico, donde a menudo se gestionan miles de correos electrónicos por hora de manera eficiente. Exim está diseñado para entregar correos electrónicos de manera inmediata, sin colas. Sin embargo, su rendimiento de procesamiento de colas es comparativamente deficiente cuando las colas son grandes (lo que sucede raramente en sitios típicos con poco tráfico, pero puede suceder con regularidad en sitios con mucho tráfico).

A diferencia de qmail , Postfix y ZMailer , Exim no tiene un gestor de colas central (es decir, un equivalente de qmail-send , qmgr o scheduler ). Por lo tanto, no hay un equilibrio de carga centralizado del procesamiento de colas (lo que lleva a que se gasten cantidades desproporcionadas de tiempo en procesar las mismas entradas de cola repetidamente). La concurrencia de transporte remoto en todo el sistema es ilimitada de forma predeterminada (lo que lleva a un " problema de manada atronadora " cuando se envían varios mensajes dirigidos a un solo dominio a la vez), pero puede estar limitada por la configuración. En las propias palabras de Philip Hazel: [14]

"La conclusión es que Exim no funciona especialmente bien en entornos en los que la cola se vuelve muy larga. Nunca fue diseñado para esto; las entregas desde la cola siempre estuvieron pensadas para ser 'excepciones' en lugar de la norma".

En 1997, Hazel reemplazó la biblioteca de expresiones regulares POSIX de Exim escrita por Henry Spencer con una nueva biblioteca que él desarrolló llamada PCRE ( Perl Compatible Regular Expressions). Las expresiones regulares de Perl son mucho más poderosas que POSIX y otras expresiones regulares comunes, y PCRE se ha vuelto popular en aplicaciones distintas a Exim. En 2021 (después del lanzamiento de la versión 4.95), Exim realizó la transición a PCRE2.

Actualizaciones

Históricamente, Exim utilizaba un peculiar sistema de numeración de versiones en el que el primer dígito decimal se actualizaba únicamente cuando la documentación principal estaba completamente actualizada; hasta ese momento, los cambios se acumulaban en el archivo NewStuff. Por este motivo, un cambio de versión 0.01 puede significar cambios importantes, no necesariamente completamente documentados. [15] En 2005, los cambios en la numeración de versiones de Exim estaban sobre la mesa de discusión. [16]

En tiempos más recientes, el sistema de preparación de documentos para Exim ha sido revisado y es mucho más probable que los cambios se apliquen inmediatamente a la Especificación Exim. La versión 4.70 siguió naturalmente a la 4.69 y las versiones 4.6x tenían documentación actualizada.

Philip Hazel se jubiló de la Universidad de Cambridge en 2007 y el mantenimiento de Exim pasó a manos de un equipo de mantenedores. Exim continúa recibiendo un mantenimiento activo, con lanzamientos frecuentes.

Véase también

Referencias

  1. ^ "[exim-announce] Exim 4.98 lanzado". 10 de julio de 2024. Consultado el 12 de julio de 2024 .
  2. ^ "AVISO". GitHub .
  3. ^ Adelstein, Tom; Lubanovic, Bill (27 de marzo de 2007). Administración de sistemas Linux. "O'Reilly Media, Inc." ISBN 978-0-596-00952-6.
  4. ^ Golanski, Y (2000) El agente de transferencia de correo Exim en una implementación a gran escala
  5. ^ "Encuesta de E-Soft MX". securityspace.com . E-Soft Inc. 1 de marzo de 2023 . Consultado el 20 de marzo de 2023 .
  6. ^ Philip Hazel El servidor de correo SMTP de Exim (Prefacio) Archivado el 30 de diciembre de 2008 en Wayback Machine
  7. ^ "Reflexiones originales de Philip Hazel sobre la implementación de un futuro MTA basado en Smail". cam.ac.uk . Archivado desde el original el 15 de diciembre de 2008.
  8. ^ "El MTA Smail-3". weird.com .
  9. ^ "Consideraciones de seguridad". exim.org .
  10. ^ "EximSecurity". GitHub .
  11. ^ "DebianExim4". GitHub .
  12. ^ "Preguntas frecuentes sobre Exim". exim.org .
  13. ^ "Ubuntu – Detalles del paquete exim4 en lucid". ubuntu.com .
  14. ^ Publicación de Philip Hazel
  15. ^ [Exim] Lanzamiento de Exim 4.21
  16. ^ "Exim Development - From The Cathedral Towards The Bizarre" (Desarrollo del Exim: de la catedral a lo extraño). Archivado desde el original el 14 de octubre de 2007. Consultado el 25 de febrero de 2015 .

Bibliografía

Enlaces externos