SlideShare a Scribd company logo
1 of 13
Download to read offline
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TRE CI   Postfix. Przewodnik
                                         encyklopedyczny
           KATALOG KSI¥¯EK
                                         Autor: Kyle D. Dent
                      KATALOG ONLINE     T³umaczenie: Adam Jarczyk
                                         ISBN: 83-7361-668-3
       ZAMÓW DRUKOWANY KATALOG           Tytu³ orygina³u: Postfix. The Definitive Guide
                                         Format: B5, stron: 248

              TWÓJ KOSZYK
                                         Postfix to agent przesy³ania poczty (MTA) — oprogramowanie, którego serwery
                    DODAJ DO KOSZYKA     pocztowe u¿ywaj¹ do kierowania poczty elektronicznej. Jego twórc¹ jest znany ekspert
                                         w dziedzinie bezpieczeñstwa Wietse Venema. Postfix jest wysoce ceniony przez
                                         ekspertów za bezpieczn¹ strukturê i olbrzymi¹ niezawodno æ. Administratorzy ceni¹ go
         CENNIK I INFORMACJE             za prostotê konfiguracji. Z tego w³a nie powodu Postfix zosta³ przyjêty jako domy lny
                                         MTA w systemie Mac OS X. Podstawowa konfiguracja Postfiksa jest prosta, lecz
                   ZAMÓW INFORMACJE      dostosowanie go do indywidualnych potrzeb okre lonej domeny wymaga wiêkszego
                     O NOWO CIACH        nak³adu pracy.
                                         „Postfix. Przewodnik encyklopedyczny” to doskona³y przewodnik dla administratorów
                       ZAMÓW CENNIK      serwerów pocztowych, u³atwiaj¹cy przej cie od podstawowej konfiguracji do
                                         wykorzystania pe³nych mo¿liwo ci Postfiksa. Opisuje sposoby skonfigurowania
                                         Postfiksa oraz po³¹czenia go z narzêdziami POP, IMAP, LDAP, MySQL, SASL i TSL
                 CZYTELNIA               (zmodernizowana wersja SSL), które tworz¹ wraz z nim w pe³ni skalowalny i bardzo
                                         bezpieczny system poczty elektronicznej. Ksi¹¿ka zawiera te¿ zestawienie parametrów
          FRAGMENTY KSI¥¯EK ONLINE       konfiguracyjnych Postfiksa i szczegó³owy opis instalacji. Ka¿de przyk³ad zawiera
                                         omówienie, rozwi¹zanie i komentarz, co u³atwia wykorzystanie kodu do w³asnych
                                         potrzeb, czêsto ró¿ni¹cych siê od opisywanych w ksi¹¿ce.
                                            • Rola Postfiksa w systemie poczty elektronicznej
                                            • Dzia³anie poczty elektronicznej
                                            • Komponenty Postfiksa
                                            • Podstawowa konfiguracja
                                            • Administrowanie Postfiksem
                                            • Zarz¹dzanie kolejkami
                                            • Protoko³y POP, IMAP i LMTP
                                            • Obs³uga wielu domen
Wydawnictwo Helion                          • Listy wysy³kowe
ul. Chopina 6                               • Zabezpieczenia przed spamem
44-100 Gliwice                              • Uwierzytelnianie i blokowanie tre ci
tel. (32)230-98-63                          • Wspó³praca z systemami baz danych
e-mail: helion@helion.pl
                                         „Postfix. Przewodnik encyklopedyczny” to doskona³a pomoc dla wszystkich
                                         administratorów serwerów poczty elektronicznej, którzy chc¹ skonfigurowaæ Postfiksa
                                         bez przeszukiwania tysiêcy stron dokumentacji.
Spis treści

Przedmowa ............................................................................................................................... 7

Wstęp ........................................................................................................................................ 9

Rozdział 1. Wprowadzenie......................................................................................................13
          Pochodzenie i filozofia Postfiksa                                                                                                 13
          Poczta elektroniczna i Internet                                                                                                   14
          Rola Postfiksa                                                                                                                    17
          Postfix i bezpieczeństwo                                                                                                          18
          Informacje dodatkowe i źródła Postfiksa                                                                                           19

Rozdział 2. Wymogi.................................................................................................................21
          Unix                                                                                                                              21
          Poczta elektroniczna                                                                                                              23

Rozdział 3. Architektura Postfiksa......................................................................................... 29
          Komponenty Postfiksa                                                                                                              29
          Jak wiadomości wchodzą do systemu Postfix?                                                                                        30
          Kolejki                                                                                                                           32
          Doręczanie poczty                                                                                                                 32
          Trasa wiadomości przez Postfix                                                                                                    34

Rozdział 4. Podstawy konfiguracji i administracji ................................................................ 39
          Pierwsze uruchomienie Postfiksa                                                                                                   40
          Pliki konfiguracyjne                                                                                                              41
          Ważne punkty konfiguracji                                                                                                         51
          Administracja                                                                                                                     54
          master.cf                                                                                                                         57
          Limity odbieranych wiadomości                                                                                                     60
          Przekształcanie adresów                                                                                                           61
          chroot                                                                                                                            64
          Dokumentacja                                                                                                                      66




                                                                                                                                              3
Rozdział 5. Zarządzanie kolejkami ........................................................................................ 67
          Sposób działania qmgr                                                                                                  67
          Narzędzia kolejek                                                                                                      70

Rozdział 6. Email i DNS............................................................................................................77
          DNS — wprowadzenie                                                                                                     77
          Kierowanie poczty                                                                                                      78
          Postfix i DNS                                                                                                          81
          Typowe problemy                                                                                                        83

Rozdział 7. Doręczanie lokalne i POP/IMAP ......................................................................... 85
          Transporty doręczające w systemie Postfix                                                                              85
          Formaty magazynów wiadomości                                                                                           86
          Doręczanie lokalne                                                                                                     88
          POP i IMAP                                                                                                             90
          Protokół LMTP                                                                                                          92

Rozdział 8. Obsługa wielu domen ......................................................................................... 97
          Domeny wspólne z kontami systemowymi                                                                                   98
          Domeny odrębne z kontami systemowymi                                                                                   98
          Domeny odrębne z kontami wirtualnymi                                                                                   99
          Osobny magazyn wiadomości                                                                                             102
          Doręczanie do poleceń                                                                                                 103

Rozdział 9. Przekazywanie poczty ...................................................................................... 109
          Zapasowe serwery MX                                                                                                   109
          Tablice transportów                                                                                                   112
          Brama dla poczty wchodzącej                                                                                           115
          Przekaźnik poczty wychodzącej                                                                                         116
          Doręczanie do UUCP, faksu itp.                                                                                        117

Rozdział 10. Listy wysyłkowe................................................................................................ 119
          Proste listy wysyłkowe                                                                                                119
          Programy zarządzające listami wysyłkowymi                                                                             123

Rozdział 11. Blokowanie spamu ............................................................................................ 131
          Natura spamu                                                                                                          131
          Problem spamu                                                                                                         132
          Otwarte przekaźniki                                                                                                   132
          Wykrywanie spamu                                                                                                      133
          Działania antyspamowe                                                                                                 135
          Konfiguracja Postfiksa                                                                                                136



4     |    Spis treści
Reguły wykrywania klientów                                                                                                    136
         Ścisłe ograniczenia składni                                                                                                   147
         Kontrola zawartości                                                                                                           148
         Własne klasy ograniczeń                                                                                                       151
         Przykład konfiguracji antyspamowej Postfiksa                                                                                  152

