Exim je Mail Transfer Agent (MTA) pro unixové operační systémy. Exim je svobodný software distribuovaný v rámci GNU General Public License, a jeho cílem je být obecným a flexibilním poštovním serverem s rozsáhlými možnostmi kontroly příchozí pošty.

Exim
VývojářThe Exim Maintainers; autor: Philip Hazel
První vydání1995; před 10953 dny
Aktuální verze4.98 (10. července 2024)
Operační systémUN*X
PlatformaMultiplatformní
Vyvíjeno vC
Typ softwaruMail Transfer Agent
LicenceGPL 2.0 nebo pozdější[1]
Webhttps://www.exim.org/
Některá data mohou pocházet z datové položky.

Exim byl portován na většinu unixových systémů, a díky použití emulační vrstvy Cygwin je dostupný i na Microsoft Windows. V roce 2022 byl Exim 4 implicitním MTA pro Debian Linux.[2]

Existuje mnoho instalací Eximu, zvláště u poskytovatelů internetového připojení[3] a na univerzitách ve Velké Británii. Exim se také často používá se správcem elektronických konferencí GNU Mailman a s cPanel.

Studie provedená organizací E-Soft, Inc. v březnu 2023 odhadla, že 59 % veřejně dosažitelných poštovních serverů na Internet používalo Exim.[4]

První verzi Eximu napsal v roce 1995 Philip Hazel pro použití na e-mailových systémech Univerzity v Cambridgi. Jméno znamenalo EXperimental Internet Mailer.[5] Původně vycházel ze staršího MTA Smail-3, ale postupně se odchýlil od jeho návrhu a filozofie.[6][7]

Návrh model

editovat

Exim, stejně jako Smail, stále používá konstrukční model sendmailu, kde všechny funkce MTA zajišťuje jediný program. Exim však má přesně definované fáze, během nichž získává oprávnění nebo se jich vzdává.[8]

V průběhu času bylo diagnostikováno několik závažných problémů datové bezpečnosti Eximu.[9] Od vydání přepracované verze 4 byly objeveny čtyři bezpečnostní problémy, které umožňovaly vzdálené provádění kódu a jedna koncepční chyba spočívající v přílišné důvěře v uživatele v době běhu opravené v bezpečnostní uzávěře v revizi 4.73, která byla jedním z řídkých případů, kdy Exim porušil zpětnou kompatibilitu s funkčními konfiguracemi.

Konfigurace

editovat

Exim je vysoce konfigurovatelný, a proto má řadu vlastností, které v jiných MTA chybějí. Vždy měl značné možnosti kontroly poštovních zásad, které správci umožňovaly kontrolovat, kdo může odesílat nebo předávat poštu prostřednictvím systému. Ve verzi 4.x byly zavedeny Access Control Listy umožňující velmi podrobné a flexibilní ovládání. Od verzí 4.x byl začleněn rámec pro kontrolu obsahu, který umožňuje snazší integraci antivirových a antispamových opatření. Díky němu je Exim velmi vhodný pro prosazování různých poštovních politik.

Konfigurace se provádí pomocí (typicky jediného) konfiguračního souboru, který musí obsahovat hlavní část s obecnými nastaveními a proměnnými a následující volitelné části:

  • Access Control List (ACL) část, která definuje chování během SMTP relací,
  • routovací část, která obsahuje prvky zpracování, které pracují s adresami (logikou doručování), přičemž každý se zkouší postupně,
  • transportní část, která zahrnuje prvky zpracování, které odesílají zprávy do míst určení,
  • retry část definující strategii opakování pokusů o doručení zpráv, u nichž pokus o doručení selhal,
  • přepisovací část, která definuje, zda a jak bude poštovní systém přepisovat adresy příchozích e-mailů,
  • autentizační část s nastavením pro SMTP AUTH, a pravidly pro každý mechanismus autentizace.

Konfigurační soubor umožňuje vkládání jiných souborů, což vede ke dvěma různým stylům konfigurace.

Styly konfigurace

editovat

Existují dva hlavní styly konfigurace Eximu. Nativní styl udržuje konfiguraci v jednom souboru, a externí soubory používá pouze jako datové zdroje; tento přístup silně ovlivnil Philip Hazel svými preferencemi a poznámkami o výkonnosti, protože konfigurační soubor se načítá při každém spuštění, což se děje po forku pro příjem příchozích spojení a při doručení.

Druhý styl konfigurace používaný v Debianu je navržen tak, aby po nainstalování správce nemusel upravovat konfigurační soubory. Tato konfigurace má několik variant a dokumentaci k tomuto přístupu poskytuje Debian v dodávaných balíčcích. V těchto přístupech se pro sestavení konfiguračního souboru Eximu používá konfigurační soubor debconf spolu se šablonami a adresáři s fragmenty konfigurace. Metakonfigurace je vyladěna pomocí maker, jejichž jména začínají DC_. Pak je vyvolán supervisor Eximu, který konfigurační soubory zpracuje a vytvoří z nich jediný konfigurační soubor, který bude program exim používat.

Protože přístup Debianu se výrazně liší od přístupu Eximu, je běžné, že v běžných diskusních konferencích Eximu chybí podpora pro přístup Debianu a lidem se doporučuje[10][11] aby se na otázky konfigurace pro Debian ptali v diskusní konferenci spravované Debianem. I balíček Ubuntu[12] doporučuje uživatelům používat diskusní fórum Debianu.

