docs/diploma

view docs/maciej-patelczyk_masqmail_pl.txt @ 80:0f3e3faff93a

small update
author meillo@marmaro.de
date Tue, 11 Nov 2008 09:06:31 +0100
parents
children
line source
1 DebianUsers.pl (beta)
2 Ślad: » MasqMail -- szybkie wprowadzenie
3 Start Artykuły Tips & Tricks Wideo Wyszukaj w serwisie Archiwum
4 Spis treści
6 • Streszczenie
7 • Prawa autorskie
8 • Spis treści
9 • 1. O programie
10 • 2. Konfiguracja
11 • 2.1. Plik masqmail.conf
12 • 2.2. Wysyłanie poczty
13 • 2.3. Pobieranie poczty
14 • 3. MasqMail w systemie
15 • 4. Podsumowanie
16 • 5. Pliki konfiguracyjne
17 • Dyskusja
19 drukuj wersja do wydruku
21 MasqMail -- szybkie wprowadzenie
23 Maciej Patelczyk <maf@ubik.zamek.gda.pl>
25 Streszczenie
27 MasqMail jest serwerem poczty zaprojektowanym dla hostów nie posiadających
28 stałego połączenia z siecią Internet, takich jak proste sieci komputerowe, czy
29 pojedyncze komputery, łączące się z Internetem poprzez modem. Program potrafi
30 obsługiwać połączenia do różnych dostawców Internetu (ang. ISP – Internet
31 Services Provider). Jest zamiennikiem dla programu Sendmail, czy innych
32 serwerów pocztowych (ang. MTA – Mail Transfer Agent), takich jak Qmail czy
33 Exim. Może również służyć jako klient POP3.
35 Takiej treści wstęp widnieje na stronie podręcznika systemowego do programu.
36 Trafiłem na niego szukając w Debianie jakiegoś serwera poczty dla hosta
37 łączącego się z Internetem poprzez modem. Nie miałem ochoty konfigurować
38 serwera Exim, więc szukałem czegoś innego. Po przeczytaniu opisu, MasqMail
39 wydał mi się idealny dla moich potrzeb.
41 Prawa autorskie
43 Copyright (C) 2003 Maciej Patelczyk. All rights reserved.
45 Udziela się zgody na kopiowanie, rozpowszechnianie i/lub modyfikowanie tego
46 dokumentu zgodnie z zasadami Licencji Wolnej Dokumentacji (GNU Free
47 Documentation Licence) w wersji 1.1 lub jakiejkolwiek późniejszej wersji
48 opublikowanej przez Fundację Wolnego Oprogramowania (Free Software Foundation).
49 Kopię tej licencji można znaleźć na stronach Fundacji Wolnego Oprogramowania.
51 Spis treści
53 1. O programie2. Konfiguracja2.1. Plik masqmail.conf2.2. Wysyłanie poczty2.3.
54 Pobieranie poczty3. MasqMail w systemie4. Podsumowanie5. Pliki konfiguracyjne
56 1. O programie
58 MasqMail został oryginalnie napisany przez Olivera Kurtha, zaś Gregor Hoffleit
59 przystosował program do wymogów dystrybucji i przygotował dla niej paczkę.
61 MasqMail jest bardzo prostym serwerem pocztowym. Nie warto go stosować, jeżeli
62 host jest na stałe podłączony do Internetu. Jako serwer pocztowy, potrafi
63 rozsyłać wiadomości przy pomocy protokołu SMTP/ESMTP, a jako program do
64 pobierania poczty obsługuje protokoły POP3 i APOP. Ponieważ MasqMail miał być
65 przede wszystkim zamiennikiem dla programu Sendmail, to używa podobnych jak on
66 opcji wywołania, choć nie wszystkie z nich są jednak zaimplementowane.
68 MasqMail doskonale nadaje się do zastosowania w laptopach i domowych
69 komputerach, łączących się od czasu do czasu z Siecią poprzez modem. Sprawdza
70 się również jako serwer poczty dla małych sieci komputerowych nie posiadających
71 stałego łącza z Internetem. Działając jako serwer poczty przyjmuje pocztę,
72 kolejkuję ją, a gdy wykryje połączenie z Internetem, to natychmiast stara się
73 ją rozesłać. Potrafi określić czy adresat (host) należy do wewnętrznej sieci, a
74 jeżeli tak, to nie będzie jej kolejkował, tylko niezwłocznie wyśle.
76 2. Konfiguracja
78 Główny plik konfiguracyjny programu to plik ”/etc/masqmail/masqmail.conf”. W
79 pliku tym, oprócz głównych ustawień programu, opisuje się sposoby zachowania
80 się serwera w zależności od używanego dostawcy Internetu. Można w nim określić
81 kto może wysyłać pocztę, do jakich hostów i za pomocą jakiego połączenia to
82 robi.
84 2.1. Plik masqmail.conf
86 Pierwszą rzeczą jaką zwykle się konfiguruje jest nazwa hosta:
88 host_name="host.domena.pl"
90 Następnie określane są te hosty, które będą traktowane jako lokalne, czyli
91 należące do lokalnej sieci komputerowej. Podaje się tutaj listę, w której
92 separatorem jest ”';'”.
94 local_hosts="host;host.domena.pl;localhost"
96 Później informujemy serwer, aby nasłuchiwał na odpowiednich portach:
98 listen_addresses="nazwa_hosta:25;localhost:25"
100 Możemy również określić, na jaki port będą wysyłane wiadomości:
102 remote_port=25
104 Katalog, w którym umieszczona będzie kolejka wiadomości i temu podobne określa
105 się za pomocą zmiennej „spool_dir”:
107 spool_dir="/var/spool/masqmail"
109 Katalog, w którym zapisywane będą lokalne wiadomości wskazuje zmienna
110 „mail_dir”:
112 mail_dir="/var/mail"
114 Program może samodzielnie zapisywać zdarzenia lub może do tego celu użyć demona
115 „syslogd”. Ustawienie zmiennej na ”'true'” powoduje, iż wszelkie zdarzenia
116 loguje „syslogd”:
118 use_syslog=false
120 Trzeba jeszcze ustawić katalog, w którym zapisywane będą logi:
122 log_dir="/var/log/masqmail"
124 Ustawienie poniższej zmiennej na ”'true'” powoduje, że wiadomości nie będą
125 natychmiastowo wysyłane, ale kolejkowane i rozsyłane przy następnym cyklu:
127 do_queue=false
129 Trzeba również skonfigurować sposób w jaki serwer będzie wykrywał stan online.
130 Najprościej do tego celu wykorzystać metodę „file”.
132 online_detect = file
133 online_file = "/tmp/connect_route"
135 Przy połączeniu z Siecią, skrypt startowy znajdujący się w katalogu ”/etc/ppp/
136 ip-up.d” utworzy zadany plik, którego zawartością będzie nazwa dostawcy
137 Internetu, za pośrednictwem którego nastąpiło połącznie. Przy rozłączeniu plik
138 ten zostanie skasowany.
140 Potrzebne jest również ustawienie sposobu lokalnego dostarczenia poczty (na
141 przykład po ściągnięciu ze skrzynki). Najprościej zrobić to w następujący
142 sposób:
144 mda="/usr/bin/procmail -Y -d ${rcpt_local}"
146 Oczywiście program „procmail” musi być zainstalowany.
148 Dalsze sekcje zawierają konfigurację aliasów, którą tutaj pominę. Więcej
149 szczegółów na ten temat można znaleźć w dostępnej dokumentacji.
151 Ostatnią rzeczą do skonfigurowania w pliku „masqmail.conf” jest
152 przyporządkowanie poszczególnym dostawcom Internetu określonych zachowań
153 serwera, które opisane są w osobnych plikach.
155 Wysyłaniem poczty poprzez jedno połączenie może sterować jeden lub kilka plików
156 „route”. Można utworzyć listę, której separatorem jest znak ”';'”.
158 connect_route.nazwa_połączenia = "/etc/masqmail/nazwa_połączenia.route"
160 lub
162 connect_route.foo = "/etc/masqmail/foo.route;/etc/masqmail/bar.route"
164 Choć nazwy plików mogą być dowolne, to warto się jednak trzymać schematu: nazwa
165 pliku odpowiada nazwie dostawcy Internetu, natomiast
166 „connect_route.nazwa_połączenia” musi dokładnie odpowiadać nazwie zestawionego
167 połączenia. Serwer odczyta bowiem nazwę połączenia z pliku ”/tmp/connect_route”
168 i będzie próbował znaleźć odpowiedni wpis w ”/etc/masqmail/masqmail.conf”.
170 Przy pobieraniu poczty poprzez MasqMail należy jeszcze skonfigurować, skąd
171 pobierać pocztę:
173 get.nazwa_połączenia = /etc/masqmail/nazwa_konta.get
175 Jeżeli poczta będzie ściągana z więcej niż jednego konta, to wpis należy po
176 prostu zwielokrotnić, zmieniając nazwy plików:
178 get.nazwa_połączenia = /etc/masqmail/konto_1.get
179 get.nazwa_połączenia = /etc/masqmail/konta_2.get
181 Jeżeli wywołamy MasqMail z argumentem ”-g”, to zacznie on po kolei pobierać
182 pocztę według podanej kolejności.
184 2.2. Wysyłanie poczty
186 Aby móc wysyłać pocztę przy użyciu MasqMaila, potrzeba skonfigurować
187 przynajmniej jeden plik „route”. Poniżej zamieszczona jest minimalna potrzebna
188 konfiguracja.
190 MasqMail umożliwia łącznie się z różnymi dostawcami Internetu, zaimplementowano
191 więc w nim mechanizm pozwalający określać, jaki użytkownik może wysyłać pocztę
192 danym połączeniem. Jeżeli nie jest to istotne lub połączenie odbywa się tylko
193 poprzez jednego dostawcę, to wystarczy podstawić wartość pustą. Przed wysłaniem
194 poczty sprawdzana jest lokalna część adresu i na tej podstawie podejmowana jest
195 decyzja.
197 allowed_mail_locals = "janek;tadek;kasia"
199 lub gdy nie ma ograniczeń:
201 allowed_mail_locals = ""
203 Innym kryterium jest lista niedozwolonych domen. Można ustalić, czy za pomocą
204 danego połączenia można wysyłać pocztę do określonych domen. Można podać listę,
205 w której akceptowane są znaki ”'*'” oraz ”'?'”. Separatorem jak zwykle jest
206 znak ”';'”.
208 not_allowed_rcpt_domains = "*.foo.bar"
210 Trzeba też określić, czy serwer ma rozsyłać pocztę bezpośrednio do każdego
211 hosta, czy też cała poczta ma wędrować do innego serwera pocztowego,
212 najczęściej będącego w posiadaniu dostawcy Internetu. Generalnie lepiej
213 przesłać całą pocztę do innego serwera i niech tamten się martwi, co dalej z
214 nią zrobić. Nie ustawienie zmiennej „mail_host” powoduje, iż poczta będzie
215 rozsyłana bezpośrednio do adresatów.
217 mail_host = "mail.isp.pl"
219 Ustawienie wartości zmiennej „do_correct_helo” na ”'true'” powoduje, że w
220 komunikacie HELO/EHLO wysyłana jest nazwa hosta taka, jaka jest widziana z
221 zewnątrz sieci. Niektórzy dostawcy przy połączeniu nadają łączącym się hostom
222 oprócz adresu IP również nazwę. Zarówno adres jak i nazwa mogą być znane tylko
223 w obrębie sieci danego dostawcy, dlatego wysyłając taką nazwę serwerowi
224 pocztowemu, który sprawdza, czy dany host istnieje można spotkać się z odmową
225 przyjęcia poczty. Warto zatem ustawić tę zmienną:
227 do_correct_helo = true
229 W sumie to już wszystko na temat konfiguracji wysyłanej poczty. W dalszej
230 części pliku są sekcje dotyczące zamiany nagłówków „From:” i „Return-Path:”.
231 Jeżeli chcesz dowiedzieć się więcej na ten temat, zajrzyj do dokumentacji.
233 2.3. Pobieranie poczty
235 Jeżeli MasqMail ma służyć również do pobierania poczty z różnych skrzynek
236 pocztowych, to trzeba stworzyć proste pliki odpowiedzialne za obsługę każdego
237 konta z osobna.
239 Typowy plik „nazwa_konta.get” wygląda następująco:
241 # Protokół. W tej chwili są zaimplementowane tylko protokoły 'pop3' i 'apop'.
242 # Apop (szyfrowanie haseł) jest polecany, jeżeli tylko serwer go wspiera.
243 protocol=pop3
245 # Serwer pocztowy:
246 server = pop.example.org
248 # Nazwa konta:
249 user=nazwa_użytkownika
251 # Hasło:
252 pass="moje hasło"
254 # Lokalny adres, gdzie pobrana poczta ma być dostarczona:
255 address=nazwa_użytkonika@localhost
257 # Czy kasować pocztę z serwera po jej pobraniu? Wartość "false" oznacza
258 # ksujesz poczty na serwerze, to zdecydowanie ustaw tutaj wartość
259 # "true", inaczej otrzymasz tę samą pocztę za każdym cyklem pobierania.
260 # Masqmail kompletnie ignoruje jakiekolwiek nagłówki (niektóre mogą oznaczać
261 # przeczytanie już wiadomości).
262 do_uidl=false
264 Jak widać, nie ma tu żadnej magii. Tyle na temat konfiguracji pobierania
265 poczty.
267 3. MasqMail w systemie
269 MasqMail jest wywoływany przy starcie systemu. Domyślnie jest uruchamiany z
270 argumentami ”-bd” i ”-q10m”. Pierwszy z nich oznacza, że program startuje jako
271 demon i nasłuchuje na określonym porcie, zazwyczaj na 25. Drugi oznacza, iż
272 kolejkowanie wiadomości lokalnych ma się odbywać co 10 minut. Nie dotyczy to
273 wiadomości dla hostów nie ujętych jako lokalne.
275 Gdy nastąpi połączenie z Internetem, to wywołany zostanie skrypt ”/etc/ppp/
276 ip-up.d/1masqmail”. Jego zawartość jest mniej więcej taka, jak poniżej
277 (większość pominięto):
279 echo -n "$PROVIDER" > /tmp/connect_route
280 chmod 0644 /tmp/connect_route
282 /usr/sbin/masqmail -qo &
284 if grep -qsx "^get.$PROVIDER.*=.*" /etc/masqmail/masqmail.conf; then
285 /usr/sbin/masqmail -g &
286 fi
288 Natychmiast po ustanowieniu połączenia skrypt tworzy plik ”/tmp/connect_route”
289 z informacją, z którym dostawcą Internetu nastąpiło połączenie. Jest to
290 zazwyczaj argument demona „pppd”. Następnie MasqMail wywoływany jest z
291 argumentem ”-qo”, co oznacza iż cała poczta przeznaczona do adresatów
292 nielokalnych zostanie rozesłana, o ile to oczywiście jest możliwe. Na końcu
293 sprawdzane jest, czy MasqMail ma działać dla zadanego dostawcy jako program do
294 ściągania poczty. Jeżeli tak, to poprzez wywołanie go z argumentem ”-g” nastąpi
295 sprawdzenie i ściągnięcie poczty z określonych wcześniej kont.
297 Przy rozłączaniu wykonywany jest skrypt ”/etc/ppp/ip-down.d/99masqmail”, który
298 właściwie tylko kasuje plik ”/tmp/connect_route”:
300 if [ -f /tmp/connect_route ]; then
301 rm -f /tmp/connect_route
302 fi
304 4. Podsumowanie
306 Przedstawiono tutaj jedynie podstawową konfigurację programu, która w
307 zupełności powinna wystarczyć osobom łączącym się z Internetem za pomocą
308 modemu. Na stronach podręcznika systemowego i w katalogu ”/usr/share/doc/
309 masqmail” zamieszczono więcej informacji. Jeżeli MasqMail ma działać jako
310 serwer pocztowy dla małej sieci osiedlowej z jednym połączeniem modemowym, to
311 lepiej zajrzeć do dokumentacji i dokładnie ją przestudiować.
313 5. Pliki konfiguracyjne
315 Poniżej zamieszczono odnośniki do przetłumaczonych plików konfiguracyjnych:
317 • masqmail.conf
318 • example.route
319 • example.get
321 Dyskusja
323 articles/41.txt · ostatnio zmienione: 2008/01/11 21:41 (edycja zewnętrzna)
325 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
327 • Indeks
328 • Ostatnie zmiany
330 [ ][Szukaj]
331 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
333 • Zaloguj
337 Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki
338 *