Rozdział 12. Uwierzytelnianie SASL .....................................................................................155
         SASL — wprowadzenie                                                                                                           156
         Postfix i SASL                                                                                                                158
         Konfiguracja Postfiksa dla SASL                                                                                               158
         Testowanie konfiguracji uwierzytelniania                                                                                      163
         Uwierzytelnianie klienta SMTP                                                                                                 165

Rozdział 13. Transport Layer Security...................................................................................167
         Postfix i TLS                                                                                                                 167
         Certyfikaty TLS                                                                                                               169

Rozdział 14. Filtrowanie treści .............................................................................................. 177
         Filtrowanie przez polecenia                                                                                                   178
         Filtrowanie oparte na demonach                                                                                                180
         Inne uwagi                                                                                                                    184

Rozdział 15. Zewnętrzne bazy danych ................................................................................ 185
         MySQL                                                                                                                         186
         LDAP                                                                                                                          191

Dodatek A Parametry konfiguracyjne ..................................................................................195

Dodatek B Polecenia Postfiksa ..............................................................................................219

Dodatek C Kompilacja i instalacja Postfiksa .........................................................................221

Dodatek D Najczęściej zadawane pytania........................................................................... 233

Skorowidz ............................................................................................................................. 237




                                                                                                                   Spis treści     |     5
ROZDZIAŁ 3.

                                               Architektura Postfiksa



Postfix jest łatwy w zarządzaniu i eksploatacji bez konieczności dogłębnego zrozumienia, jak
wszystko w nim działa. Czytelnicy, którzy chcą się od razu zabrać do dzieła, mogą pominąć
ten rozdział i przejść prosto do następnego. Przetrawienie całego przedstawionego tu materiału
może być trudne, jeśli ktoś nie ma jeszcze doświadczenia z Postfiksem, lecz bieżący rozdział
zawiera przegląd różnych jego elementów, co może przydać się przy zaczynaniu pracy z tym
programem. Później, po nabraniu większego doświadczenia w pracy z tym programem, Czy-
telnik będzie mógł wrócić do tego rozdziału, aby przyswoić sobie więcej szczegółów.


Komponenty Postfiksa
Architektura Postfiksa różni się znacząco od monolitycznych systemów, takich jak sendmail,
który tradycyjnie używa jednego dużego programu do obsługi wiadomości pocztowych. Po-
stfix dzieli zadania na odrębne funkcje, stosując osobne programy do wykonywania jednego
konkretnego zadania. Większość z tych programów stanowią demony — procesy działające
w systemie w tle. Najpierw uruchamiany jest główny demon master, który w miarę potrzeb
wywołuje większość innych procesów. Demony Postfiksa wywoływane przez master przetwa-
rzają przydzielone im zadania i kończą działanie. Mogą też zakończyć pracę po upłynięciu
określonego czasu lub po obsłużeniu ustalonej maksymalnej liczby żądań. Demon master jest
obecny (rezydentny) cały czas i pobiera swoje dane konfiguracyjne z plików main.cf i master.cf.
Pliki konfiguracyjne Postfiksa omawia rozdział 4.
Rysunek 3.1 przedstawia ogólny schemat architektury Postfiksa. Krótko mówiąc, Postfix od-
biera wiadomości, kolejkuje je i w końcu doręcza. Każdym etapem procesu zajmuje się od-
rębny zbiór komponentów Postfiksa. Po odebraniu wiadomości i umieszczeniu jej w kolejce
menedżer kolejki wywołuje odpowiedniego agenta doręczającego w celu ostatecznego do-
starczenia wiadomości. Następne punkty rozdziału opisują szczegóły każdego z etapów.




Rysunek 3.1. Ogólna architektura systemu Postfix



                                                                                             29
Jak wiadomości wchodzą do systemu Postfix?
Wiadomość wchodzi do Postfiksa na jeden z czterech sposobów:
 1. Wiadomość może zostać przyjęta przez Postfix lokalnie (wysłana przez użytkownika w tym
    samym komputerze).
 2. Wiadomość może zostać przyjęta poprzez sieć.
 3. Wiadomość, którą Postfix przyjął już przez jedną z innych metod, zostaje ponownie zgłoszo-
    na do przekazania dalej pod inny adres.
 4. Postfix sam generuje wiadomości, gdy musi wysłać powiadomienia o nieudanych lub odło-
    żonych próbach doręczenia wiadomości.
Zawsze istnieje możliwość, że wiadomość zostanie odrzucona przed wejściem do systemu Po-
stfix, lub że część wiadomości zostanie wstrzymanych do doręczenia później.


Lokalne zgłaszanie wiadomości
Poszczególne składniki Postfiksa współpracują ze sobą przez zapisywanie wiadomości do ko-
lejki i odczytywanie ich z kolejki. Menedżer kolejek jest odpowiedzialny za zarządzanie wia-
domościami w kolejce i powiadamianie właściwego komponentu, że ma zadanie do wykonania.
Rysunek 3.2 ilustruje przepływ, gdy lokalna wiadomość email wchodzi do systemu Postfix.
Lokalne wiadomości są zapisywane do katalogu maildrop kolejki Postfiksa poleceniem postdrop,
zwykle poprzez program dopasowujący sendmail. Demon pickup odczytuje wiadomość z kolej-
ki i wprowadza ją do demona cleanup. Niektóre wiadomości przychodzą bez kompletu nagłów-
ków wymaganych w poprawnej wiadomości email. Wobec tego poza kontrolą poprawności
logicznej wiadomości demon cleanup, w połączeniu z demonem trivial-rewrite, wsta-
wia brakujące nagłówki wiadomości, przekształca adresy na format użytkownik@domena.tld,
którego oczekują inne programy Postfiksa, oraz ewentualnie dokonuje translacji adresów na
podstawie tablic wyszukiwań adresów kanonicznych lub wirtualnych (więcej informacji o ta-
blicach wyszukiwań zawiera rozdział 4.).




Rysunek 3.2. Lokalne zgłaszanie wiadomości


30   |   Rozdział 3. Architektura Postfiksa
Demon cleanup przetwarza całość przychodzącej poczty i powiadamia menedżera kolejek,
gdy już umieści oczyszczoną wiadomość w kolejce wejściowej. Menedżer kolejek wywołuje
wtedy odpowiedniego agenta doręczającego, aby wysłać wiadomość w następne miejsce na
trasie do ostatecznego celu.


Poczta z sieci
Rysunek 3.3 ilustruje sytuację, gdy wiadomość email z sieci wchodzi do systemu Postfix. Wiado-
mości odebrane przez sieć są przyjmowane przez demona Postfiksa smtpd. Demon ten prze-
prowadza kontrolę poprawności logicznej i może być skonfigurowany tak, że będzie pozwalał
klientom przekazywać pocztę lub nie. Demon smtpd przekazuje wiadomość do demona cle-
anup, który przeprowadza własne kontrole i zapisuje wiadomość w kolejce wejściowej. Na-
stępnie menedżer kolejek wywołuje odpowiedniego agenta doręczającego w celu wysłania
wiadomości w następne miejsce na trasie do celu.




Rysunek 3.3. Poczta z sieci


Powiadomienia o poczcie
Gdy wiadomość użytkownika jest odroczona lub nie może zostać doręczona, Postfix używa
demona defer lub bounce do utworzenia nowej wiadomości o błędzie. Wiadomość ta zostaje
przekazana do demona cleanup, który przeprowadza standardową kontrolę przed wstawie-
niem wiadomości o błędzie do kolejki wejściowej, gdzie przejmuje ją menedżer kolejki.


