komputerowa Serwer poczty Postfix Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski komputerowa () Serwer poczty Postfix 1 / 15
Serwery poczty Wprowadzenie Serwer SMTP: przyjmuje pocztę (port 25) i ewentualnie przesyła ja dalej Przesyła pocztę także lokalnie Zapisuje otrzymana pocztę do lokalnych skrzynek Program działajacy jako serwer poczty określa się mianem MTA (Mail Transport/Transfer Agent) Serwer POP3: udostępnia otrzymana pocztę na porcie 110 komputerowa () Serwer poczty Postfix 2 / 15
Wprowadzenie Serwery poczty SMTP W odróżnieniu od niektórych usług (np. WWW, DNS, proxy), wybór jest znacznie szerszy. Najpopularniejsze MTA: Sendmail: kiedyś jedyny, popularność stale maleje kiepska historia bezpieczeństwa trudny w administracji (własny język programowania) Qmail: odmienna filozofia administracji ograniczenia licencyjne Exim: zamiennik sendmaila wielofunkcyjny, jeden program obsługujacy wszystko Postfix: bezpieczny, szybki i mały wiele wyspecjalizowanych programów do różnych celów komputerowa () Serwer poczty Postfix 3 / 15
Wprowadzenie Serwery poczty SMTP W odróżnieniu od niektórych usług (np. WWW, DNS, proxy), wybór jest znacznie szerszy. Najpopularniejsze MTA: Sendmail: kiedyś jedyny, popularność stale maleje kiepska historia bezpieczeństwa trudny w administracji (własny język programowania) Qmail: odmienna filozofia administracji ograniczenia licencyjne Exim: zamiennik sendmaila wielofunkcyjny, jeden program obsługujacy wszystko Postfix: bezpieczny, szybki i mały wiele wyspecjalizowanych programów do różnych celów komputerowa () Serwer poczty Postfix 3 / 15
Wprowadzenie Sendmail: przykładowa konfiguracja S94 #R$+ $@ $>93 $1 R$* < @ *LOCAL* > $* $: $1 < @ $j. > $2 # envelope sender rewriting S11 R$+ $: $>51 $1 sender/recipient common R$* :; <@> $@ list:; special case R$* $: $>61 $1 qualify unqual ed names R$+ $: $>94 $1 do masquerading # header sender and masquerading header recipient rewriting S31 R$+ $: $>51 $1 sender/recipient common R:; <@> $@ list:; special case R$* <@> $* $@ $1 <@> $2 pass null host through R< @ $* > $* $@ < @ $1 > $2 pass route-addr through R$* $: $>61 $1 qualify unqual ed names R$+ $: $>93 $1 do masquerading komputerowa () Serwer poczty Postfix 4 / 15
Wprowadzenie Ogólna konfiguracja serwera SMTP Wiele czynników: 1 Dla jakich domen jesteśmy serwerem poczty (lokalne domeny) 2 Jak dostarczana jest poczta lokalnie 3 Relaying: Czy przekazywać pocztę dalej (jeśli nie jest wysłana do lokalnej domeny) Kto może korzystać z relayingu Czy wysyłamy bezpośrednio do odbiorcy, czy przez serwer pośredniczacy (smarthost) komputerowa () Serwer poczty Postfix 5 / 15
Kofiguracja Postfiksa Podstawowa konfiguracja Główny plik: /etc/postfix/main.cf Aktualna konfiguracja: postconf. postconf -n: zmiany w stosunku do ustawień domyślnych. Wiersze opcja = wartosc opcja = /etc/$inna_opcja $opcja_inna komputerowa () Serwer poczty Postfix 6 / 15
Kofiguracja Postfiksa Podstawowa konfiguracja, cd. Najważniejsze opcje: myhostname - nazwa lokalnego komputera, używana w domyślnych wartościach wielu innych opcji mydomain - nazwa domeny (zazwyczaj nazwa lokalnego komputera bez pierwszego członu nazwy) myorigin - nazwa wychodzaca domeny. Używana, jeśli w adresie email nie podamy żadnej nazwy domeny. Domyślnie równa $mydomain. komputerowa () Serwer poczty Postfix 7 / 15
Domeny lokalne Transport lokalny Opcja mydestination. Przykładowo: mydestination = $myhostname localhost www.$myhostname alias.komputera.pl Poczta zaadresowana do jednej z domen z listy mydestination dostarczana do lokalnych skrzynek pocztowych (np. do /var/spool/mail/user). Przed dostarczeniem przegladana jest lista aliasów w pliku: alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases komputerowa () Serwer poczty Postfix 8 / 15
Lokalne aliasy Transport lokalny Jak wyglada źródłowy plik /etc/aliases Przykładowy plik /etc/aliases root: mbi postmaster: root www-data: root test: test@domena.net Po zmianie /etc/aliases należy na jego podstawie zbudować binarna bazę: postalias /etc/aliases komputerowa () Serwer poczty Postfix 9 / 15
Lokalne aliasy Transport lokalny Jak wyglada źródłowy plik /etc/aliases Przykładowy plik /etc/aliases root: mbi postmaster: root www-data: root test: test@domena.net Po zmianie /etc/aliases należy na jego podstawie zbudować binarna bazę: postalias /etc/aliases komputerowa () Serwer poczty Postfix 9 / 15
Relaying Relaying Wysyłanie do domen, które nie sa lokalne, to relaying. Obcy użytkownicy : użytkownicy z spoza lokalnej sieci: mynetworks = 127.0.0.0/8 168.100.189.0/28 którzy się nie autoryzowali, moga wysyłać pocztę tylko do domen z relay_domains. Domyślnie: relay_domains = $mydestination. komputerowa () Serwer poczty Postfix 10 / 15
Autoryzacja SASL (SMTP AUTH) Do autoryzacj wykorzystujemy SASL (Simple Authentication and Security Layer) Najpopularniejsze metody autoryzacji: LOGIN, PLAIN: proste, hasło przesyłane jawnym tekstem CRAM-MD5: dość bezpieczne, hasło przesyłane zaszyfrowane DIGEST-MD5: j.w., umożliwia też szyfrowanie samych przesyłanych danych komputerowa () Serwer poczty Postfix 11 / 15
Autoryzacja SASL (SMTP AUTH), cd. SASL właczamy na serwerze SMTP Postfix za pomoca: smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination Następnie w pliku /etc/postfix/sasl/smtpd.conf określamy format pliku z hasłami (pwcheck_method) i używane metody autoryzacji (mech_list). Możliwe jest posiadanie odrębnego pliku z hasłami: /etc/sasldb2 (hasła do poczty sa inne niż hasła do systemu). komputerowa () Serwer poczty Postfix 12 / 15
Autoryzacja Dziwny jest niedzwiedzi ród, że tak bardzo lubi chroot Często Postfix jest uruchamiany w środowisku chroot, w katalogu /var/spool/postfix/. Kwestie bezpieczeństwa Problem: Nie ma dostępu do plików poza tym katalogiem, nie ma więc dostępu do /etc/sasldb2. Plik z hasłami trzeba skopiować do chroot-owanego katalogu albo wyłaczyć chroota. komputerowa () Serwer poczty Postfix 13 / 15
Dygresja Poczta wychodzaca na zewnatrz Poczta jest wysyłana dalej: Nasz serwer SMTP staje się klientem SMTP Jedna z możliwości: 1 Dostarczenie bezpośrednie Typowe dla ISP i dużych serwerów. Sprawdzanie rekordów MX. 2 Dostarczenie pośrednie (przez inny komputer) Typowe dla stacji roboczych relayhost = domena.pl relayhost = [inna.domena.pl] Zazwyczaj konieczna autoryzacja. komputerowa () Serwer poczty Postfix 14 / 15
Literatura Literatura Postfix Team The Postfix Home Page http://postfix.org/ Postfix Team Postfix SASL Howto http://www.postfix.org/sasl_readme.html komputerowa () Serwer poczty Postfix 15 / 15