ZMailer - instalacja i konfiguracja
(C) 1998 Jan Rychter

Niniejszy artyku mona kopiowa i rozprowadza wycznie w caoci na
zasadach licencji GNU w wersji 2 lub dowolnej pniejszej wersji.

Dla "Magazynu Linux/UNIX", wrzesie/98
$Id: zmailer-pl.txt,v 1.1 1999/05/20 16:07:31 wiget Exp $



ZMailer - co to jest ?


ZMailer jest szybkim i bezpiecznym MTA (Mail Transfer Agent) dla
systemw UNIX. Zajmuje si rozsyaniem i przekazywaniem poczty
elektronicznej, otrzymanej od programw MUA (Mail User Agent) takich jak
mutt, pine, elm, od procesorw list dyskusyjnych (majordomo, petidomo,
listserv) lub od innych maszyn w sieci. Odgrywa w systemie rol podobn
do powszechnie znanego i stosowanego programu sendmail, rni si jednak
od niego znacznie na korzy jeeli chodzi o bezpieczestwo i
wydajno. Warto pozna ten program, chociaby dlatego, e mona w ten
sposb zyska zupenie inne spojrzenie na przetwarzanie poczty
elektronicznej pod UNIXem.


Po co ? Spojrzenie praktyka.


Narzuca si pytanie: po co waciwie w ogle interesowa si innym MTA
ni sendmail, skoro ten jest standardowo instalowany w wikszoci
Linuxw ? Odpowiedzi moe by wiele. Najlepszym powodem jest rnica w
wydajnoci. Sendmail ma powane ograniczenia jeeli chodzi o prdko
przetwarzania poczty, wynikajce z jego architektury. Eksperci znajcy
si doskonale na konfiguracji sendmaila potrafi obej do pewnego
stopnia niektre z tych ogranicze, jest to jednak trudne, niewygodne i
nadal nie rozwizuje w peni problemu. ZMailer za to od pocztku by
projektowany ze specjalnym naciskiem na wydajno. Jest tak pomylany,
by jak najmniej obciajc maszyn na ktrej dziaa, przekaza jak
najwicej listw w jak najkrtszym czasie.

Dobrym praktycznym przykadem instalacji, gdzie sendmail si nie
sprawdzi, a ZMailer rozwiza problemy, jest system dystrybucji list
dyskusyjnych z maszyny vger.rutgers.edu (midzy innymi lista
linux-kernel). Pocztkowo na vger dziaa sendmail, bezporednio
rozsyajcy nowe listy do wszystkich zapisanych na listy dyskusyjne. Po
przekroczeniu pewnej iloci osb korzystajcych z list, zaczy si
pojawia problemy z rozsyaniem. Opnienia zaczy siga tygodnia.
Wprowadzony zosta nieco ulepszony system tzw. "mail exploders". Polega
on na tym, e vger.rutgers.edu cz pracy przekazuje innym maszynom:
adresami z domeny .com zajmuje si inny komputer ni adresami z
.net. Sam vger.rutgers.edu wie, e wszystkie listy dla domen .com ma
posa jednemu "exploderowi". Zajmuje si te rozesaniem wszystkich
listw dla ktrych nie ma zdefiniowanego "explodera". System ten nieco
poprawi sytuacj, jednak obcienie vger.rutgers.edu byo nadal zbyt
due. Dopiero wymiana programu sendmail na ZMailer pomoga - i to na
tyle dobrze, e do dzi system dziaa bez problemw.

ZMailer jest te stosowany na wielu innych maszynach majcych do
przetworzenia olbrzymie iloci poczty -- dobrymi przykadami s
np. ftp.funet.fi albo SunSITE.icm.edu.pl.


Czy to nie jest to samo co sendmail ?