Przekazywanie dalej poczty
Czasami po przetworzeniu wiadomości email Postfix ustala, że adres docelowy w rzeczywi-
stości wskazuje na inny adres w innym systemie. W tym momencie program mógłby po pro-
stu przekazać wiadomość do klienta SMTP w celu bezpośredniego doręczenia, lecz aby za-
gwarantować, że każdy odbiorca będzie poprawnie przetworzony i zarejestrowany, Postfix
zgłasza ją jako nową wiadomość, która jest obsługiwana jak każda inna lokalnie zgłoszona
wiadomość.




                                                   Jak wiadomości wchodzą do systemu Postfix?   |   31
Kolejki
Menedżer kolejek w Postfiksie wykonuje większość pracy z przetwarzaniem wiadomości ema-
il. Ostatecznym zadaniem komponentów Postfiksa przyjmujących pocztę jest przekazanie
wiadomości do menedżera kolejek. Służy do tego demon cleanup, który powiadamia mene-
dżera kolejek o umieszczeniu nowej wiadomości w wejściowej kolejce wiadomości. Po otrzyma-
niu nowej wiadomości menedżer kolejek używa trivial-rewrite do ustalenia informacji
o trasie: metody transportowej, która ma zostać użyta, następnego hosta, gdzie ma zostać do-
ręczona, oraz adresu odbiorcy.
Menedżer kolejek utrzymuje cztery różne kolejki: wejściową (incoming), aktywną (active),
wiadomości odroczonych (deferred) i uszkodzonych (corrupt). Po początkowym procesie
oczyszczania kolejka wejściowa jest pierwszym przystankiem dla nowych wiadomości. Jeśli
zasoby systemu są dostępne, menedżer przenosi ją do kolejki aktywnej i wywołuje jeden z agen-
tów doręczających. Wiadomości, których nie można doręczyć, są przenoszone do kolejki wia-
domości odroczonych.
Menedżer kolejek jest też odpowiedzialny za generowanie, współpracując z demonami boun-
ce i defer, raportów o stanie doręczenia wiadomości sprawiających problemy. Powiadomie-
nia takie są odsyłane do nadawcy, do administratora systemu lub do obu. Oprócz katalogów
kolejek wiadomości katalog kolejki Postfiksa zawiera katalogi bounce i defer służące do prze-
chowywania informacji o stanie wiadomości wskazujących, dlaczego konkretna wiadomość
jest opóźniona lub niedoręczalna. Demony bounce i defer używają informacji zapisanych
w tych katalogach do generowania swoich powiadomień. Rozdział 5. zawiera bardziej szcze-
gółowe informacje o funkcjonowaniu menedżera kolejek.


Doręczanie poczty
Postfix do ustalania, dla których adresów docelowych może przyjmować wiadomości i w jaki
sposób ma się odbyć doręczenie, wykorzystuje koncepcję klas adresów. Główne klasy adresów
to local (lokalny), virtual alias (alias wirtualny), virtual mailbox (wirtualna skrzynka pocztowa)
i relay (przekazanie). Pod adresy docelowe niezaliczające się do żadnej z tych klas wiadomo-
ści są doręczane poprzez sieć za pomocą klienta SMTP (zakładając, że wiadomość została
odebrana przez autoryzowanego klienta). W zależności od klasy adresu menedżer kolejek
wywołuje odpowiedniego agenta doręczającego do obsłużenia wiadomości.


Doręczanie lokalne
Agent doręczający local obsługuje pocztę przeznaczoną dla użytkowników z kontami powło-
kowymi w systemie, w którym Postfix jest uruchomiony. Nazwy domen dla doręczania lokal-
nego zawiera parametr mydestination. Wiadomości wysyłane do użytkownika w dowolnej
z domen wymienionych w mydestination doręczane są bezpośrednio do konta powłokowego
tego użytkownika. W najprostszym przypadku agent doręczający local zapisuje wiadomość
email w lokalnym magazynie wiadomości. Kontroluje też aliasy i pliki .forward użytkowników,
aby sprawdzić, czy lokalne wiadomości powinny zostać doręczone gdzieś indziej. Doręczanie
lokalne zostało opisane bardziej szczegółowo w rozdziale 7.




32   |   Rozdział 3. Architektura Postfiksa
Gdy wiadomość ma zostać doręczona w inne miejsce, zostaje ponownie zgłoszona do Post-
fiksa w celu doręczenia pod nowy adres. Jeśli występują tymczasowe problemy w doręczeniu
wiadomości, agent doręczający powiadamia menedżera kolejek, aby ten oznaczył wiadomość
jako przeznaczoną do doręczenia później i zapisał ją w kolejce wiadomości odroczonych. Trwałe
problemy powodują odbicie wiadomości przez menedżera kolejek z powrotem do pierwot-
nego nadawcy.


Wiadomości dla adresów wirtualnych
Wszystkie wiadomości dla aliasów wirtualnych są przekazywane dalej pod inne adresy. Na-
zwy domen aliasów wirtualnych wymienione są w parametrze virtual_alias_domains.
Każda domena ma własny zbiór użytkowników, którzy nie muszą być unikatowi we wszyst-
kich domenach. Użytkownicy i ich prawdziwe adresy są wymienione w tablicach wyszuki-
wań wymienionych w parametrze virtual_alias_maps. Wiadomości odebrane dla wirtual-
nych aliasów są ponownie zgłaszane do doręczenia pod rzeczywiste adresy. Więcej informacji
na temat aliasów wirtualnych zawiera rozdział 8.


Wiadomości dla wirtualnych skrzynek pocztowych
Agent doręczający virtual obsługuje pocztę skierowaną pod adresy wirtualnych skrzynek
pocztowych. Takie skrzynki pocztowe nie są kojarzone z konkretnymi kontami powłokowy-
mi w systemie. Nazwy domen dla wirtualnych skrzynek pocztowych zawiera parametr vir-
tual_mailbox_domains. Każda domena ma własny zbiór użytkowników, którzy nie muszą
być unikatowi we wszystkich domenach. Użytkownicy i ich pliki skrzynek pocztowych są
wymienione w tablicach wyszukiwań podanych w parametrze virtual_mailbox_maps. Wię-
cej informacji na temat wirtualnych skrzynek pocztowych zawiera rozdział 8.


Przekazywanie wiadomości
Agent doręczający smtp obsługuje pocztę dla domen przekazywania. Adresy email w dome-
nach przekazywania mieszczą się w innych systemach, lecz Postfix przyjmuje wiadomości
dla takich domen i przekazuje je do właściwych systemów. Konfigurację przekaźników spo-
tyka się powszechnie w miejscach, gdzie Postfix przyjmuje pocztę przez Internet i przekazuje
ją do systemów w wewnętrznej sieci. Nazwy domen przekazywania wymienia parametr re-
lay_domains. Dodatkowe informacje na temat przekazywania zawiera rozdział 9.


Inne wiadomości
Wiadomości niepasujące do żadnej z powyższych klas adresów przeznaczone są zasadniczo
dla innych domen, mieszczących się gdzieś indziej w sieci. Postfix przyjmuje takie wiadomo-
ści tylko od autoryzowanych klientów, na przykład zainstalowanych w tej samej sieci lokalnej.
Gdy wiadomość trzeba doręczyć poprzez sieć, menedżer kolejek wywołuje agenta doręczają-
cego smtp. Ten ustala, który host lub które hosty mogą odebrać wiadomość i nawiązuje ko-
lejno połączenie z każdym z nich, dopóki nie znajdzie hosta, który przyjmie wiadomość. Jeśli
występują tymczasowe problemy z doręczeniem wiadomości, agent smtp powiadamia me-
nedżera kolejek, że wiadomość powinna zostać oznaczona do doręczenia później i zapisana
w kolejce wiadomości odroczonych. Trwałe problemy mogą spowodować odbicie wiadomości
z powrotem do nadawcy.


                                                                       Doręczanie poczty   |   33
Gdy system docelowy, który był niedostępny, wraca online, Postfix stara się nie przytłoczyć
go wszystkimi oczekującymi wiadomościami. Przy doręczaniu wiadomości uprzednio odło-
żonych lub nowych Postfix najpierw nawiązuje ograniczoną (konfigurowalną) liczbę połączeń
z systemem odbierającym pocztę. Po wykryciu pomyślnego doręczenia wiadomości pod kon-
kretny adres hosta program zaczyna powoli zwiększać liczbę równoległych połączeń z nim
(aż do skonfigurowanego maksimum). Jeśli Postfix wykryje jakiekolwiek problemy ze strony
odbiorcy, natychmiast ogranicza szybkość doręczania.


Inne agenty doręczające
System Postfix zawiera jeszcze inne agenty doręczające, które można skonfigurować do ob-
sługi wiadomości dla konkretnej klasy lub miejsca przeznaczenia. Inne agenty doręczające
muszą być skonfigurowane w pliku master.cf. Są one wywoływane albo przez parametr kla-
sa_transport, albo przez wpis w tablicy transportów wskazanej przez parametr transport_
maps. Dwoma popularnymi alternatywnymi agentami doręczającymi są lmtp i pipe.

Doręczanie poprzez LMTP
Protokół LMTP przypomina SMTP, lecz służy do doręczania wiadomości pomiędzy systemami
pocztowymi w tej samej sieci (dodatkowe informacje na temat LMTP zawiera rozdział 7.). Na
przykład, jeśli wiadomość musi zostać doręczona do innego pakietu oprogramowania, który
może być uruchomiony w tym samym komputerze lub w innym systemie w sieci lokalnej,
menedżer kolejek wywołuje agenta doręczającego lmtp. Najczęściej spotykanym przypadkiem
użycia LMTP jest sytuacja, gdy serwer POP/IMAP przechowuje wiadomości w formacie nie-
standardowym (pamiętajmy, że POP i IMAP są protokołami służącymi użytkownikom do
odbierania wiadomości). W tym przypadku serwer POP/IMAP ma własny format do zapi-
sywania i przechowywania wiadomości, więc Postfix używa standardu LMTP do przekaza-
nia wiadomości do serwera POP/IMAP. Jeśli występują problemy z doręczeniem wiadomo-
ści, agent lmtp powiadamia menedżera kolejek, że wiadomość powinna zostać oznaczona do
doręczenia później i zapisana w kolejce wiadomości doręczonych.

Doręczanie potokowe
Postfix oferuje opcję doręczania wiadomości do innego programu przez demona pipe, który
doręcza wiadomości do zewnętrznych poleceń. Typowym zastosowaniem demona pipe jest
doręczanie poczty do zewnętrznego filtra treści lub innego medium komunikacyjnego, na
przykład urządzenia faksu. Jeśli występują problemy z doręczeniem wiadomości, demon pi-
pe powiadamia menedżera kolejek, że wiadomość powinna zostać oznaczona do doręczenia
później i zapisana w kolejce wiadomości odłożonych.


Trasa wiadomości przez Postfix
Prześledźmy typową drogę wiadomości poprzez system Postfix. Rysunki 3.4, 3.5 i 3.6 ilustrują
proces przechodzenia wiadomości od systemu nadawcy do docelowego MTA, który z kolei
przekazuje wiadomość do finalnego MTA, gdzie wiadomość jest przechowywana, dopóki
użytkownik nie będzie gotów do jej odczytania. Na rysunku 3.4 Helena (helene@oreilly.com)
chce wysłać wiadomość do Franka (frank@postfix.org). Helena ma konto w systemie z zain-
stalowanym serwerem Postfix. Klient pocztowy pozwala jej napisać wiadomość, a następnie


34   |   Rozdział 3. Architektura Postfiksa
Rysunek 3.4. Trasa doręczanej wiadomości (część 1.)
wywołuje polecenie Postfiksa sendmail do wysłania wiadomości. Polecenie to odbiera wia-
domość od programu pocztowego Heleny i zapisuje w katalogu maildrop. Następnie demon
pickup pobiera wiadomość, sprawdza jej poprawność logiczną i wprowadza wiadomość do
demona cleanup, który przetwarza ją ostatecznie. Gdyby klient pocztowy Heleny nie podał
adresu From: lub nie użył pełnej nazwy hosta w adresie, demon cleanup wprowadziłby nie-
zbędne poprawki w wiadomości.
Po zakończeniu pracy cleanup umieszcza wiadomość w kolejce incoming i powiadamia me-
nedżera kolejek, że nowa wiadomość jest gotowa do doręczenia. Jeśli menedżer kolejek jest
gotowy do przetwarzania nowych wiadomości, to przenosi wiadomość do kolejki active.
Ponieważ wiadomość jest przeznaczona dla użytkownika w zewnętrznym systemie, mene-
dżer kolejek musi wywołać agenta smtp, aby zajął się doręczeniem.
Agent smtp, korzystając z usługi DNS (patrz rozdział 6.), pobiera listę systemów pocztowych,
które mogą przyjmować pocztę dla domeny postfix.org. Agent smtp wybiera najbardziej pre-
ferowanego hosta MX z listy i kontaktuje się z nim, aby doręczyć wiadomość Heleny.
Rysunek 3.5 przedstawia serwer pocztowy Franka w postfix.org, również używający systemu
Postfix, aczkolwiek system ten może korzystać z dowolnego innego MTA zgodnego ze standar-
dami. Demon Postfiksa smtpd w serwerze Franka odbiera wiadomość od agenta doręczające-
go smtp Heleny. Gdy demon zweryfikuje, że w rzeczy samej powinien przyjąć tę wiadomość,
przekazuje ją przez demona cleanup, który przeprowadza swoją kontrolę przed zapisaniem
wiadomości w kolejce incoming.
Menedżer kolejek przenosi wiadomość do kolejki active, wykonuje własne zadania przetwa-
rzania i ustala, że powinien wywołać agenta local, aby ostatecznie doręczyć wiadomość.
Agent doręczający local ustala, że frank jest aliasem i ponownie zgłasza wiadomość poprzez
demona cleanup do doręczenia pod nowy adres.




                                                            Trasa wiadomości przez Postfix   |   35
Rysunek 3.5. Trasa doręczanej wiadomości (część 2.)
Zarówno cleanup, jak i menedżer kolejek wywołują przy przetwarzaniu wiadomości demona
trivial-rewrite. Pomaga on konwertować adresy email do standardowego formatu i usta-
lać typ transportu oraz następne miejsce na trasie doręczenia.
Gdy nowa wiadomość musi zostać doręczona do innej sieci, menedżer kolejek wywołuje smtp.
Ten szuka w DNS-ie serwerów pocztowych, które mogą przyjąć pocztę dla domeny onlamp.
com. Na rysunku 3.6 MTA w systemie onlamp.com (szczęśliwym zbiegiem okoliczności to też
jest system Postfix) w końcu przekazuje wiadomość do agenta doręczającego local, który
zapisuje ją w magazynie wiadomości w tym systemie. Na tym etapie Postfix zakończył swoje
zadanie. Frank może teraz odczytać wiadomość, używając własnego klienta pocztowego, który
może pobrać wiadomość wprost z lokalnego magazynu lub użyć innego protokołu, np. POP
lub IMAP, aby pobrać wiadomość do odczytania.




