Postfix
Postfix je počítačový program pro unixové systémy pro přepravu elektronické pošty (MTA).
Vývojář | IBM |
---|---|
Aktuální verze | 3.7.0 (5. února 2022) |
Operační systém | GNU/Linux BSD macOS UN*X |
Vyvíjeno v | C |
Typ softwaru | Mail Transfer Agent |
Licence | Eclipse Public License 2.0 IBM Public License |
Web | www |
Některá data mohou pocházet z datové položky. |
Původ a filosofie Postfixu
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
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
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
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.
Prostředí a procesy
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
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 25sendmail
– přebírá zprávy ze standardního vstupupostdrop
– 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 cleanupcleanup
– 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ávyincoming
– fronta zpráv od programucleanup
deferred
– fronta zpráv čekajících na další pokus o doručenícorrupt
– poškozené zprávyhold
– 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 SMTPpipe
– spouští programy, které slouží k doručení zprávbounce
– připojuje záznam do per-message logudefer
– připojuje záznam do per-message logutrace
– připojuje záznam do per-message logumaster
– pouští jednotlivé programy systému postfix podle potřeby
Literatura
- D.DENT, Kyle. Postfix kompletní průvodce. Praha: Grada, 2005. ISBN 80-247-1029-3.
Související články
- Mail Transfer Agent (MTA)
Externí odkazy
- Obrázky, zvuky či videa k tématu Postfix na Wikimedia Commons
- http://www.abclinuxu.cz/clanky/site/stavime-postovni-server-3-instalace-zakladni-konfigurace-postfixu – obecný popis konfigurace Postfixu
- http://www.root.cz/clanky/stavime-mailovy-server-postfix/ – konfigurace Postfixu v OpenBSD
- http://wiki.centos.org/HowTos/postfix – konfigurace pro RHEL/CentOS (anglicky)
- https://web.archive.org/web/20110626224215/http://setahost.com/installing-postfix-as-a-default-mail-sending-program-with-php/ – Instalaci a konfiguraci serveru a klienta Postfix.