ZMailer od sendmaila rni si diametralnie. Jedyne co pozostaje
podobne, to rola jak oba programy speniaj w systemie. Najwiksz
praktyczn rnic pomidzy nimi jest sposb przetwarzania kolejek i
listw przeznaczonych dla wielu adresatw. Sendmail otrzymawszy do
rozesania list zaadresowany do kilkuset osb z caego wiata (czste w
przypadku list dyskusyjnych) zajmie si przetwarzaniem go
sekwencyjnie. Najpierw sprbuje pierwszego adresu, potem
nastpnych. Jeeli ktry okae si nieprawidowy, spowoduje opnienie
i wszystkie nastpne bd musiay poczeka. W praktyce opnienie
pomidzy otrzymaniem listu przez pierwszego adresata a ostatniego
potrafi siga paru dni (!).

Dla odrnienia, ZMailer najpierw analizuje nagwki listu i rozkada go
na wiele kolejek przetwarzania (wedug zdefiniowanych przy konfiguracji
zasad). Oznacza to, e list zaadresowany do kilkuset osb zostanie
rozdzielony na od kilku do kilkudziesiciu kanaw, z ktrych kady
bdzie przetwarzany sekwencyjnie. Dla wyej wspomnianego skrajnego
przypadku (gdy sendmailowi rozesanie listu zajmowao kilka dni) po
instalacji ZMailera czas ten skrci si do kilku minut.


Czy tego samego nie potrafi QMail ?


QMail jest w wielu aspektach podobny do ZMailera. Podobnie jak on zosta
zaprojektowany cakowicie od nowa, czerpic z dowiadcze innych. Jest
rwnie bardzo nastawiony na wydajno -- po bezpieczestwie jest ona
nastpn najbardziej reklamowan zalet QMaila. Trudno jest obiektywnie
stwierdzi, czy ktrykolwiek z nich jest lepszy pod wzgldem
technicznym. Prawdopodobnie w realnej pracy rnice bd
niewielkie. QMail jest za to nielubiany przez wielu z powodu do
restrykcyjnej licencji oraz nieco dziwnego podejcia autora programu do
specyfikacji RFC (Internetowych Request For Comments, czyli
pformalnych standardw obowizujcych w sieci). QMail implementuje z
RFC to, co autor uzna za stosowne -- reszt odrzuca. Powoduje to, e
czasem zachowuje si w sposb inny od wszystkich innych programw MTA i
niekoniecznie stosuje si do wszystkich standardw.


Architektura


ZMailer nie jest programem monolitycznym. Skada si z wielu procesw,
wsppracujcych ze sob. Trzy z nich s najwaniejsze i pracuj w
systemie praktycznie cay czas:

  smtpserver -- zajmuje si suchaniem na porcie TCP 25 i przyjmowaniem
  przychodzcych t drog listw. Potrafi te wstpnie filtrowa poczt,
  odrzucajc t niechcian (spam, reklamy). Poniewa odrzuca poczt
  jeszcze na etapie przyjmowania jej, listy takie nie zajmuj ani miejsca
  na dysku ani pasma sieciowego.

  router -- przetwarza nagwki poczty. Pobiera poczt ktr przyj
  smtpserver, bd t ktr dosta do wysania lokalnie od jakiego MUA,
  nastpnie przeglda i ewentualnie przepisuje (modyfikuje) nagwki,
  sprawdza istnienie adresw w DNS, rozwija aliasy oraz tworzy
  odpowiedni plik kontrolny. Routerw w systemie moe by kilka (z
  reguy cztery), dla przyspieszenia przetwarzania poczty i uniknicia
  opnie wprowadzanych przez DNS.

  scheduler -- zleca rozsyanie poczty. Czyta pliki kontrolne stworzone
  przez router, rozdziela poczt na kanay przetwarzania (kolejki), oraz w
  odpowiednim czasie uruchamia programy TA celem dostarczenia poczty.

Ponadto, istnieje pewna liczba "transfer agents" (TA) ktre zajmuj si
dostarczaniem poczty rnymi protokoami. Przykadami s: smtp
(dostarcza poczt protokoem SMTP), mailbox (dostarcza do lokalnych
skrzynek pocztowych), sm (konfigurowalny osobno TA kompatybilny z
sendmailem pozwalajcy np. na tworzenie bramek mail2news lub spicie z
programem Cyrus IMAP), errormail (zajmuje si dostarczeniem komunikatw
o bdach, jest bardziej wraliwy na moliwe problemy i ptle pocztowe)
itp.