Rysunek 3.6. Trasa doręczanej wiadomości (część 3.)
W naszym prostym przykładzie mogło wystąpić kilka różnic. Na dowolnym etapie jakakolwiek
przejściowa przyczyna mogła chwilowo uniemożliwić doręczenie wiadomości; w takim przy-
padku agent doręczający powiadamia menedżera kolejek, który umieszcza wiadomość w kolej-
ce deferred i ponawia próbę doręczenia w późniejszym terminie. Może też się zdarzyć, że
doel nie będzie faktycznym kontem w systemie, lecz kontem w systemie pocztowym IMAP.
W takim przypadku menedżer kolejek mógłby doręczyć wiadomość za pomocą agenta lmtp
lub przez wyspecjalizowane polecenie skonfigurowane przez agenta doręczającego pipe.


36   |   Rozdział 3. Architektura Postfiksa
Istnieje wiele potencjalnych odmian tego schematu i komplikacji, z którymi Postfix musi so-
bie radzić. Na szczęście architektura systemu jest wystarczająco solidna, aby poradził on so-
bie w niemal każdej sytuacji, oraz wystarczająco elastyczna, by mógł z łatwością dostosować
się do zmian w przyszłości.




                                                             Trasa wiadomości przez Postfix   |   37

More Related Content

More from Wydawnictwo Helion

Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieWydawnictwo Helion
 
USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++Wydawnictwo Helion
 

More from Wydawnictwo Helion (20)

Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanie
 
USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++USB. Praktyczne programowanie z Windows API w C++
USB. Praktyczne programowanie z Windows API w C++
 

