Omawiając zagadnienie konfiguracji serwera poczty elektronicznej niezbędne wydaje się poznanie kilku zagadnień teoretycznych. Wyróżniamy trzy podstawowe rodzaje programów, które zajmują się podstawową obsługą poczty elektronicznej (MTA, MDA oraz MUA). Poniżej przedstawiono dokładniejszy opis składowych serwerów pocztowych.
- rn
- MTA (Mail Transfer Agent) – działa po stronie serwera i odpowiada za przesyłanie wiadomości za pomocą protokołu SMTP. Rolą MTA jest dostarczenie poczty do adresata. MTA odpowiada więc za identyfikację nadawcy / odbiorcy oraz kontakt z innymi serwerami MTA (znajdującymi się poza naszą domeną). Przykładowe programy realizujące te zadania: Postfix, Sendmail, Exim, Exchange. Warto zaznaczyć, że MTA może również spełniać rolę MDA, jednakże zazwyczaj te role są oddzielane ze względu na większą elastyczność i wydajność takiej konfiguracji (zwłaszcza w dużych systemach pocztowych).
- MDA (Mail Delivery Agent) – działa po stronie serwera i odpowiada za dostarczenie wiadomości do odpowiednich skrzynek odbiorczych użytkowników serwera (odpowiednie miejsce na dysku twardym serwera). Przykład programów: Dovecot, Cyrus.
- MUA (Mail User Agent) – klient poczty elektronicznej (działający po stronie klienta), przykładowo: Outlook Expres, Microsoft Outlook itp. Programy te pobierają wiadomości na dysk lokalny, zarządzają skrzynkami pocztowymi, sortują oraz filtrują pocztę, tworzą wiadomości i przekazują do agenta MTA do wysłania itp.
- Oprogramowania wspomagające. Do tego rodzaju oprogramowania możemy zaliczyć oprogramowanie antywirusowe oraz antyspamowe. Jeżeli mowa o serwerach pocztowych pracujących pod kontrolą Linux to wymienić tu należy takie programy / demony jak: spamassasin, procmail, ClamAV, Amavis. Spamasassin za pośrednictwem procmail-a łączy się z Postfixem w celu wykrycia anomalii spamowych. Jeżeli chodzi o anomalie wirusowe tu z pomocą przychodzi ClamAV, który za pomocą Amavisa skanuje wiadomości przesyłane przez MTA (Postfix). Schematycznie współpracę wspomnianych demonów można przedstawić następująco:
Spamassasin <–> procmail <–> Postfix
oraz
ClamAV <–> Amavis <–> Postfix.
rn
rn
rn
rn
Protokoły obsługi poczty elektronicznej:
SMTP (Simple Mail Transfer Protocol) – protokół zapewniający komunikację / wysyłanie, odbieranie wiadomości pocztowych. SMTP działa na porcie TCP 25.
POP3 (Post Office Protocol) – pozwala na odebranie / odczyt wiadomości pocztowych. Zazwyczaj wiadomość podczas odczytu jest pobierana na dysk lokalny komputera i tam przechowywana. Protokół ten służy do wymiany poleceń i potwierdzeń pomiędzy klientem, a serwerem pocztowym. Pop3 działa na porcie TCP 110, a jego odmiana POP3s (szyfrowana) na porcie TCP 995.
IMAP (Internet Message Acces Protocol) – podobny do POP3 z tym, że pozwala na ściągnięcie nagłówków wiadomości i wybranie, które z nich moją zostać pobrane na dysk lokalny. Pozwala również, na zestawienie wielu połączeń w tym samym czasie, do jednego konta pocztowego. Ponadto wyszukiwanie i zarządzanie folderami wiadomości odbywa się po stronie serwera. To nie są wszystkie zalety w/w protokołu, należy zatem nadmienić, że jest on coraz częściej wybierany do obsługi poczty elektronicznej. Port dla IMAP : TCP 143, a odmiana szyfrowana TCP 585 .
Składowe adresu e-mail:
piotr@przyklad.pl
piotr – tzw. część lokalna, czyli nazwa lokalnej skrzynki pocztowej, najczęściej nazwa użytkownika.
@ – małpka, która jest niejako separatorem dwóch części adresu e-mail
przykład.pl – adres domeny.
Składowe wiadomości e-mail.
Każda wiadomość e – mail posiada nagłówek, który zawiera informacje nt. nadawcy, odbiorcy, daty nadania wiadomości, id wiadomości. W nagłówku zawarty jest również temat wiadomości (opcjonalnie). Kolejna częścią wiadomości e-mail (opcjonalną) jest sama treść wysyłanej wiadomości.
Nagłówek wiadomości możemy zobaczyć wybierając kolejno (w Outlook Express) następujące opcje: plik -> właściwości -> szczegóły. Możesz też dodatkowo wybrać klawisz „źródło wiadomości”, aby zobaczyć całą wiadomość (nagłówki, formatowanie, treść).
W Microsoft Office Outlok: otwórz wiadomość, z menu górnego wybierz widok -> opcje.
Konfiguracja MTA (Postfix).
Główny plik konfiguracyjny serwera postfix to /etc/postfix/main.cf
Najważniejsze (podstawowe) opcje konfiguracyjne to:
- rn
- myhostname = pełna nazwa hosta lub nazwa obsługiwanej domeny
- mydomain = nazwa naszej domeny / domen obsługiwanych przez ten serwer
- myorigin = to co będzie „doklejane” po znaku @ w adresach wychodzących, najczęściej myorigin = $mydomain
- mydestination = jakie domeny docelowe (poza wirtualnymi) mają być przyjmowane przez nasz serwer.
- home_mailbox = miejsce, gdzie znajdują się skrzynki pocztowe użytkowników.
W naszym przykładzie parametr ustawimy następująco: home_mailbox = Maildir/ - mail_spool_directory = katalog w którym znajduje się w/w katalog Maildir/. W naszym przypadku będzie to katalog domowy użytkowników
mail_spool_directory = /home/ - relayhost = host, którego należy użyć do przesyłania naszej poczty. Zazwyczaj zostawimy ten parametr pusty, ponieważ nie chcemy przekazywać obsługi wysyłki do innego serwera. Sami chcemy taką usługę świadczyć lokalnie.
- inet_interfaces = all #interfejsy sieciowe, na których nasłuchuje usługa SMTP (all – oznacza wszystkie. Konfiguracja może też wyglądać tak: localhost, 192.168.1.244).
rn
rn
rn
rn
rn
rn
rn
rn
Inne opcje:
# Adresy sieci zaufanych, z których będzie można przekazywać pocztę przez ten serwer SMTP:
mynetworks = 127.0.0.0/8, 192.168.1.0/24
# Maksymalna wielkość wysyłanej wiadomości (10 mb):
message_size_limit = 10240000
# Maksymalna pojemność skrzynki pocztowej (25 mb):
mailbox_size_limit = 25600000
# Maksymalna ilość wiadomości wysłanych za jednym razem przez użytkownika:
smtpd_recipient_limit = 10
# Numer kodu, który będzie zwracany, gdy w systemie nie ma odbiorcy:
unknown_local_recipient_reject_code = 550
# Ustawiamy limit ilości wiadomości, które mogą być dostarczone do użytkownika w tym samym czasie:
local_destination_concurrency_limit = 2
# Ustawiamy limit ilości użytkowników, których Postfix może obsłużyć równocześnie w tym samym czasie:
default_destination_concurrency_limit = 10
#baner
smtpd_banner = $myhostname ESMTP $mail_name
Obsługa wielu domen.
Jeżeli obsługujemy więcej niż jedną domenę to w /etc/postfix/main.cf dopiszemy:
mydestination = $myhostname, pierwsza.domena.pl, druga.domena.pl, trzecia.domena.pl
Konfiguracja POP3 na podstawie demona Dovecot.
Podstawowa konfiguracja demona Dovecot zawiera się w pliku: /etc/dovecot/dovecot.conf
Podstawowe dyrektywy w/w pliku:
protocols = imap pop3 #wskazuje na typ obsługiwanych protokołów.
listen = * #wskazuje na interfejsy sieciowe na których nasłuchuje ta usługa.
disable_plaintext_auth = jeżeli nie masz skonfigurowanej obsługi szyfrowania POP3s (SSL/TLS) wpisz „no”. W przeciwnym wypadku ustaw ten parametr na „yes”.
mail_location = lokalizacja skrzynek pocztowych na serwerze. W naszym przypadku mail_location = maildir:~/Maildir
login_process_size = dla maszyn z procesorem 64 bitowym parametr ustawiamy na 64, w przeciwnym razie na 32.
login_greeting = serwer POP3 #Ciąg znaków odpowiadających za to jak „przedstawia” się nasz serwer po nawiązaniu z nim połączenia np. przez protokół telnet.
Konfiguracja połączeń szyfrowanych POP3s Dovecot.
Tworzymy certyfikat serwera i klucz (do szyfrowania połączenia):
mkdir –p /etc/dovecot/ssl
cd /etc/dovecot/ssl
openssl req –new –x509 –nodes –out certyfikat.pem –keyout klucz.pem –days 365
Wprowadż dane dotyczące Twojej domeny, w szczególności zwróć uwagę na opcję “Common Name”, która ma wskazywać na nazwę Twojej domeny.
Następnie wpisujemy następującą konfigurację do pliku /etc/dovecot/dovecot.conf:
disable_plain_text_auth = yes #wylacz możliwość logowania bez szyfrowania
ssl = yes #wlacz SSL
ssl_cert_file = /etc/dovecot/ssl/certyfikat.pem #ścieżka do pliku z certyfikatem serwera
ssl_key_file = /etc/dovecot/ssl/klucz.pem #ścieżka do pliku z kluczem
verbose_ssl = yes #opcja dla „starszych” klientów poczty e-mail np. dla Outlooka 4 itp.