Warto zauway, e w powyszej licie jedynym programem ktry musi by
uruchomiony z prawami roota (uid 0) jest smtpserver -- musi on
nasuchiwa na porcie 25, a to wymaga praw roota. Caa reszta systemu
moe pracowa np. jako uytkownik nobody i w naprawd bezpiecznych
instalacjach tak wanie si to konfiguruje. Znakomicie podnosi to
bezpieczestwo caego systemu, gdy ogranicza si moliwoci wamania do
jednego programu, ktry jest dokadnie pod wzgldem bezpieczestwa
zbadany. Ponadto, warto zauway, e smtpserver nie musi by wykonywalny
przez lokalnych uytkownikw. Odcina to kolejn klas wama poprzez
uruchamianie programw "setuid root" z nieprawidowymi opcjami. Midzy
innymi wanie dlatego okrela si ZMailer jako program bezpieczny.

Dla odrnienia sendmail zawiera si w jednym procesie (programie),
ktry robi wszystko, zalenie od opcji z jakimi si go
uruchomi. Musi on by uruchamiany z prawami roota (uid 0) z tych samych
powodw co smtpserver w ZMailerze. W tym przypadku jednak moliwoci na
wykorzystanie ewentualnych dziur jest znacznie wicej -- szczeglnie e
sendmail jest programem uruchamianym przez lokalnych uytkownikw w
systemie i bardzo trudno jest tego unikn.


... a konkretniej ?


Obszar roboczy ZMailera (spool, postoffice) podzielony jest na kilka
podkatalogw. Najwaniejsze z nich to:

  public/ -- w tym katalogu uytkownicy mog tworzy poczt do wysania.
  Z reguy zajmuje si tym program MUA uytkownika uruchamiajc program
  /usr/lib/sendmail, ktry jest podstawion przez ZMailera emulacj
  sendmaila.

  router/ -- do tego katalogu poprzez operacj rename() przerzucana jest
  (atomicznie) poczta z katalogu public. Poczta nigdy nie jest tu
  tworzona, aby unikn sytuacji w ktrej proces router zauwayby i
  zacz przetwarza list, ktry nie zosta jeszcze do koca utworzony
  (skopiowany).

  queue/, transport/ -- katalogi robocze suce do rozsyania poczty. Gdy
  router zakoczy przetwarzanie nagwkw poczty, przenosi (rwnie
  uywajc rename()) list z katalogu router/ do queue/, za w transport/
  tworzy plik kontrolny dla tego listu. Katalog transport/ oglda proces
  scheduler, zlecajc rozesanie listw w odpowiednim czasie.

Istniej te katalogi freezer/ i postman/, su one do specjalnych
celw. W katalogu freezer/ pojawia si poczta ktr smtpserver
podejrzewa o bycie niepodan (element konfiguracji
anty-spammingowych). Zatrzymana jest do obejrzenia i ew. posania
dalej. W katalogu postman/ zapisywane s listy, ktre absolutnie nie
mog by dostarczone z powodu nadmiernych iloci bdw, nie mog te
by zwrcone do nadawcy (przypadki raczej patologiczne).


Instalacja


Oprogramowanie znale mona w katalogu
ftp://SunSITE.icm.edu.pl/pub/unix/mail/zmailer/src/. W chwili pisania
tego artykuu najnowsz wersj ZMailera bya wersja 2.99.50-s5. By moe
gdy pismo ukae si w druku, bdzie ju od dawna oczekiwana wersja
3.0. Oprogramowanie naley rozpakowa np. w /usr/src i wej do
utworzonego podkatalogu. Warto te w tym momencie zerkn na
dokumentacj dostpn pod adresem http://www.zmailer.org/.

ZMailer przygotowywany jest do kompilacji przy uyciu programu GNU
autoconf, wic w zasadzie wystarczy napisa ./configure; make aby go
skompilowa. Warto jednak przyjrze si niektrym dostpnym opcjom
configure:

--prefix=/katalog -- umiejscawia drzewo katalogw ZMailera. Pod tym
katalogiem zostanie utworzonych kilka innych. Znajd si tam zarwno
programy wykonywalne, jak i pliki konfiguracyjne ZMailera. Polecam
ustawienie --prefix=/local/lib/mail (gdzie /local jest linkiem do
/usr/local).

--with-mailbox=/katalog -- gdzie znajduj si skrzynki E-pocztowe
uytkownikw do ktrych ma by dostarczana lokalna poczta. Z reguy w
Linuxie jest to katalog /var/spool/mail.

--with-postoffice=/katalog -- gdzie ZMailer ma przetwarza poczt
(tzw. spool). Jest to katalog, gdzie utworzone bd podkatalogi: public,
router, transport, queue. Standardowo zaleca si /var/spool/postoffice.

--with-logdir=/katalog -- gdzie maj by umieszczane logi ZMailera.

--with-selfaddresses= -- adresy na ktrych smtpserver ma nasuchiwa na
porcie 25. Podawane w formacie [10.2.1.1],[127.0.0.1].

--with-sendmailpath= -- gdzie ma zosta umieszczony podmieniony program
sendmail (emulujcy lokalnie prawdziwego sendmaila i sucy do
wysyania poczty).

--with-ipv6 -- wczenie wsparcia dla IP w wersji szstej.

Warto zwrci uwag na poprawne wpisanie wszystkich adresw IP na
ktrych smtpserver ma sucha. W przypadku komputera z jednym adresem
nie stanowi to problemu, jednak jeli maszyna ma kilka adresw, naley
wpisa je wszystkie.

Po napisaniu ./configure z odpowiednimi opcjami ZMailer powinien by
gotowy do kompilacji. Sam kompilacj uruchamia si komend make,
zainstalowa program mona przez make install. Warto zwrci uwag, czy
podczas instalacji nie pracuje proces sendmail. Najlepiej wczeniej po
prostu usun sendmail z systemu, nie bdzie ju do niczego potrzebny.


Cig dalszy: konfiguracja -- w nastpnym odcinku.

[ stopka:

RG Studio zajmuje si doradztwem Linux/UNIX, instalacjami systemw,
utrzymaniem i zabezpieczaniem istniejcych instalacji, oraz sprzeda
specjalizowanego sprztu zwizanego z Linuxem: kart frame-relay Sangoma
Technologies i Emerging Technologies, mikroserwerw Cobalt Qube firmy
Cobalt Networks, pyt gwnych i procesorw Samsung Alpha, a take kart
wieloportowych Cyclades i sprztu Gigabit Ethernet firmy Packet
Engines. Kontakt: E-poczta: info@rgstudio.com.pl, WWW:
http://www.rgstudio.com.pl/, Adres: RG Studio, Limanowskiego 23, 02-934
Warszawa, Tel./Fax.: (22) 6516638.

Z autorem mona skontaktowa si pod adresem: Jan Rychter
<jwr@rgstudio.com.pl>

]



ZMailer - instalacja i konfiguracja, cz 2
(C) 1998 Jan Rychter

Niniejszy artyku mona kopiowa i rozprowadza wycznie w caoci na
zasadach licencji GNU w wersji 2 lub dowolnej pniejszej wersji.

Dla "Magazynu Linux/UNIX", wrzesie/98
$Id: zmailer-pl.txt,v 1.1 1999/05/20 16:07:31 wiget Exp $

 [ ZMailer jest szybkim i bezpiecznym MTA (Mail Transfer Agent) dla
   systemw UNIX. Zajmuje si rozsyaniem i przekazywaniem poczty
   elektronicznej, otrzymanej od programw MUA (Mail User Agent) takich jak
   mutt, pine, elm, od procesorw list dyskusyjnych (majordomo, petidomo,
   listserv) lub od innych maszyn w sieci. Odgrywa w systemie rol podobn
   do powszechnie znanego i stosowanego programu sendmail, rni si jednak
   od niego znacznie na korzy jeeli chodzi o bezpieczestwo i
   wydajno. W poprzedniej czci opisana zostaa jego architektura i
   sposb kompilacji, w tej zajm si instalacj i konfiguracj. ]


Instalacja, uruchamianie


Sama instalacja poprawnie skompilowanego ZMailera sprowadza si w
zasadzie do wydania komendy "make install". Reszta powinna przebiega
automatycznie. Warto jednak zwrci uwag na zainstalowanie poprawnego
skryptu startujcego ZMailer przy starcie systemu i zatrzymujcego go
przy wyczaniu systemu. Nie bdzie on skomplikowany, gdy poprawnym
uruchomieniem (i zatrzymaniem) wszystkich procesw ZMailera zajmuje si
jego wasny skrypt "zmailer". Dla cieek podanych w poprzedniej czci
artykuu znajdzie si on w katalogu /local/lib/mail/bin.

Uruchomienie ZMailera odbywa si wic poprzez:

/local/lib/mail/bin/zmailer

za zatrzymanie poprzez:

/local/lib/mail/bin/zmailer kill

Warto zwrci uwag, e wieloprocesowa architektura ZMailera umoliwia
zatrzymywanie i uruchamianie poszczeglnych jego czci, bez wpywu na
dziaanie pozostaych. Przydatne warianty to na przykad:

 -- zmailer kill router -- zatrzymanie procesu router. System bdzie
    nadal przyjmowa poczt (zajmuje si tym smtpserver) i wysya ju
    przetworzon poczt (co z kolei nadzoruje scheduler).
 -- zmailer kill scheduler -- system bdzie przyjmowa poczt i
    przetwarza j, ale nie bdzie rozsya ani dostarcza
    lokalnie. Szczeglnie przydatne dla systemw ktre tylko czasowo s
    podczane do Internetu, ZMailer z wyczonym schedulerem zachowuje si
    podobnie jak sendmail z opcj "queueonly".
 -- zmailer kill smtpserver -- system bdzie przetwarza poczt
    znajdujc si ju w kolejkach, a take j rozsya, nie przyjmie za to
    nic nowego poprzez SMTP. Przydatne w (rzadkich) przypadkach
    przecienia.

Kady z procesw mona oczywicie uruchomi, komendami:
    zmailer router
    zmailer scheduler
    zmailer smtpserver

Rzecz jasna okrelenie "proces" jest w tym kontekcie umowne, gdy
np. procesw typu "router" moe w systemie by wiele.


Routing poczty


Pierwszym krokiem przy konfiguracji ZMailera jest zapewnienie mu
odpowiedniego pliku konfiguracyjnego dla procesu "router". Standardowa
konfiguracja "SMTP+UUCP.cf" z pewnoci wystarczy dla wikszoci
przypadkw. Naley ten plik skopiowa (lub podlinkowa) do katalogu
/local/lib/mail (lub innego w ktrym zainstalowany zosta ZMailer) pod
nazw "router.cf". Przy pierwszym uruchomieniu ZMailer "skompiluje"
sobie ten plik do zoptymalizowanej postaci, ktrej nada nazw
"router.fc".

Nastpnie naley zajrze do katalogu /local/lib/mail/db. Znajduje si
tam plik "routes", pocztkowo zawierajcy tylko komentarze. Suy on do
konfiguracji "routingu" poczty elektronicznej. Pojcie to jest nieco
nietypowe dla innych MTA ni ZMailer, stanowi jednak bardzo wygodny
mechanizm do konfigurowania niestandardowego rozprowadzania poczty.

Poszczeglne linie w pliku "routes" s w postaci:

nazwa    kana!komu_przekaza

"nazwa" dopasowywana jest do czci adresu po znaku "@", przy czym mona
uywa nazw .domena dla oznaczenia wszystkiego co ta domena zawiera.

"kana" odpowiada odpowiedniemu kanaowi skonfigurowanemu w pliku
"scheduler.conf".

Znaczenie parametru "komu_przekaza" zaley od rodzaju kanau. Dla
"smtp" jest to po prostu adres nastpnej maszyny ktrej naley przekaza
poczt.