Postfix. Przewodnik encyklopedyczny

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TRE CI Postfix. Przewodnik encyklopedyczny KATALOG KSI¥¯EK Autor: Kyle D. Dent KATALOG ONLINE T³umaczenie: Adam Jarczyk ISBN: 83-7361-668-3 ZAMÓW DRUKOWANY KATALOG Tytu³ orygina³u: Postfix. The Definitive Guide Format: B5, stron: 248 TWÓJ KOSZYK Postfix to agent przesy³ania poczty (MTA) — oprogramowanie, którego serwery DODAJ DO KOSZYKA pocztowe u¿ywaj¹ do kierowania poczty elektronicznej. Jego twórc¹ jest znany ekspert w dziedzinie bezpieczeñstwa Wietse Venema. Postfix jest wysoce ceniony przez ekspertów za bezpieczn¹ strukturê i olbrzymi¹ niezawodno æ. Administratorzy ceni¹ go CENNIK I INFORMACJE za prostotê konfiguracji. Z tego w³a nie powodu Postfix zosta³ przyjêty jako domy lny MTA w systemie Mac OS X. Podstawowa konfiguracja Postfiksa jest prosta, lecz ZAMÓW INFORMACJE dostosowanie go do indywidualnych potrzeb okre lonej domeny wymaga wiêkszego O NOWO CIACH nak³adu pracy. „Postfix. Przewodnik encyklopedyczny” to doskona³y przewodnik dla administratorów ZAMÓW CENNIK serwerów pocztowych, u³atwiaj¹cy przej cie od podstawowej konfiguracji do wykorzystania pe³nych mo¿liwo ci Postfiksa. Opisuje sposoby skonfigurowania Postfiksa oraz po³¹czenia go z narzêdziami POP, IMAP, LDAP, MySQL, SASL i TSL CZYTELNIA (zmodernizowana wersja SSL), które tworz¹ wraz z nim w pe³ni skalowalny i bardzo bezpieczny system poczty elektronicznej. Ksi¹¿ka zawiera te¿ zestawienie parametrów FRAGMENTY KSI¥¯EK ONLINE konfiguracyjnych Postfiksa i szczegó³owy opis instalacji. Ka¿de przyk³ad zawiera omówienie, rozwi¹zanie i komentarz, co u³atwia wykorzystanie kodu do w³asnych potrzeb, czêsto ró¿ni¹cych siê od opisywanych w ksi¹¿ce. • Rola Postfiksa w systemie poczty elektronicznej • Dzia³anie poczty elektronicznej • Komponenty Postfiksa • Podstawowa konfiguracja • Administrowanie Postfiksem • Zarz¹dzanie kolejkami • Protoko³y POP, IMAP i LMTP • Obs³uga wielu domen Wydawnictwo Helion • Listy wysy³kowe ul. Chopina 6 • Zabezpieczenia przed spamem 44-100 Gliwice • Uwierzytelnianie i blokowanie tre ci tel. (32)230-98-63 • Wspó³praca z systemami baz danych e-mail: helion@helion.pl „Postfix. Przewodnik encyklopedyczny” to doskona³a pomoc dla wszystkich administratorów serwerów poczty elektronicznej, którzy chc¹ skonfigurowaæ Postfiksa bez przeszukiwania tysiêcy stron dokumentacji.
  • 2. Spis treści Przedmowa ............................................................................................................................... 7 Wstęp ........................................................................................................................................ 9 Rozdział 1. Wprowadzenie......................................................................................................13 Pochodzenie i filozofia Postfiksa 13 Poczta elektroniczna i Internet 14 Rola Postfiksa 17 Postfix i bezpieczeństwo 18 Informacje dodatkowe i źródła Postfiksa 19 Rozdział 2. Wymogi.................................................................................................................21 Unix 21 Poczta elektroniczna 23 Rozdział 3. Architektura Postfiksa......................................................................................... 29 Komponenty Postfiksa 29 Jak wiadomości wchodzą do systemu Postfix? 30 Kolejki 32 Doręczanie poczty 32 Trasa wiadomości przez Postfix 34 Rozdział 4. Podstawy konfiguracji i administracji ................................................................ 39 Pierwsze uruchomienie Postfiksa 40 Pliki konfiguracyjne 41 Ważne punkty konfiguracji 51 Administracja 54 master.cf 57 Limity odbieranych wiadomości 60 Przekształcanie adresów 61 chroot 64 Dokumentacja 66 3
  • 3. Rozdział 5. Zarządzanie kolejkami ........................................................................................ 67 Sposób działania qmgr 67 Narzędzia kolejek 70 Rozdział 6. Email i DNS............................................................................................................77 DNS — wprowadzenie 77 Kierowanie poczty 78 Postfix i DNS 81 Typowe problemy 83 Rozdział 7. Doręczanie lokalne i POP/IMAP ......................................................................... 85 Transporty doręczające w systemie Postfix 85 Formaty magazynów wiadomości 86 Doręczanie lokalne 88 POP i IMAP 90 Protokół LMTP 92 Rozdział 8. Obsługa wielu domen ......................................................................................... 97 Domeny wspólne z kontami systemowymi 98 Domeny odrębne z kontami systemowymi 98 Domeny odrębne z kontami wirtualnymi 99 Osobny magazyn wiadomości 102 Doręczanie do poleceń 103 Rozdział 9. Przekazywanie poczty ...................................................................................... 109 Zapasowe serwery MX 109 Tablice transportów 112 Brama dla poczty wchodzącej 115 Przekaźnik poczty wychodzącej 116 Doręczanie do UUCP, faksu itp. 117 Rozdział 10. Listy wysyłkowe................................................................................................ 119 Proste listy wysyłkowe 119 Programy zarządzające listami wysyłkowymi 123 Rozdział 11. Blokowanie spamu ............................................................................................ 131 Natura spamu 131 Problem spamu 132 Otwarte przekaźniki 132 Wykrywanie spamu 133 Działania antyspamowe 135 Konfiguracja Postfiksa 136 4 | Spis treści
  • 4. Reguły wykrywania klientów 136 Ścisłe ograniczenia składni 147 Kontrola zawartości 148 Własne klasy ograniczeń 151 Przykład konfiguracji antyspamowej Postfiksa 152 Rozdział 12. Uwierzytelnianie SASL .....................................................................................155 SASL — wprowadzenie 156 Postfix i SASL 158 Konfiguracja Postfiksa dla SASL 158 Testowanie konfiguracji uwierzytelniania 163 Uwierzytelnianie klienta SMTP 165 Rozdział 13. Transport Layer Security...................................................................................167 Postfix i TLS 167 Certyfikaty TLS 169 Rozdział 14. Filtrowanie treści .............................................................................................. 177 Filtrowanie przez polecenia 178 Filtrowanie oparte na demonach 180 Inne uwagi 184 Rozdział 15. Zewnętrzne bazy danych ................................................................................ 185 MySQL 186 LDAP 191 Dodatek A Parametry konfiguracyjne ..................................................................................195 Dodatek B Polecenia Postfiksa ..............................................................................................219 Dodatek C Kompilacja i instalacja Postfiksa .........................................................................221 Dodatek D Najczęściej zadawane pytania........................................................................... 233 Skorowidz ............................................................................................................................. 237 Spis treści | 5
  • 5. ROZDZIAŁ 3. Architektura Postfiksa Postfix jest łatwy w zarządzaniu i eksploatacji bez konieczności dogłębnego zrozumienia, jak wszystko w nim działa. Czytelnicy, którzy chcą się od razu zabrać do dzieła, mogą pominąć ten rozdział i przejść prosto do następnego. Przetrawienie całego przedstawionego tu materiału może być trudne, jeśli ktoś nie ma jeszcze doświadczenia z Postfiksem, lecz bieżący rozdział zawiera przegląd różnych jego elementów, co może przydać się przy zaczynaniu pracy z tym programem. Później, po nabraniu większego doświadczenia w pracy z tym programem, Czy- telnik będzie mógł wrócić do tego rozdziału, aby przyswoić sobie więcej szczegółów. Komponenty Postfiksa Architektura Postfiksa różni się znacząco od monolitycznych systemów, takich jak sendmail, który tradycyjnie używa jednego dużego programu do obsługi wiadomości pocztowych. Po- stfix dzieli zadania na odrębne funkcje, stosując osobne programy do wykonywania jednego konkretnego zadania. Większość z tych programów stanowią demony — procesy działające w systemie w tle. Najpierw uruchamiany jest główny demon master, który w miarę potrzeb wywołuje większość innych procesów. Demony Postfiksa wywoływane przez master przetwa- rzają przydzielone im zadania i kończą działanie. Mogą też zakończyć pracę po upłynięciu określonego czasu lub po obsłużeniu ustalonej maksymalnej liczby żądań. Demon master jest obecny (rezydentny) cały czas i pobiera swoje dane konfiguracyjne z plików main.cf i master.cf. Pliki konfiguracyjne Postfiksa omawia rozdział 4. Rysunek 3.1 przedstawia ogólny schemat architektury Postfiksa. Krótko mówiąc, Postfix od- biera wiadomości, kolejkuje je i w końcu doręcza. Każdym etapem procesu zajmuje się od- rębny zbiór komponentów Postfiksa. Po odebraniu wiadomości i umieszczeniu jej w kolejce menedżer kolejki wywołuje odpowiedniego agenta doręczającego w celu ostatecznego do- starczenia wiadomości. Następne punkty rozdziału opisują szczegóły każdego z etapów. Rysunek 3.1. Ogólna architektura systemu Postfix 29
  • 6. Jak wiadomości wchodzą do systemu Postfix? Wiadomość wchodzi do Postfiksa na jeden z czterech sposobów: 1. Wiadomość może zostać przyjęta przez Postfix lokalnie (wysłana przez użytkownika w tym samym komputerze). 2. Wiadomość może zostać przyjęta poprzez sieć. 3. Wiadomość, którą Postfix przyjął już przez jedną z innych metod, zostaje ponownie zgłoszo- na do przekazania dalej pod inny adres. 4. Postfix sam generuje wiadomości, gdy musi wysłać powiadomienia o nieudanych lub odło- żonych próbach doręczenia wiadomości. Zawsze istnieje możliwość, że wiadomość zostanie odrzucona przed wejściem do systemu Po- stfix, lub że część wiadomości zostanie wstrzymanych do doręczenia później. Lokalne zgłaszanie wiadomości Poszczególne składniki Postfiksa współpracują ze sobą przez zapisywanie wiadomości do ko- lejki i odczytywanie ich z kolejki. Menedżer kolejek jest odpowiedzialny za zarządzanie wia- domościami w kolejce i powiadamianie właściwego komponentu, że ma zadanie do wykonania. Rysunek 3.2 ilustruje przepływ, gdy lokalna wiadomość email wchodzi do systemu Postfix. Lokalne wiadomości są zapisywane do katalogu maildrop kolejki Postfiksa poleceniem postdrop, zwykle poprzez program dopasowujący sendmail. Demon pickup odczytuje wiadomość z kolej- ki i wprowadza ją do demona cleanup. Niektóre wiadomości przychodzą bez kompletu nagłów- ków wymaganych w poprawnej wiadomości email. Wobec tego poza kontrolą poprawności logicznej wiadomości demon cleanup, w połączeniu z demonem trivial-rewrite, wsta- wia brakujące nagłówki wiadomości, przekształca adresy na format użytkownik@domena.tld, którego oczekują inne programy Postfiksa, oraz ewentualnie dokonuje translacji adresów na podstawie tablic wyszukiwań adresów kanonicznych lub wirtualnych (więcej informacji o ta- blicach wyszukiwań zawiera rozdział 4.). Rysunek 3.2. Lokalne zgłaszanie wiadomości 30 | Rozdział 3. Architektura Postfiksa
  • 7. Demon cleanup przetwarza całość przychodzącej poczty i powiadamia menedżera kolejek, gdy już umieści oczyszczoną wiadomość w kolejce wejściowej. Menedżer kolejek wywołuje wtedy odpowiedniego agenta doręczającego, aby wysłać wiadomość w następne miejsce na trasie do ostatecznego celu. Poczta z sieci Rysunek 3.3 ilustruje sytuację, gdy wiadomość email z sieci wchodzi do systemu Postfix. Wiado- mości odebrane przez sieć są przyjmowane przez demona Postfiksa smtpd. Demon ten prze- prowadza kontrolę poprawności logicznej i może być skonfigurowany tak, że będzie pozwalał klientom przekazywać pocztę lub nie. Demon smtpd przekazuje wiadomość do demona cle- anup, który przeprowadza własne kontrole i zapisuje wiadomość w kolejce wejściowej. Na- stępnie menedżer kolejek wywołuje odpowiedniego agenta doręczającego w celu wysłania wiadomości w następne miejsce na trasie do celu. Rysunek 3.3. Poczta z sieci Powiadomienia o poczcie Gdy wiadomość użytkownika jest odroczona lub nie może zostać doręczona, Postfix używa demona defer lub bounce do utworzenia nowej wiadomości o błędzie. Wiadomość ta zostaje przekazana do demona cleanup, który przeprowadza standardową kontrolę przed wstawie- niem wiadomości o błędzie do kolejki wejściowej, gdzie przejmuje ją menedżer kolejki. Przekazywanie dalej poczty Czasami po przetworzeniu wiadomości email Postfix ustala, że adres docelowy w rzeczywi- stości wskazuje na inny adres w innym systemie. W tym momencie program mógłby po pro- stu przekazać wiadomość do klienta SMTP w celu bezpośredniego doręczenia, lecz aby za- gwarantować, że każdy odbiorca będzie poprawnie przetworzony i zarejestrowany, Postfix zgłasza ją jako nową wiadomość, która jest obsługiwana jak każda inna lokalnie zgłoszona wiadomość. Jak wiadomości wchodzą do systemu Postfix? | 31
  • 8. Kolejki Menedżer kolejek w Postfiksie wykonuje większość pracy z przetwarzaniem wiadomości ema- il. Ostatecznym zadaniem komponentów Postfiksa przyjmujących pocztę jest przekazanie wiadomości do menedżera kolejek. Służy do tego demon cleanup, który powiadamia mene- dżera kolejek o umieszczeniu nowej wiadomości w wejściowej kolejce wiadomości. Po otrzyma- niu nowej wiadomości menedżer kolejek używa trivial-rewrite do ustalenia informacji o trasie: metody transportowej, która ma zostać użyta, następnego hosta, gdzie ma zostać do- ręczona, oraz adresu odbiorcy. Menedżer kolejek utrzymuje cztery różne kolejki: wejściową (incoming), aktywną (active), wiadomości odroczonych (deferred) i uszkodzonych (corrupt). Po początkowym procesie oczyszczania kolejka wejściowa jest pierwszym przystankiem dla nowych wiadomości. Jeśli zasoby systemu są dostępne, menedżer przenosi ją do kolejki aktywnej i wywołuje jeden z agen- tów doręczających. Wiadomości, których nie można doręczyć, są przenoszone do kolejki wia- domości odroczonych. Menedżer kolejek jest też odpowiedzialny za generowanie, współpracując z demonami boun- ce i defer, raportów o stanie doręczenia wiadomości sprawiających problemy. Powiadomie- nia takie są odsyłane do nadawcy, do administratora systemu lub do obu. Oprócz katalogów kolejek wiadomości katalog kolejki Postfiksa zawiera katalogi bounce i defer służące do prze- chowywania informacji o stanie wiadomości wskazujących, dlaczego konkretna wiadomość jest opóźniona lub niedoręczalna. Demony bounce i defer używają informacji zapisanych w tych katalogach do generowania swoich powiadomień. Rozdział 5. zawiera bardziej szcze- gółowe informacje o funkcjonowaniu menedżera kolejek. Doręczanie poczty Postfix do ustalania, dla których adresów docelowych może przyjmować wiadomości i w jaki sposób ma się odbyć doręczenie, wykorzystuje koncepcję klas adresów. Główne klasy adresów to local (lokalny), virtual alias (alias wirtualny), virtual mailbox (wirtualna skrzynka pocztowa) i relay (przekazanie). Pod adresy docelowe niezaliczające się do żadnej z tych klas wiadomo- ści są doręczane poprzez sieć za pomocą klienta SMTP (zakładając, że wiadomość została odebrana przez autoryzowanego klienta). W zależności od klasy adresu menedżer kolejek wywołuje odpowiedniego agenta doręczającego do obsłużenia wiadomości. Doręczanie lokalne Agent doręczający local obsługuje pocztę przeznaczoną dla użytkowników z kontami powło- kowymi w systemie, w którym Postfix jest uruchomiony. Nazwy domen dla doręczania lokal- nego zawiera parametr mydestination. Wiadomości wysyłane do użytkownika w dowolnej z domen wymienionych w mydestination doręczane są bezpośrednio do konta powłokowego tego użytkownika. W najprostszym przypadku agent doręczający local zapisuje wiadomość email w lokalnym magazynie wiadomości. Kontroluje też aliasy i pliki .forward użytkowników, aby sprawdzić, czy lokalne wiadomości powinny zostać doręczone gdzieś indziej. Doręczanie lokalne zostało opisane bardziej szczegółowo w rozdziale 7. 32 | Rozdział 3. Architektura Postfiksa
  • 9. Gdy wiadomość ma zostać doręczona w inne miejsce, zostaje ponownie zgłoszona do Post- fiksa w celu doręczenia pod nowy adres. Jeśli występują tymczasowe problemy w doręczeniu wiadomości, agent doręczający powiadamia menedżera kolejek, aby ten oznaczył wiadomość jako przeznaczoną do doręczenia później i zapisał ją w kolejce wiadomości odroczonych. Trwałe problemy powodują odbicie wiadomości przez menedżera kolejek z powrotem do pierwot- nego nadawcy. Wiadomości dla adresów wirtualnych Wszystkie wiadomości dla aliasów wirtualnych są przekazywane dalej pod inne adresy. Na- zwy domen aliasów wirtualnych wymienione są w parametrze virtual_alias_domains. Każda domena ma własny zbiór użytkowników, którzy nie muszą być unikatowi we wszyst- kich domenach. Użytkownicy i ich prawdziwe adresy są wymienione w tablicach wyszuki- wań wymienionych w parametrze virtual_alias_maps. Wiadomości odebrane dla wirtual- nych aliasów są ponownie zgłaszane do doręczenia pod rzeczywiste adresy. Więcej informacji na temat aliasów wirtualnych zawiera rozdział 8. Wiadomości dla wirtualnych skrzynek pocztowych Agent doręczający virtual obsługuje pocztę skierowaną pod adresy wirtualnych skrzynek pocztowych. Takie skrzynki pocztowe nie są kojarzone z konkretnymi kontami powłokowy- mi w systemie. Nazwy domen dla wirtualnych skrzynek pocztowych zawiera parametr vir- tual_mailbox_domains. Każda domena ma własny zbiór użytkowników, którzy nie muszą być unikatowi we wszystkich domenach. Użytkownicy i ich pliki skrzynek pocztowych są wymienione w tablicach wyszukiwań podanych w parametrze virtual_mailbox_maps. Wię- cej informacji na temat wirtualnych skrzynek pocztowych zawiera rozdział 8. Przekazywanie wiadomości Agent doręczający smtp obsługuje pocztę dla domen przekazywania. Adresy email w dome- nach przekazywania mieszczą się w innych systemach, lecz Postfix przyjmuje wiadomości dla takich domen i przekazuje je do właściwych systemów. Konfigurację przekaźników spo- tyka się powszechnie w miejscach, gdzie Postfix przyjmuje pocztę przez Internet i przekazuje ją do systemów w wewnętrznej sieci. Nazwy domen przekazywania wymienia parametr re- lay_domains. Dodatkowe informacje na temat przekazywania zawiera rozdział 9. Inne wiadomości Wiadomości niepasujące do żadnej z powyższych klas adresów przeznaczone są zasadniczo dla innych domen, mieszczących się gdzieś indziej w sieci. Postfix przyjmuje takie wiadomo- ści tylko od autoryzowanych klientów, na przykład zainstalowanych w tej samej sieci lokalnej. Gdy wiadomość trzeba doręczyć poprzez sieć, menedżer kolejek wywołuje agenta doręczają- cego smtp. Ten ustala, który host lub które hosty mogą odebrać wiadomość i nawiązuje ko- lejno połączenie z każdym z nich, dopóki nie znajdzie hosta, który przyjmie wiadomość. Jeśli występują tymczasowe problemy z doręczeniem wiadomości, agent smtp powiadamia me- nedżera kolejek, że wiadomość powinna zostać oznaczona do doręczenia później i zapisana w kolejce wiadomości odroczonych. Trwałe problemy mogą spowodować odbicie wiadomości z powrotem do nadawcy. Doręczanie poczty | 33
  • 10. Gdy system docelowy, który był niedostępny, wraca online, Postfix stara się nie przytłoczyć go wszystkimi oczekującymi wiadomościami. Przy doręczaniu wiadomości uprzednio odło- żonych lub nowych Postfix najpierw nawiązuje ograniczoną (konfigurowalną) liczbę połączeń z systemem odbierającym pocztę. Po wykryciu pomyślnego doręczenia wiadomości pod kon- kretny adres hosta program zaczyna powoli zwiększać liczbę równoległych połączeń z nim (aż do skonfigurowanego maksimum). Jeśli Postfix wykryje jakiekolwiek problemy ze strony odbiorcy, natychmiast ogranicza szybkość doręczania. Inne agenty doręczające System Postfix zawiera jeszcze inne agenty doręczające, które można skonfigurować do ob- sługi wiadomości dla konkretnej klasy lub miejsca przeznaczenia. Inne agenty doręczające muszą być skonfigurowane w pliku master.cf. Są one wywoływane albo przez parametr kla- sa_transport, albo przez wpis w tablicy transportów wskazanej przez parametr transport_ maps. Dwoma popularnymi alternatywnymi agentami doręczającymi są lmtp i pipe. Doręczanie poprzez LMTP Protokół LMTP przypomina SMTP, lecz służy do doręczania wiadomości pomiędzy systemami pocztowymi w tej samej sieci (dodatkowe informacje na temat LMTP zawiera rozdział 7.). Na przykład, jeśli wiadomość musi zostać doręczona do innego pakietu oprogramowania, który może być uruchomiony w tym samym komputerze lub w innym systemie w sieci lokalnej, menedżer kolejek wywołuje agenta doręczającego lmtp. Najczęściej spotykanym przypadkiem użycia LMTP jest sytuacja, gdy serwer POP/IMAP przechowuje wiadomości w formacie nie- standardowym (pamiętajmy, że POP i IMAP są protokołami służącymi użytkownikom do odbierania wiadomości). W tym przypadku serwer POP/IMAP ma własny format do zapi- sywania i przechowywania wiadomości, więc Postfix używa standardu LMTP do przekaza- nia wiadomości do serwera POP/IMAP. Jeśli występują problemy z doręczeniem wiadomo- ści, agent lmtp powiadamia menedżera kolejek, że wiadomość powinna zostać oznaczona do doręczenia później i zapisana w kolejce wiadomości doręczonych. Doręczanie potokowe Postfix oferuje opcję doręczania wiadomości do innego programu przez demona pipe, który doręcza wiadomości do zewnętrznych poleceń. Typowym zastosowaniem demona pipe jest doręczanie poczty do zewnętrznego filtra treści lub innego medium komunikacyjnego, na przykład urządzenia faksu. Jeśli występują problemy z doręczeniem wiadomości, demon pi- pe powiadamia menedżera kolejek, że wiadomość powinna zostać oznaczona do doręczenia później i zapisana w kolejce wiadomości odłożonych. Trasa wiadomości przez Postfix Prześledźmy typową drogę wiadomości poprzez system Postfix. Rysunki 3.4, 3.5 i 3.6 ilustrują proces przechodzenia wiadomości od systemu nadawcy do docelowego MTA, który z kolei przekazuje wiadomość do finalnego MTA, gdzie wiadomość jest przechowywana, dopóki użytkownik nie będzie gotów do jej odczytania. Na rysunku 3.4 Helena (helene@oreilly.com) chce wysłać wiadomość do Franka (frank@postfix.org). Helena ma konto w systemie z zain- stalowanym serwerem Postfix. Klient pocztowy pozwala jej napisać wiadomość, a następnie 34 | Rozdział 3. Architektura Postfiksa
  • 11. Rysunek 3.4. Trasa doręczanej wiadomości (część 1.) wywołuje polecenie Postfiksa sendmail do wysłania wiadomości. Polecenie to odbiera wia- domość od programu pocztowego Heleny i zapisuje w katalogu maildrop. Następnie demon pickup pobiera wiadomość, sprawdza jej poprawność logiczną i wprowadza wiadomość do demona cleanup, który przetwarza ją ostatecznie. Gdyby klient pocztowy Heleny nie podał adresu From: lub nie użył pełnej nazwy hosta w adresie, demon cleanup wprowadziłby nie- zbędne poprawki w wiadomości. Po zakończeniu pracy cleanup umieszcza wiadomość w kolejce incoming i powiadamia me- nedżera kolejek, że nowa wiadomość jest gotowa do doręczenia. Jeśli menedżer kolejek jest gotowy do przetwarzania nowych wiadomości, to przenosi wiadomość do kolejki active. Ponieważ wiadomość jest przeznaczona dla użytkownika w zewnętrznym systemie, mene- dżer kolejek musi wywołać agenta smtp, aby zajął się doręczeniem. Agent smtp, korzystając z usługi DNS (patrz rozdział 6.), pobiera listę systemów pocztowych, które mogą przyjmować pocztę dla domeny postfix.org. Agent smtp wybiera najbardziej pre- ferowanego hosta MX z listy i kontaktuje się z nim, aby doręczyć wiadomość Heleny. Rysunek 3.5 przedstawia serwer pocztowy Franka w postfix.org, również używający systemu Postfix, aczkolwiek system ten może korzystać z dowolnego innego MTA zgodnego ze standar- dami. Demon Postfiksa smtpd w serwerze Franka odbiera wiadomość od agenta doręczające- go smtp Heleny. Gdy demon zweryfikuje, że w rzeczy samej powinien przyjąć tę wiadomość, przekazuje ją przez demona cleanup, który przeprowadza swoją kontrolę przed zapisaniem wiadomości w kolejce incoming. Menedżer kolejek przenosi wiadomość do kolejki active, wykonuje własne zadania przetwa- rzania i ustala, że powinien wywołać agenta local, aby ostatecznie doręczyć wiadomość. Agent doręczający local ustala, że frank jest aliasem i ponownie zgłasza wiadomość poprzez demona cleanup do doręczenia pod nowy adres. Trasa wiadomości przez Postfix | 35
  • 12. Rysunek 3.5. Trasa doręczanej wiadomości (część 2.) Zarówno cleanup, jak i menedżer kolejek wywołują przy przetwarzaniu wiadomości demona trivial-rewrite. Pomaga on konwertować adresy email do standardowego formatu i usta- lać typ transportu oraz następne miejsce na trasie doręczenia. Gdy nowa wiadomość musi zostać doręczona do innej sieci, menedżer kolejek wywołuje smtp. Ten szuka w DNS-ie serwerów pocztowych, które mogą przyjąć pocztę dla domeny onlamp. com. Na rysunku 3.6 MTA w systemie onlamp.com (szczęśliwym zbiegiem okoliczności to też jest system Postfix) w końcu przekazuje wiadomość do agenta doręczającego local, który zapisuje ją w magazynie wiadomości w tym systemie. Na tym etapie Postfix zakończył swoje zadanie. Frank może teraz odczytać wiadomość, używając własnego klienta pocztowego, który może pobrać wiadomość wprost z lokalnego magazynu lub użyć innego protokołu, np. POP lub IMAP, aby pobrać wiadomość do odczytania. Rysunek 3.6. Trasa doręczanej wiadomości (część 3.) W naszym prostym przykładzie mogło wystąpić kilka różnic. Na dowolnym etapie jakakolwiek przejściowa przyczyna mogła chwilowo uniemożliwić doręczenie wiadomości; w takim przy- padku agent doręczający powiadamia menedżera kolejek, który umieszcza wiadomość w kolej- ce deferred i ponawia próbę doręczenia w późniejszym terminie. Może też się zdarzyć, że doel nie będzie faktycznym kontem w systemie, lecz kontem w systemie pocztowym IMAP. W takim przypadku menedżer kolejek mógłby doręczyć wiadomość za pomocą agenta lmtp lub przez wyspecjalizowane polecenie skonfigurowane przez agenta doręczającego pipe. 36 | Rozdział 3. Architektura Postfiksa
  • 13. Istnieje wiele potencjalnych odmian tego schematu i komplikacji, z którymi Postfix musi so- bie radzić. Na szczęście architektura systemu jest wystarczająco solidna, aby poradził on so- bie w niemal każdej sytuacji, oraz wystarczająco elastyczna, by mógł z łatwością dostosować się do zmian w przyszłości. Trasa wiadomości przez Postfix | 37