docs/diploma

annotate docs/maciej-patelczyk_masqmail_pl.txt @ 409:ca763bd8c809

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