Przykad:

.pl             smtp!smtp-gw.rgstudio.com.pl
.rgstudio       smtps!intranet.rgstudio.com.pl

Powysze linie oznaczaj, e poczta z adresami koczcymi si na .pl
przekazana zostanie maszynie "smtp-gw.rgstudio.com.pl", za poczta z
adresami .rgstudio (wewntrzna domena, nie istniejca w Internecie)
komputerowi "intranet", ale przez specjalny kana "smtps"
(skonfigurowany w "scheduler.conf" i zapewniajcy szyfrowanie). Kady
inny list bdzie traktowany indywidualnie, komputer ktry konfigurujemy
bdzie go sam prbowa wysa w wiat.

Naley pamita, e cay plik "routes" musi by zawsze posortowany,
wcznie z komentarzami.


Nazwy kanoniczne


Plik /local/lib/mail/db/localnames jest odpowiednikiem pliku
"sendmail.cw" w konfiguracji sendmaila. Daje jednak nieco wicej
moliwoci, gdy specyfikuje si w nim rozwinicia lokalnych nazw
komputera, uywane pniej przy przepisywaniu nagwkw i dostarczaniu
poczty.

Przykadowo:

intranet                 intranet.rgstudio.com.pl
intranet-gw              intranet.rgstudio.com.pl
intranet.rgstudio.com.pl intranet.rgstudio.com.pl
localhost                intranet.rgstudio.com.pl
localhost.localdomain    intranet.rgstudio.com.pl

W tym przykadzie maszyna o nazwie kanonicznej
"intranet.rgstudio.com.pl" odbiera bdzie jako przeznaczon dla siebie
poczt adresowan na wszystkie nazwy wystpujce po lewej stronie. Nawet
w przypadku gdy otrzyma poczt adresowan dla "intranet-gw", cae dalsze
przetwarzanie bdzie si odbywa tak samo, jakby bya adresowana dla
"intranet".

Naley pamita, e podobnie jak plik "routes", cay plik "localnames"
musi by zawsze posortowany, wcznie z komentarzami.


Aliasy, aliasy FQDN


Plik definiujcy aliasy w ZMailerze znajduje si (w naszej instalacji) w
katalogu /local/lib/mail/db. Odwieenie bazy aliasw odbywa si po
wykonaniu komendy "newaliases". Warto zwrci uwag na to, by zostaa
wykonana waciwa komenda "newaliases", ta z katalogu z binariami
ZMailera. Czsto przez przeoczenie pozostaje w systemie "newaliases" z
programu sendmail.

Warto te przyjrze si sposobowi definiowania aliasw w ZMailerze. Nie
jest on identyczny do tego z sendmaila. W szczeglnoci, ZMailer wymaga
by prawe strony bardziej skomplikowanych aliasw wystpoway w
cudzysowach. Dla przykadu:

autoanswer: "|/local/lib/mail/bin/autoanswer.pl"
lista-outgoing: ":include:/local/majordomo/lists/lista"
staff: "jwr,mk"

Lewa strona wszystkich aliasw powinna by zoona wycznie z maych
liter, nie mona te definiowa aliasw zawierajcych znak
kropki. Jedynym sposobem na dostarczanie poczty na adresy rodzaju
"Imi.Nazwisko@domena" w ZMailerze jest baza "fullnames".

Baz "fullnames" tworzy si w prosty sposb. Jest to plik (w naszej
instalacji w katalogu "/local/lib/mail/db") "fullnames", zawierajcy
pary "Imi.Nazwisko: login". Do odwieania suy komenda "newaliases
fullnames". Tak utworzona baza jest automatycznie wykorzystywana przy
nastpnym uruchomieniu procesu "router".

Ciekawym mechanizmem jest baza "fqdnaliases". Do tych aliasw
przychodzca poczta dopasowywana jest przed jakimkolwiek innym
przetwarzaniem. Pozwalaj one midzy innymi na obsug "domen
wirtualnych" w do prosty sposb:

