[ Pobierz całość w formacie PDF ]









Rozdział 40.
Konfigurowanie poczty









E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\40.DOC              647









Rozdzia³ 40. ¨ Konfigurowanie poczty              647

Tim Parker

W tym rozdziale:

u                                          Jak działa poczta elektroniczna             

u                                          Konfigurowanie programu sendmail             

u                                          Używanie programu sendmail w wersji 8             

u                                          smail             

u                                          Modyfikacja zachowania smail             

System obsługi poczty elektronicznej w Linuxie składa się z dwóch warstw: agenta poczty, czyli programu, którego używasz do wysyłania i odbierania poczty (ang. MUA, Mail User Agent), i warstwy systemowej (ang. MTA, Mail Transport Agent), która obsługuje procesy wysyłania i nadawania wiadomości.

Najpopularniejsze w systemach linuxowych programy typu MTA to sendmail i smail. Programów typu MUA są dziesiątki i tylko do Ciebie należy wybór tego najodpowiedniejszego. Program sendmail oparty jest na systemie poczty opracowanym w Uniwersytecie Kalifornijskim w Berkley. Dostępnych jest kilka jego wersji, różniących się nieco możliwościami. Drugi dość powszechnie używany program o nazwie smail opracowany został przez Curta Nolla i Ronalda Karra. Również ten program jest dostępny w kilku wersjach.

Programy sendmail i smail rozprowadzane są wraz z większością dystrybucji Linuxa, co może nieco zakłopotać użytkownika nie wiedzącego, na który system powinien się zdecydować. W przypadku niewielkich systemów (jakimi zwykle są komputery linuxowe, również te podłączone do sieci) oba te programy działają równie dobrze. Pod pewnymi względami smail jest nieco łatwiejszy w konfigurowaniu, głównie dlatego, że jest nowszy. Mimo to sendmail jest bardziej elastyczny i lepiej sprawdza się w większych systemach.

Jak działa poczta elektroniczna

Kiedy piszesz list czy wiadomość za pomocą jednego z programów do obsługi poczty, takiego jak np. Elm, Pine czy mail, aplikacja przekazuje jego treść do programu MTA, takiego jak sendmail lub smail. W systemie może działać kilka takich programów (na przykład jeden do obsługi sieci lokalnej i drugi do UUCP), ale zwykle dla wygody używa się tylko jednego. Ściślej rzecz ujmując, wiadomość nie jest przekazywana bezpośrednio do programu MTA, ale do programu rmail (nazwa ta jest zwykle tylko aliasem nazwy jednego z tych programów).

Jeśli wiadomość adresowana jest do kogoś w sieci lokalnej (lub w tym samym systemie), MTA powinien to zauważyć na podstawie adresu. MTA musi również rozpoznawać i tłumaczyć aliasy, dzięki którym możliwe jest adresowanie sieci, systemów czy użytkowników za pomocą różnych identyfikatorów. Jeśli wiadomość jest przeznaczona dla użytkownika innej sieci, MTA musi umieć nawiązać połączenie z komputerem, który przekaże pocztę dalej. Połączenie to może być oparte zarówno na TCP, jak i UUCP. Jeśli połączenie realizowane jest za pomocą TCP, często używa się protokołu SMTP (Simple Mail Transfer Protocol). MTA musi również radzić sobie z takimi problemami, jak niemożność dostarczenia poczty z powodu błędnego adresu komputera czy użytkownika – w takim przypadku poczta musi być albo zignorowana, albo lepiej odesłana do nadawcy.

Routing (czyli kierowanie drogą dostarczenia) poczty jest również ważnym aspektem pracy programów MTA i różni się w zależności od użytego schematu adresowania. Jeśli adres jest oparty na protokole TCP (czyli ma postać nazwy domenowej), MTA próbuje dostarczyć pocztę bezpośrednio do komputera docelowego w oparciu o adres IP, pozostawiając routing oprogramowaniu sieciowemu wchodzącemu w skład systemu TCP/IP.

Konfigurowanie programu sendmail

Najczęściej używanym programem typu MTA jest sendmail, rozprowadzany z większością dystrybucji Linuxa. Jest to system niebywale potężny i elastyczny, co niestety powoduje, że nie jest najłatwiejszy w konfiguracji i utrzymaniu. Mimo to skonfigurowanie go do prostych zadań jest całkiem łatwe, o czym przekonasz się, czytając ten rozdział. Jeśli wybrałeś właśnie ten program, zawarte tu informacje powinny wystarczyć dla skonfigurowania systemu poczty w dowolnej sieci (może za wyjątkiem najbardziej skomplikowanych).

Ze względu na swoją złożoność sendmail jest często dostarczany razem z programem użytkowym o nazwie IDA pod wspólną nazwą sendmail+IDA. Program IDA znacznie upraszcza konfigurację programu sendmail, dlatego jest bardzo często używany w systemach linuxowych. Dzięki niemu sendmail staje się najprostszym w użyciu programem do obsługi transportu poczty.

 

Jeśli w Twoim systemie zainstalowany jest tylko program sendmail, warto rozważyć załadowanie pakietu sendmail+IDA z któregoś z węzłów FTP lub BBS. Oferowane przez ten pakiet udogodnienia z nawiązką wynagrodzą trud włożony w załadowanie odpowiednich plików. Wiele dystrybucji oferuje program sendmail w wersji 8, do którego zwykle nie jest dodawany program IDA. Informacji o najświeższych wersjach programu sendmail i IDA szukaj w węzłach BBS i FTP.

System sendmail (bez programu IDA) przechowuje większość informacji konfiguracyjnych w pliku /etc/sendmail.cf (lub, w niektórych systemach, /usr/lib/sendmail.cf). Język używany w tym pliku różni się zupełnie od innych plików konfiguracyjnych i jest stosunkowo złożony. Zresztą obejrzyj ten plik za pomocą programu more i sam spróbuj domyślić się, o co w nim chodzi.

Plik sendmail.cf zawiera dane o czynnościach podejmowanych domyślnie przez system sendmail. Inne pliki służące do konfiguracji tego programu to:

u                                          decnexttable: zamienia ogólne adresy na adresy DECnet;

u                                          genericfrom: zamienia adresy wewnętrzne na ogólne;

u                                          mailertable: określa reguły specjalnego traktowania serwerów i domen;

u                                          pathtable: definiuje ścieżki UUCP do zdalnych komputerów i domen;

u                                          uucpxtable: wymusza dostarczanie poczty z adresem DNS za pomocą UUCP;

u                                          uucprelays: umożliwia „skróty” do komputerów zdalnych;

u                                          xaliases: zamienia adresy ogólne na wewnętrzne.

Każdemu z tych plików przyjrzymy się nieco bardziej szczegółowo dalszej części tego rozdziału. Jak już wspomniano, pliki te trudno modyfikować ręcznie. Użycie programu IDA znacznie poprawia sytuację, ponieważ umożliwia on skonfigurowanie systemu sendmail przez podanie odpowiednich opcji.

System sendmail+IDA za pomocą preprocesora takiego jak m4 lub dbm generuje na podstawie wprowadzonych danych odpowiednie pliki konfiguracyjne.

Plik sendmail.cf

W przypadku użycia programu sendmail+IDA, plik sendmail.cf nie jest edytowany ręcznie. Jest on generowany po zakończeniu konfiguracji. Cała procedura konfiguracyjna opiera się na danych zapisanych w pliku sendmail.m4, zawierającym podstawowe takie informacje, jak nazwa systemu, specyficzne ścieżki dostępu, nazwa domyślnego programu obsługi poczty itp. Choć plik ten może stać się dość długi, w większości instalacji używających do przesyłania poczty protokołów UUCP lub SMTP wystarczy wprowadzić do niego tylko podstawowe informacje.

Jedną z ważniejszych sekcji w pliku sendmail.m4 jest sekcja określająca położenie plików i katalogów. Zwykle zaczyna się ona od wiersza definiującego zmienną LIBDIR, który może mieć następującą postać:

 

dnl #define(LIBDIR, /usr/local/lib/mail)

Katalog LIBDIR określa miejsce, gdzie sendmail+IDA szuka plików konfiguracyjnych i tablic kierowania przepływem danych (ang. routing tables). Zwykle modyfikacja wartości domyślnej nie jest konieczna, ponieważ jest ona ogólnie przyjęta w systemach linuxowych. Jeżeli ścieżka zapisana w pliku sendmail.m4 jest prawidłowa, nie należy jej zmieniać. Jest ona zwykle również na stałe zapisana w pliku wykonywalnym programu sendmail i nie musi być nadpisywana przez plik sendmail.m4 (czy generowany na jego podstawie plik sendmail.cf). Jeśli musisz zmienić tę wartość, powinieneś usunąć z początku wiersza tekst dnl, który jest znacznikiem komentarza, wprowadzić odpowiednią dla Twojego systemu ścieżkę i ponownie wygenerować plik sendmail.cf.

Program dostarczający pocztę jest określony wartością zmiennej LOCAL_MAILER_DEF, której definicja może mieć postać:

 

define (LOCAL_MAILER_DEF, mailers.linux)dnl

Wiersz ten jest potrzebny, ponieważ sendmail nie zajmuje się dostarczaniem poczty. Dba o to inny program. Domyślnie używany jest program zdefiniowany w pliku mailers.linux, którym prawie zawsze jest deliver. Powinieneś jednak na wszelki wypadek sprawdzić, co zawiera plik mailers.linux (zapisany w tym samym katalogu, co plik sendmail.m4, czyli zwykle /usr/local/lib/mail). Typowo jego zawartość jest następująca:

 

