Postfix

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Postfix je počítačový program pro unixové systémy pro přepravu elektronické pošty (MTA).

Původ a filosofie Postfixu[editovat | editovat zdroj]

Postfix napsal Wietse Venema, známý svými bezpečnostními nástroji a dokumenty, které popisují zabezpečení. Program vznikl roku 1998 jako open source software, tj.program s otevřeným zdrojovým kódem. Firma IBM Research sponzorovala původní uvedení a podporuje i jeho neustálý vývoj. IBM nazývá tento balíček Secure Mailer. Základní principy Postfixu jsou:

Spolehlivost
Postfix obratně prokazuje svou sílu zejména při práci ve vysokém zatížení. Mnoho softwarových systémů se např. projevuje nepředvídatelně, když jím dojde paměť nebo diskový prostor. Postfix detekuje takové podmínky a místo zhoršení situace nabídne možnost systému se vzpamatovat.
Zabezpečení
Postfix zavádí proti útočníkům několik obranných vrstev. Při návrhu Postfixu byl použit princip nejmenších oprávnění, takže jednotlivé procesy běží s nejnižší sadou oprávnění (privilegií). Procesy s vyšším oprávněním nikdy nedůvěřuji neprivilegovaným procesům. Postfix umožňuje deaktivovat nepotřebné moduly, což má za následek jednodušší instalaci a vyšší bezpečnost.
Výkon
Postfix byl navržen pro dosažení vysokého výkonu, ale s předpokladem, že jeho rychlost neomezí jiné systémy. Speciálními technikami omezuje jak počet nových procesů, které je nutné vytvořit, tak i počet přístupů k systému souborů potřebných pro zpracování zprávy.
Flexibilita
Systém Postfix je složen z různých programů a podsystémů. Tímto přístupem lze dosáhnout vysokou pružnost. Všechny části lze upravovat pomocí jednoduchých konfiguračních souborů.
Snadné použití
Postfix je z pohledu nastavení a správy velice jednoduchý balíček pro zpracování zpráv. Pracuje s jednoduchými konfiguračními soubory a vyhledávacími tabulkami zajišťujícími překlad adres a předávání zpráv.
Kompatibilita se sendmailem
Postfix může plně nahradit Sendmail v systému aniž by se změny dotkly uživatelů a aniž by byla narušena funkce aplikací. Postfix podporuje konvence Sendmailu jako /etc/aliases a soubory .forward. Postfix podporuje téměř všechny původní argumenty příkazové řádky Sendmailu.

Role Postfixu[editovat | editovat zdroj]

Postfix je Mail Transfer Agent, zpracovává předávání zpráv mezi servery a lokálně v rámci systému. Nezajišťuje komunikaci POP ani IMAP. Jako MTA Postfix přijímá a odesílá zprávy elektronické pošty přes síť protokolem SMTP. V případě místního dodání může lokální agent Postfixu ukládat zprávy přímo do úložiště zpráv nebo je předávat specializovanému programu pro doručení pošty.

Zabezpečení Postfixu[editovat | editovat zdroj]

E-mailové systémy jsou vystavované útokům, protože už samotný princip jejich činnosti vyžaduje příjem dat z nedůvěryhodných zdrojů. Každá dobrá strategie zabezpečení obsahuje více ochranných vrstev. Postfix řeší zabezpečení aktivním a vícevrstvým přístupem. Architektura Postfixu omezuje nebezpečnost zranitelných míst pro případ, kdyby byly nalezeny chyby návrhu nebo kódu, jež by v monolitickém programu mohly vytvářet velmi citlivá místa.

Modulární návrh[editovat | editovat zdroj]

Každý proces běží s minimálním oprávněním postačujícím k vykonání jeho úlohy. Postfix běží s minimálním množstvím privilegií. Procesy, které nejsou zapotřebí, lze na Postfixu vypnout, takže nemohou být zneužity.

Postfix architecture.svg

Prostředí a procesy[editovat | editovat zdroj]

Ve většině případu nevyžaduje doručování pošty unixový proces prostředí, když jej však konfigurace používá, Postfix informace před jejich umístěním do proměnných prostředí „desinfikuje“. Postfix se snaží odstranit všechny škodlivé znaky, které mohou mít pro prostředí zvláštní význam, a potom údaje prostředí teprve zpřístupní.

Většinu procesů Postfixu uskutečňuje známý a důvěryhodný řídicí démon. Neběží jako uživatelské podřízené procesy, takže jsou imunní vůči bezpečnostním potížím vyplývajícím z dědičných vztahů nadřazený-podřazený a komunikací. Tyto útoky, které používají signály, sdílenou paměť, otevřené soubory a další typy meziprocesové komunikace, jsou vůči Postfixu v zásadě bezmocné.

Komponenty Postfixu[editovat | editovat zdroj]

Architektura Postfixu se liší od monolitických systémů výrazným způsobem. Postfix rozděluje úlohy na jednotlivé funkce v různých programech, které se pak starají o konkrétní činnost. Většina těchto programů jsou démony. Nejprve se spustí démon master a ten volá většinu ostatní procesů podle potřeby. Démony, které volá master, zpracovávají své přidělené úkoly a pak se ukončí. Mohou se ukončit po zadaném časovém úseku nebo po zpracování určitého nejvyššího počtu požadavků. Řídicí démon je trvale rezidentní a své konfigurační informace přebírá při spuštění ze souboru main.cf a master.cf

Jednotlivé procesy systému postfix:

  • smtpd SMTP server – přijímá zprávy na portu 25
  • sendmail – přebírá zprávy ze standardního vstupu
  • postdrop – zprávu ze standardního vstupu uloží do souboru v adresáři /var/spool/postfix/maildrop
  • pickup – sleduje zprávy v adresáři /var/spool/postfix/maildrop a předává je programu cleanup
  • cleanup – kanonizuje zprávy; pro přepis adres používá trivial-rewrite
  • trivial-rewrite – přepisuje, verifikuje a resolvuje adresy; resolvování vrací čtveřici (transportní mechanismus, nexthop, příjemce, příznaky)
  • qmgr – správce front:
    • active – zrovna doručované zprávy
    • incoming – fronta zpráv od programu cleanup
    • deferred – fronta zpráv čekajících na další pokus o doručení
    • corrupt – poškozené zprávy
    • hold – pozdržené zprávy
  • local – provádí lokální doručení, včetně zpracování souboru .forward
  • smtp – SMTP klient, provádí doručení protokolem SMTP
  • pipe – spouští programy, které slouží k doručení zpráv
  • bounce – připojuje záznam do per-message logu
  • defer – připojuje záznam do per-message logu
  • trace – připojuje záznam do per-message logu
  • master – pouští jednotlivé programy systému postfix podle potřeby

Literatura[editovat | editovat zdroj]

  • D.DENT, Kyle. Postfix kompletní průvodce. Praha : Grada, 2005. ISBN 80-247-1029-3.  

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]