Dokumentace

editovat

Exim má rozsáhlou a vyčerpávající dokumentaci; pokud nějaký rys nebo určité chování není dokumentované, je to považováno za chybu. Dokumentace sestává ze specifikace Eximu a dvou pomocných souborů: experimentální specifikace vlastností, které mohou být v budoucnosti odstraněny a „NewStuff“, ve kterém jsou popsány nedávné změny, které zatím nebyly plně začleněny do hlavní specifikace. Specifikace Eximu je dostupná v několika formátech, včetně prostého textu pro rychlé vyhledávání a online verze v HTML. Dokumentační systém zajišťuje, že i dokumentace ve formě prostého textu je dobře použitelná.

Výkonnost

editovat

Exim je navržen tak, aby doručoval e-maily okamžitě, bez zařazování do front a je nasazován i v rušných uzlech, kde často efektivně zpracovává tisíce e-mailů za hodinu. Jeho výkonnost je však poměrně slabá při práci s dlouhými frontami (což se v typických uzlech nízkým provozem stává zřídka, ale může se to stávat pravidelně v uzlech s vysokým provozem).

Exim na rozdíl od Qmailu, Postfixu a ZMaileru nemá centrální správce front (ekvivalent programů qmail-send, qmgr nebo scheduler). Neexistuje tedy žádné centralizované vyvažování zátěže při zpracovávání front (kvůli čemuž stráví velké množství času při opakovaném zpracování stejných položek ve frontě). Exim implicitně neomezuje souběžné doručování více zpráv (což vede k „problému hřmícího stáda“, když je najednou odesíláno mnoho zpráv pro jedinou doménu), ale lze jej omezit konfigurací. Podle slov Philipa Hazela:[13]

“Problém je v tom, že Exim nefunguje příliš dobře v situaci, kdy má dlouhou frontu zpráv. Exim nebyl navržen pro tuto situaci; doručování z fronty by mělo vždy představovat 'výjimku' nikoli pravidlo.“

V roce 1997 Hazel nahradil POSIXovou knihovnu regulárních výrazů, jejímž autorem byl Henry Spencer novou knihovnou, kterou nazývá PCRE (Perl Compatible Regular Expressions). Nové regulární výrazy jsou mnohem výkonnější než POSIXové a další běžné regulární výrazy, a PCRE se stala oblíbenou i v jiných aplikacích než Exim. V roce 2021 (po vydání 4.95) Exim přešel na PCRE2.

Aktualizace

editovat

Historicky Exim používal zvláštní schéma číslování verzí, kdy se první desetinné číslo aktualizuje pouze tehdy, když je hlavní dokumentace plně aktuální; do té doby se změny hromadí v souboru NewStuff. Proto může změna čísla verze o 0.01 znamenat významné změny, které nemusí být plně zdokumentované.[14] V roce 2005 se jednalo o změnách v číslování verzí Eximu.[15]

Nedávno byl systém pro přípravu dokumentů pro Exim důkladně přepracován a většina změn se pravděpodobně objeví ve specifikaci Eximu okamžitě. Verze 4.70 pouze navazovala na verzi 4.69 a verze 4.6x měly aktuální dokumentaci.

Po odchodu Philipa Hazela do důchodu v roce 2007 přešla údržba Eximu na tým správců z University of Cambridge. Exim je aktivně udržován, s častými aktualizacemi.

Reference

editovat

V tomto článku byl použit překlad textu z článku Exim na anglické Wikipedii.

  1. NOTICE [online]. GitHub. Dostupné online. 
  2. ADELSTEIN, Tom; LUBANOVIC, Bill. Linux System Administration. [s.l.]: "O'Reilly Media, Inc.", 2007-03-27. Dostupné online. ISBN 978-0-596-00952-6. (anglicky) 
  3. Golanski, Y (2000) The Exim Mail Transfer Agent in a Large Scale Deployment
  4. E-Soft MX survey [online]. E-Soft Inc., 2023-03-01 [cit. 2023-03-20]. Dostupné online. 
  5. Philip Hazel The Exim SMTP Mail Server (Preface) Archivováno 1. 10. 2020 na Wayback Machine.
  6. Philip Hazel's original thoughts on implementing a future MTA based on Smail [online]. cam.ac.uk. Dostupné v archivu pořízeném dne 2008-12-15. 
  7. The Smail-3 MTA [online]. weird.com. Dostupné online. 
  8. Security considerations [online]. exim.org. Dostupné online. 
  9. EximSecurity [online]. GitHub. Dostupné online. 
  10. DebianExim4 [online]. GitHub. Dostupné online. 
  11. The Exim FAQ [online]. exim.org. Dostupné online. 
  12. Ubuntu – Details of package exim4 in lucid [online]. ubuntu.com. Dostupné online. 
  13. posting by Philip Hazel
  14. [Exim] Exim 4.21 released
  15. Exim Development - From The Cathedral Towards The Bizarre [online]. [cit. 2015-02-25]. Dostupné v archivu pořízeném z originálu dne 2007-10-14. 

Literatura

editovat

Externí odkazy

editovat