#mailers.linux
Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u
Mprog, P=/bin/sh, F=lsDFMeuP, S=10, A=sh –c $u

Nazwa programu dostarczającego pocztę musi być również wprowadzona do pliku Sendmail.mc, który jest używany do generowania pliku sendmail.cf. Jeśli używasz programu innego niż deliver, powinieneś również tam skorygować odpowiedni wpis (jeśli używasz programu deliver, nie musisz przejmować się zawartością tego pliku). Plik Sendmail.mc jest wczytywany przy przetwarzaniu pliku sendmail.m4, za co odpowiada znajdujący się zwykle na początku pliku sendmail.m4 wiersz

 

include(Sendmail.mc)dnl

Możliwe, że będziesz musiał dodać kilka wartości do definicji zmiennej PSEUDODOMAINS, używanej do obsługi systemów nie posiadających nazwy domenowej, na przykład dostępnych przez UUCP. Odpowiednie ustawienie wartości tej zmiennej zapobiega próbie tłumaczenia tych nazw przez DNS (co zawsze kończy się niepowodzeniem). Odpowiedni wiersz może mieć następującą postać:

 

define(PSEUDODOMAINS, BITNET UUCP)dnl

Można również użyć zmiennej PSEUDONYMS, pozwalającej na ukrycie nazwy Twojego komputera przed światem zewnętrznym. Oznacza to np. że bez względu na to, czy poczta została wysłana z systemu merlin.tpci.com czy chatton.tpci.com, odbiorca otrzyma tylko adres tpci.com – nazwy komputerów lokalnych zostały ukryte. Jeśli wartość tej zmiennej jest zdefiniowana, sendmail przyjmuje pocztę od wszystkich maszyn w sieci lokalnej, np. definicja:

 

define(PSEUDONYMS, tpci.com)dnl

pozwala wszystkim komputerom w sieci tpci.com wysyłać pocztę za pośrednictwem systemu sendmail.

Aby określić nazwę komputera lokalnego, należy odpowiednio ustawić wartość zmiennej DEFAULT_HOST. Zwykle nazwa ta pokrywa się z nazwą serwera poczty (lub Twojego komputera, jeśli nie jesteś podłączony do sieci). Poniższy wiersz określa nazwę domyślnego serwera poczty:

 

define(DEFAULT_HOST, merlin.tpci.com)dnl

Jeśli nie ustawisz wartości tej zmiennej, poczta nie będzie prawidłowo zwracana do Twojego systemu.

Jeśli system nie pracuje jako bramka internetowa (albo do innej sieci dostępnej z sieci lokalnej), można skonfigurować go tak, by cała poczta była przesyłana do innego komputera, który powinien rozesłać ją dalej. Zrobić to można ustawiając wartości zmiennych RELAY_HOST (zmienna ta określa nazwę komputera, do którego ma być przekazywana poczta) i RELAY_MAILER (określa protokół używany do transportu poczty do tego komputera). Aby na przykład przesyłać pocztę do systemu o nazwie wizard, można zdefiniować wartości tych zmiennych w następujący sposób:

 

define(RELAY_HOST, wizard)dnl
define(RELAY_MAILER, UUCP-A)dnl

Położenie tablic konfiguracyjnych

W pliku sendmail.m4 znajdują się wiersze określające położenie tablic konfiguracyjnych. Zwykle znajdują się one w katalogu określonym przez wartość zmiennej LIBDIR. Ta sekcja pliku może wyglądać tak:

 

define(ALIASES, LIBDIR/aliases)dnl
define(DOMAINTABLE, LIBDIR/domaintable)dnl

i tak dalej dla pozostałych plików (zwykle jest ich około siedmiu). Możesz zmienić te wartości, jeśli chcesz przenieść odpowiednie pliki w inne miejsce. Najlepiej jednak pozostawić je tam, gdzie są.

Plik decnexttable używany jest do tłumaczenia nazw domenowych na nazwy w standardzie DECnet. Jest to pozostałość po wcześniejszych wersjach programu sendmail i prawdopodobnie nigdy nie przyda się użytkownikowi systemu linuxowego (chyba że pracuje on w systemie DECnet).

Plik domaintable używany jest do wymuszania wykonania pewnych poleceń po użyciu DNS. Plik ten, prawie nigdy nie używany w Linuxie, pozwala na rozwijanie nazw skróconych. Załóżmy na przykład, że często wysyłasz pocztę do komputera o nazwie okropnie_dluga_nazwa.w_okropnie_duzej_sieci.com i nie masz ochoty wpisywać jej za każdym razem. Możesz umieścić w pliku domaintable wpis

 

...

[ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • agatka34212.pev.pl