Mercurial > docs > diploma
view docs/maciej-patelczyk_masqmail_pl.txt @ 195:ff55d3d6fbca
minor restructuring
author | meillo@marmaro.de |
---|---|
date | Wed, 31 Dec 2008 13:58:26 +0100 |
parents | d5f1b6da1000 |
children |
line wrap: on
line source
DebianUsers.pl (beta) Ślad: » MasqMail -- szybkie wprowadzenie Start Artykuły Tips & Tricks Wideo Wyszukaj w serwisie Archiwum Spis treści • Streszczenie • Prawa autorskie • Spis treści • 1. O programie • 2. Konfiguracja • 2.1. Plik masqmail.conf • 2.2. Wysyłanie poczty • 2.3. Pobieranie poczty • 3. MasqMail w systemie • 4. Podsumowanie • 5. Pliki konfiguracyjne • Dyskusja drukuj wersja do wydruku MasqMail -- szybkie wprowadzenie Maciej Patelczyk <maf@ubik.zamek.gda.pl> Streszczenie MasqMail jest serwerem poczty zaprojektowanym dla hostów nie posiadających stałego połączenia z siecią Internet, takich jak proste sieci komputerowe, czy pojedyncze komputery, łączące się z Internetem poprzez modem. Program potrafi obsługiwać połączenia do różnych dostawców Internetu (ang. ISP – Internet Services Provider). Jest zamiennikiem dla programu Sendmail, czy innych serwerów pocztowych (ang. MTA – Mail Transfer Agent), takich jak Qmail czy Exim. Może również służyć jako klient POP3. Takiej treści wstęp widnieje na stronie podręcznika systemowego do programu. Trafiłem na niego szukając w Debianie jakiegoś serwera poczty dla hosta łączącego się z Internetem poprzez modem. Nie miałem ochoty konfigurować serwera Exim, więc szukałem czegoś innego. Po przeczytaniu opisu, MasqMail wydał mi się idealny dla moich potrzeb. Prawa autorskie Copyright (C) 2003 Maciej Patelczyk. All rights reserved. Udziela się zgody na kopiowanie, rozpowszechnianie i/lub modyfikowanie tego dokumentu zgodnie z zasadami Licencji Wolnej Dokumentacji (GNU Free Documentation Licence) w wersji 1.1 lub jakiejkolwiek późniejszej wersji opublikowanej przez Fundację Wolnego Oprogramowania (Free Software Foundation). Kopię tej licencji można znaleźć na stronach Fundacji Wolnego Oprogramowania. Spis treści 1. O programie2. Konfiguracja2.1. Plik masqmail.conf2.2. Wysyłanie poczty2.3. Pobieranie poczty3. MasqMail w systemie4. Podsumowanie5. Pliki konfiguracyjne 1. O programie MasqMail został oryginalnie napisany przez Olivera Kurtha, zaś Gregor Hoffleit przystosował program do wymogów dystrybucji i przygotował dla niej paczkę. MasqMail jest bardzo prostym serwerem pocztowym. Nie warto go stosować, jeżeli host jest na stałe podłączony do Internetu. Jako serwer pocztowy, potrafi rozsyłać wiadomości przy pomocy protokołu SMTP/ESMTP, a jako program do pobierania poczty obsługuje protokoły POP3 i APOP. Ponieważ MasqMail miał być przede wszystkim zamiennikiem dla programu Sendmail, to używa podobnych jak on opcji wywołania, choć nie wszystkie z nich są jednak zaimplementowane. MasqMail doskonale nadaje się do zastosowania w laptopach i domowych komputerach, łączących się od czasu do czasu z Siecią poprzez modem. Sprawdza się również jako serwer poczty dla małych sieci komputerowych nie posiadających stałego łącza z Internetem. Działając jako serwer poczty przyjmuje pocztę, kolejkuję ją, a gdy wykryje połączenie z Internetem, to natychmiast stara się ją rozesłać. Potrafi określić czy adresat (host) należy do wewnętrznej sieci, a jeżeli tak, to nie będzie jej kolejkował, tylko niezwłocznie wyśle. 2. Konfiguracja Główny plik konfiguracyjny programu to plik ”/etc/masqmail/masqmail.conf”. W pliku tym, oprócz głównych ustawień programu, opisuje się sposoby zachowania się serwera w zależności od używanego dostawcy Internetu. Można w nim określić kto może wysyłać pocztę, do jakich hostów i za pomocą jakiego połączenia to robi. 2.1. Plik masqmail.conf Pierwszą rzeczą jaką zwykle się konfiguruje jest nazwa hosta: host_name="host.domena.pl" Następnie określane są te hosty, które będą traktowane jako lokalne, czyli należące do lokalnej sieci komputerowej. Podaje się tutaj listę, w której separatorem jest ”';'”. local_hosts="host;host.domena.pl;localhost" Później informujemy serwer, aby nasłuchiwał na odpowiednich portach: listen_addresses="nazwa_hosta:25;localhost:25" Możemy również określić, na jaki port będą wysyłane wiadomości: remote_port=25 Katalog, w którym umieszczona będzie kolejka wiadomości i temu podobne określa się za pomocą zmiennej „spool_dir”: spool_dir="/var/spool/masqmail" Katalog, w którym zapisywane będą lokalne wiadomości wskazuje zmienna „mail_dir”: mail_dir="/var/mail" Program może samodzielnie zapisywać zdarzenia lub może do tego celu użyć demona „syslogd”. Ustawienie zmiennej na ”'true'” powoduje, iż wszelkie zdarzenia loguje „syslogd”: use_syslog=false Trzeba jeszcze ustawić katalog, w którym zapisywane będą logi: log_dir="/var/log/masqmail" Ustawienie poniższej zmiennej na ”'true'” powoduje, że wiadomości nie będą natychmiastowo wysyłane, ale kolejkowane i rozsyłane przy następnym cyklu: do_queue=false Trzeba również skonfigurować sposób w jaki serwer będzie wykrywał stan online. Najprościej do tego celu wykorzystać metodę „file”. online_detect = file online_file = "/tmp/connect_route" Przy połączeniu z Siecią, skrypt startowy znajdujący się w katalogu ”/etc/ppp/ ip-up.d” utworzy zadany plik, którego zawartością będzie nazwa dostawcy Internetu, za pośrednictwem którego nastąpiło połącznie. Przy rozłączeniu plik ten zostanie skasowany. Potrzebne jest również ustawienie sposobu lokalnego dostarczenia poczty (na przykład po ściągnięciu ze skrzynki). Najprościej zrobić to w następujący sposób: mda="/usr/bin/procmail -Y -d ${rcpt_local}" Oczywiście program „procmail” musi być zainstalowany. Dalsze sekcje zawierają konfigurację aliasów, którą tutaj pominę. Więcej szczegółów na ten temat można znaleźć w dostępnej dokumentacji. Ostatnią rzeczą do skonfigurowania w pliku „masqmail.conf” jest przyporządkowanie poszczególnym dostawcom Internetu określonych zachowań serwera, które opisane są w osobnych plikach. Wysyłaniem poczty poprzez jedno połączenie może sterować jeden lub kilka plików „route”. Można utworzyć listę, której separatorem jest znak ”';'”. connect_route.nazwa_połączenia = "/etc/masqmail/nazwa_połączenia.route" lub connect_route.foo = "/etc/masqmail/foo.route;/etc/masqmail/bar.route" Choć nazwy plików mogą być dowolne, to warto się jednak trzymać schematu: nazwa pliku odpowiada nazwie dostawcy Internetu, natomiast „connect_route.nazwa_połączenia” musi dokładnie odpowiadać nazwie zestawionego połączenia. Serwer odczyta bowiem nazwę połączenia z pliku ”/tmp/connect_route” i będzie próbował znaleźć odpowiedni wpis w ”/etc/masqmail/masqmail.conf”. Przy pobieraniu poczty poprzez MasqMail należy jeszcze skonfigurować, skąd pobierać pocztę: get.nazwa_połączenia = /etc/masqmail/nazwa_konta.get Jeżeli poczta będzie ściągana z więcej niż jednego konta, to wpis należy po prostu zwielokrotnić, zmieniając nazwy plików: get.nazwa_połączenia = /etc/masqmail/konto_1.get get.nazwa_połączenia = /etc/masqmail/konta_2.get Jeżeli wywołamy MasqMail z argumentem ”-g”, to zacznie on po kolei pobierać pocztę według podanej kolejności. 2.2. Wysyłanie poczty Aby móc wysyłać pocztę przy użyciu MasqMaila, potrzeba skonfigurować przynajmniej jeden plik „route”. Poniżej zamieszczona jest minimalna potrzebna konfiguracja. MasqMail umożliwia łącznie się z różnymi dostawcami Internetu, zaimplementowano więc w nim mechanizm pozwalający określać, jaki użytkownik może wysyłać pocztę danym połączeniem. Jeżeli nie jest to istotne lub połączenie odbywa się tylko poprzez jednego dostawcę, to wystarczy podstawić wartość pustą. Przed wysłaniem poczty sprawdzana jest lokalna część adresu i na tej podstawie podejmowana jest decyzja. allowed_mail_locals = "janek;tadek;kasia" lub gdy nie ma ograniczeń: allowed_mail_locals = "" Innym kryterium jest lista niedozwolonych domen. Można ustalić, czy za pomocą danego połączenia można wysyłać pocztę do określonych domen. Można podać listę, w której akceptowane są znaki ”'*'” oraz ”'?'”. Separatorem jak zwykle jest znak ”';'”. not_allowed_rcpt_domains = "*.foo.bar" Trzeba też określić, czy serwer ma rozsyłać pocztę bezpośrednio do każdego hosta, czy też cała poczta ma wędrować do innego serwera pocztowego, najczęściej będącego w posiadaniu dostawcy Internetu. Generalnie lepiej przesłać całą pocztę do innego serwera i niech tamten się martwi, co dalej z nią zrobić. Nie ustawienie zmiennej „mail_host” powoduje, iż poczta będzie rozsyłana bezpośrednio do adresatów. mail_host = "mail.isp.pl" Ustawienie wartości zmiennej „do_correct_helo” na ”'true'” powoduje, że w komunikacie HELO/EHLO wysyłana jest nazwa hosta taka, jaka jest widziana z zewnątrz sieci. Niektórzy dostawcy przy połączeniu nadają łączącym się hostom oprócz adresu IP również nazwę. Zarówno adres jak i nazwa mogą być znane tylko w obrębie sieci danego dostawcy, dlatego wysyłając taką nazwę serwerowi pocztowemu, który sprawdza, czy dany host istnieje można spotkać się z odmową przyjęcia poczty. Warto zatem ustawić tę zmienną: do_correct_helo = true W sumie to już wszystko na temat konfiguracji wysyłanej poczty. W dalszej części pliku są sekcje dotyczące zamiany nagłówków „From:” i „Return-Path:”. Jeżeli chcesz dowiedzieć się więcej na ten temat, zajrzyj do dokumentacji. 2.3. Pobieranie poczty Jeżeli MasqMail ma służyć również do pobierania poczty z różnych skrzynek pocztowych, to trzeba stworzyć proste pliki odpowiedzialne za obsługę każdego konta z osobna. Typowy plik „nazwa_konta.get” wygląda następująco: # Protokół. W tej chwili są zaimplementowane tylko protokoły 'pop3' i 'apop'. # Apop (szyfrowanie haseł) jest polecany, jeżeli tylko serwer go wspiera. protocol=pop3 # Serwer pocztowy: server = pop.example.org # Nazwa konta: user=nazwa_użytkownika # Hasło: pass="moje hasło" # Lokalny adres, gdzie pobrana poczta ma być dostarczona: address=nazwa_użytkonika@localhost # Czy kasować pocztę z serwera po jej pobraniu? Wartość "false" oznacza # ksujesz poczty na serwerze, to zdecydowanie ustaw tutaj wartość # "true", inaczej otrzymasz tę samą pocztę za każdym cyklem pobierania. # Masqmail kompletnie ignoruje jakiekolwiek nagłówki (niektóre mogą oznaczać # przeczytanie już wiadomości). do_uidl=false Jak widać, nie ma tu żadnej magii. Tyle na temat konfiguracji pobierania poczty. 3. MasqMail w systemie MasqMail jest wywoływany przy starcie systemu. Domyślnie jest uruchamiany z argumentami ”-bd” i ”-q10m”. Pierwszy z nich oznacza, że program startuje jako demon i nasłuchuje na określonym porcie, zazwyczaj na 25. Drugi oznacza, iż kolejkowanie wiadomości lokalnych ma się odbywać co 10 minut. Nie dotyczy to wiadomości dla hostów nie ujętych jako lokalne. Gdy nastąpi połączenie z Internetem, to wywołany zostanie skrypt ”/etc/ppp/ ip-up.d/1masqmail”. Jego zawartość jest mniej więcej taka, jak poniżej (większość pominięto): echo -n "$PROVIDER" > /tmp/connect_route chmod 0644 /tmp/connect_route /usr/sbin/masqmail -qo & if grep -qsx "^get.$PROVIDER.*=.*" /etc/masqmail/masqmail.conf; then /usr/sbin/masqmail -g & fi Natychmiast po ustanowieniu połączenia skrypt tworzy plik ”/tmp/connect_route” z informacją, z którym dostawcą Internetu nastąpiło połączenie. Jest to zazwyczaj argument demona „pppd”. Następnie MasqMail wywoływany jest z argumentem ”-qo”, co oznacza iż cała poczta przeznaczona do adresatów nielokalnych zostanie rozesłana, o ile to oczywiście jest możliwe. Na końcu sprawdzane jest, czy MasqMail ma działać dla zadanego dostawcy jako program do ściągania poczty. Jeżeli tak, to poprzez wywołanie go z argumentem ”-g” nastąpi sprawdzenie i ściągnięcie poczty z określonych wcześniej kont. Przy rozłączaniu wykonywany jest skrypt ”/etc/ppp/ip-down.d/99masqmail”, który właściwie tylko kasuje plik ”/tmp/connect_route”: if [ -f /tmp/connect_route ]; then rm -f /tmp/connect_route fi 4. Podsumowanie Przedstawiono tutaj jedynie podstawową konfigurację programu, która w zupełności powinna wystarczyć osobom łączącym się z Internetem za pomocą modemu. Na stronach podręcznika systemowego i w katalogu ”/usr/share/doc/ masqmail” zamieszczono więcej informacji. Jeżeli MasqMail ma działać jako serwer pocztowy dla małej sieci osiedlowej z jednym połączeniem modemowym, to lepiej zajrzeć do dokumentacji i dokładnie ją przestudiować. 5. Pliki konfiguracyjne Poniżej zamieszczono odnośniki do przetłumaczonych plików konfiguracyjnych: • masqmail.conf • example.route • example.get Dyskusja articles/41.txt · ostatnio zmienione: 2008/01/11 21:41 (edycja zewnętrzna) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Indeks • Ostatnie zmiany [ ][Szukaj] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Zaloguj Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki *