view docs/maciej-patelczyk_masqmail_pl.txt @ 280:1749abc10235

minor changes
author meillo@marmaro.de
date Thu, 15 Jan 2009 16:57:37 +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
*