uzytkownik@inna-domena.com.pl: lokalny-uzytkownik@rgstudio.com.pl

Oczywicie jedynie "lokalny-uzytkownik" musi istnie lokalnie, za
"uzytkownik" bdzie istnie tylko z adresem
"uzytkownik@inna-domena.com.pl. Wysanie poczty na adres
"uzytkownik@rgstudio.com.pl" zakoczy si bdem. Do odwieania tej
bazy suy komenda "newfqdnaliases".

W ZMailerze istnieje te rozbudowany mechanizm definiowania bardzo
szybko przetwarzanych list dyskusyjnych (z automatycznie definiowanymi i
rozpoznawanymi aliasami lista-owner, lista-request itp), o ktrym by
moe napisz w jednym z kolejnych artykuw. Jest on znacznie
optymalniejszy i atwiejszy w uyciu ni definiowanie list na wzr
programu "sendmail" (dyrektywa ":include:").


Konfiguracja dostarczania poczty


ZMailer pozwala na daleko idce konfigurowanie sposobu dostarczania
poczty. Poczta w systemie dzielona jest na tzw. kanay, ktrych
przetwarzaniem zajmuje si proces "scheduler". Uruchamia on odpowiednie
programy dostarczajce poczt ("transfer agents").

Dokadny opis pliku konfiguracyjnego "scheduler.conf" wykracza niestety
poza ramy tego artykuu, przytocz wic jedynie dwa do przydatne
przykady:

