Postfix

Postfix
Logo
VývojářIBM
Aktuální verze3.8.1 (6. června 2023)
Operační systémGNU/Linux
BSD
macOS
UN*X
Vyvíjeno vC
Typ softwaruMail Transfer Agent a svobodný software
LicenceEclipse Public License 2.0
IBM Public License
Webwww.postfix.org
Některá data mohou pocházet z datové položky.

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

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 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

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

Související články

Externí odkazy

Média použitá na této stránce

Architecture of the software Postfix (Mail Transfer Agent).png
Autor: Denny-pug, Licence: CC BY-SA 3.0
Der modulare Aufbau von Postfix zeigt sich in der dargestellten Grafik. In dieser finden sich vier Elementtypen:

Gelbe Ellipsen: Sie stehen für je einen Daemon, welchem genau eine Aufgabe zugeordnet wurde. Aus dieser Modularität heraus erklärt sich die große Sicherheit und Stabilität, die Postfix auszeichnet.

Blaue Kästen: Die blauen Kästen stehen für sogenannte Lookup tables (postfix maps). Sie enthalten in zwei Spalten Informationen, die zur Weiterverarbeitung von E-Mails herangezogen werden können. Dies kann eine Zugriffsliste (engl. access) sein, die darüber bestimmt, ob die E-Mail angenommen wird oder nicht, zum Umschreiben des Adressaten bzw. Senders oder auch der weitere Weg (engl. transport), den eine E-Mail nehmen soll.

Orangene Kästen: Die orangen Kästen stehen zum einen für sogenannte Warteschlangen (engl. queues), bei der E-Mails physisch auf dem Datenträger (zumeist Festplatte oder einem NFS Laufwerk) abgelegt werden, oder aber für Endzustellung, zum Beispiel eine Mailbox eines Benutzers (Beispiel: /var/mail/benutzername).

Weiße Wolken: Sie stehen für den möglichen Eintritt oder auch das Verlassen des Postfix Systems. Als Beispiel auf der linken Seiten den SMTPD Daemon, welcher für die Annahme von E-Mails über den TCP Port 25 zuständig ist (soweit nicht anders konfiguriert). Auf der rechten Seite dagegen gibt es den SMTP Daemon, der für das Weitergeben von E-Mails an andere SMTP zuständig ist.
Postfix-logo.png
This image has been released into the public domain by its creator and original copyright holder. This applies worldwide. As such you are entirely free to reproduce it, create derivative works, or make commercial use of it as you see fit, without any requirement to give the creator credit. However, as a courtesy, a link back to http://www.inf.sgsp.edu.pl/pub/MALUNKI/ would be appreciated.

In case this is not legally possible:

The copyright holder grants any entity the right to use this work for any purpose, without any conditions, unless such conditions are required by law. However, as a courtesy, a link back to http://www.inf.sgsp.edu.pl/pub/MALUNKI/ would be appreciated.