smtp/*.pl
        expiry=7d
        maxta=60
        command="smtp -s"

Ten przykad przedua czas przez jaki prbujemy dostarczy poczt do
siedmiu dni, pozwala te na uruchomienie a do 60 (!) rwnolegle
pracujcych procesw dostarczajcych poczt. Wszystko to tylko dla
adresw w domenie .pl, pozostae adresy przetwarzane s zgodnie ze
standardowymi parametrami.

local/*
        expiry=3d
        command="sm -8c $channel cyrus"

W tym przypadku wymieniamy lokalny program dostarczajcy poczt na "sm"
(o ktrym dalej) z parametrem "cyrus". Cyrus-IMAP jest to system
przeznaczony dla wikszych providerw internetowych, pozwala na atw i
wydajn obsug duych iloci kont E-pocztowych z dostpem poprzez
protok IMAP.


Kompatybilno z programem "sendmail"


ZMailer zawiera dwa istotne elementy suce do zapewnienia zgodnoci z
programem "sendmail". Jeden, to sam program o nazwie "sendmail",
zapewniajcy wikszo opcji z linii komend prawdziwego sendmaila i
pozwalajcy na bezbolesne wpicie ZMailera w istniejce systemy. Suy
on do wysyania poczty lokalnie.

Drugim takim elementem jest program ("transfer agent") o nazwie
"sm". Pozwala on na definiowanie lokalnych sposobw dostarczania poczty
w sposb podobny do sendmaila. Jego plikiem konfiguracyjnym jest
"sm.conf", w ktrym definiowa mona przykadowo:

# wyej wspomniane poczenie z systemem Cyrus-IMAP
cyrus   Pn      /usr/cyrus/bin/deliver          deliver -e -m $h -- $u
# procmail jako program dostarczajcy poczt lokalnie
procm   sSPfn   /usr/local/bin/procmail         procmail -a $h -d $u

Pierwszy parametr to nazwa kanau, odpowiada ona wpisowi w polu
"command" odpowiedniej sekcji "scheduler.conf". Pozostae parametry
wzorowane s na konfiguracji programu sendmail.


Kontrola przekazywania poczty ("relaying")


Aby zabezpieczy si przed nieoczekiwanym wykorzystaniem naszego systemu
jako otwartego przekanika pocztowego ("open mail relay") przez firmy
rozsyajce masowo niechcian reklam (spam), warto poprawnie
skonfigurowa zasady na jakich nasz system poczt bdzie
przekazywa. Suy do tego zestaw plikw "smtp-policy.*" (w naszej
instalacji w katalogu /local/lib/mail/db). Podstawowym plikiem jest
"smtp-policy.src", z ktrego generowana jest baza reguek antyspamowych.
Dokadny opis wszystkich moliwoci filtrowania poczty oraz stosowanego
algorytmu nie zmieciby si w ramach tego artykuu, poprzestan wic na
opisaniu pokrtce kilku przykadw. Peen algorytm i sporo przykadw
podanych jest w pliku "smtp-policy.src".

Najistotniejsz rzecz jest zdefiniowanie standardowej polityki naszego
systemu odnonie przekazywania poczty. Zaleca si dwie nastpujce
linijki:

.                     relaycustomer - relaytarget - senderokwithdns +
[0.0.0.0]/0           relaycustomer - relaytarget - senderokwithdns +

Oznaczaj one, e o ile dalej nie wyspecyfikujemy inaczej, nie pozwalamy
na adne przekazywanie poczty przez nasz system oraz wymuszamy
sprawdzanie istnienia domeny wysyajcego w DNS. Rzecz jasna system
nadal bdzie przyjmowa poczt zaadresowan do siebie (czyli do maszyn i
domen zapisanych w pliku localnames) oraz pozwala na wysyanie poczty
od siebie do caego wiata.

Do odwieania bazy regu anti-relay suy skrypt
"policy-builder.sh". Warto zmodyfikowa go nieco do wasnych
potrzeb. Oryginalny (w rdach ZMailera) uywa programu "lynx" by
cign z sieci list adresw i domen znanych z rozsyania reklam do
pliku "smtp-policy.spam". Uywa te plikw "localnames",
"smtp-policy.relay" i "smtp-policy.mx" do wygenerowania uproszczonej
konfiguracji. Polityka przyjmowania i przekazywania poczty na kadym
systemie jest inna, warto wic spdzi troch czasu nad poprawnym i
starannym skonfigurowaniem tego.

Wszelkie decyzje podjte na temat przyjmowanej poczty bd zapisane
przez proces "smtpserver" w jego logach (w naszej instalacji:
"/var/log/mail/smtpserver"), wraz z komunikatami jakie zostay odesane
czcym si klientom w przypadku odrzucenia.


Podsumowanie


Szczegowe opisanie moliwoci konfiguracji ZMailera wymagaoby caej
serii artykuw, z koniecznoci wic ograniczyem si do opisania tylko
podstawowych opcji. Jest to program ktry pozwala na bardzo duo, jest
te o wiele logiczniejszy w konfiguracji ni sendmail (szczeglnie jzyk
skryptw routera poczty).

Istnieje moliwo (jeli bdzie zainteresowanie) przeduenia cyklu
artykuw o ZMailerze i szerszego opisania (wraz z przykadami)
konkretnych aspektw jego konfiguracji, lub konkretnych rozwiza
(przykadowo: ZMailer+Cyrus, ZMailer+listy dyskusyjne na du skal,
ZMailer+filtrowanie poczty przez RBL -- Realtime Black Hole). Piszcie do
redakcji na adres <redakcja@tao.com.pl> -- dajcie zna co sdzicie o
artykuach ktre ju si pojawiy i o czym chcielibycie przeczyta.


[ stopka:

RG Studio zajmuje si doradztwem Linux/UNIX, instalacjami systemw,
utrzymaniem i zabezpieczaniem istniejcych instalacji, oraz sprzeda
specjalizowanego sprztu zwizanego z Linuxem: kart frame-relay Sangoma
Technologies i Emerging Technologies, mikroserwerw Cobalt Qube firmy
Cobalt Networks, pyt gwnych i procesorw Samsung Alpha, a take kart
wieloportowych Cyclades i sprztu Gigabit Ethernet firmy Packet
Engines. Kontakt: E-poczta: info@rgstudio.com.pl, WWW:
http://www.rgstudio.com.pl/, Adres: RG Studio, Limanowskiego 23, 02-934
Warszawa, Tel./Fax.: (22) 6516638.

Z autorem mona skontaktowa si pod adresem: Jan Rychter
<jwr@rgstudio.com.pl>

]



