| Termin | Definicja |
|---|---|
| kontener z pocztą (np. Docker Mail Server) | Kontener z pocztą, np. Docker Mail Server, to gotowy obraz umożliwiający szybkie wdrożenie serwera pocztowego. Kontener z pocztą jako gotowy stos usługKontener z pocztą, taki jak Docker Mailserver, jest przygotowanym obrazem uruchamianym przez silnik Docker. Nie oznacza to, że pojedynczy kontener jest jednym programem realizującym wszystkie funkcje pocztowe. Obraz zawiera zestaw współpracujących komponentów, między innymi usługę SMTP odpowiedzialną za przyjmowanie i przekazywanie wiadomości oraz usługę IMAP zapewniającą dostęp do skrzynek. Konkretny zakres funkcji zależy od konfiguracji obrazu, zamontowanych katalogów i ustawionych parametrów uruchomieniowych. Do zarządzania takim wdrożeniem często stosuje się plik Docker Compose. Definiuje on obraz, nazwę kontenera, mapowanie portów, wolumeny, zmienne środowiskowe oraz ustawienia restartu. Samo pobranie obrazu nie tworzy jeszcze poprawnie działającej poczty. Potrzebne są między innymi domena, konta użytkowników, trwałe miejsce na wiadomości, poprawne rekordy DNS oraz certyfikaty TLS. Brak któregoś z tych elementów może powodować, że poczta będzie przyjmowana lokalnie, ale nie będzie dostarczana do innych systemów albo nie będzie dostępna z programu pocztowego. Droga wiadomości przez Docker Mail ServerWiadomość przychodząca z Internetu trafia zwykle do usługi SMTP na porcie 25. Serwer nadawcy odnajduje adres docelowy na podstawie rekordu MX domeny i nawiązuje połączenie z hostem wskazanym w DNS. Kontener musi więc być osiągalny z sieci, a zapora sieciowa oraz router muszą przepuszczać wymagany ruch. Port 25 nie służy typowo do wygodnej konfiguracji programu pocztowego przez użytkownika, ponieważ jest przeznaczony głównie do komunikacji między serwerami pocztowymi. Wysyłanie przez klienta pocztowego odbywa się zazwyczaj przez port 587 z uwierzytelnieniem i szyfrowaniem STARTTLS albo przez port 465 z szyfrowaniem TLS od początku połączenia, jeżeli dany sposób został włączony w konfiguracji. Odbiór wiadomości przez IMAP może korzystać z portu 143, opcjonalnie z poleceniem STARTTLS, lub z portu 993, gdzie szyfrowanie TLS jest ustanawiane przed przesyłaniem danych. W praktyce należy rozdzielić adresy i porty używane do odbioru, wysyłki oraz komunikacji między serwerami, ponieważ każdy z tych kanałów ma inne wymagania dotyczące uwierzytelniania i polityki bezpieczeństwa. Wiadomości i metadane skrzynek powinny być przechowywane w wolumenach Dockera albo w jawnie wskazanych katalogach hosta. Warstwa kontenera jest nietrwała w tym sensie, że usunięcie kontenera bez zachowanego wolumenu może usunąć dostęp do danych zapisanych wyłącznie wewnątrz jego systemu plików. Z tego powodu konfigurację, skrzynki, kolejkę pocztową i certyfikaty trzeba traktować jako osobne dane wymagające kopii zapasowej oraz sprawdzania możliwości odtworzenia. DNS, uwierzytelnianie i ochrona przed nadużyciamiPoprawne działanie domenowej poczty wymaga spójnego DNS. Rekord MX wskazuje serwer odbierający pocztę, rekord A lub AAAA pozwala rozwiązać jego nazwę na adres IP, a rekord PTR powinien przedstawiać nazwę hosta używaną podczas połączeń SMTP. Przy wysyłaniu wiadomości istotne są również mechanizmy uwierzytelniania domeny: SPF opisuje dozwolone serwery nadawcze, DKIM dodaje podpis kryptograficzny do wiadomości, a DMARC określa sposób oceny zgodności domeny oraz obsługi nieudanych kontroli. Każdy z tych mechanizmów wymaga osobnej konfiguracji DNS i odpowiednich ustawień po stronie serwera. Kontener z pocztą powinien ograniczać możliwość wysyłania wiadomości do uwierzytelnionych użytkowników. Otwarty przekaźnik SMTP, czyli konfiguracja pozwalająca dowolnemu nadawcy przekazywać wiadomości do dowolnych domen, może zostać wykorzystany do masowej wysyłki spamu. Należy także kontrolować hasła, zasady logowania, certyfikaty oraz dostęp do paneli administracyjnych i plików konfiguracyjnych. Hasła zapisane w zmiennych środowiskowych, plikach Compose lub skryptach powinny być chronione przed przypadkowym ujawnieniem, ponieważ często zapewniają dostęp do skrzynek albo funkcji administracyjnych. Diagnostyka powinna obejmować kilka warstw. W pierwszej kolejności sprawdza się stan kontenera poleceniem Diagnostyka hosta i danych trwałychProblemy z Docker Mail Server często wynikają z różnicy między konfiguracją widoczną w pliku Compose a konfiguracją faktycznie używaną przez uruchomiony kontener. Po zmianie zmiennych środowiskowych lub plików konfiguracyjnych trzeba sprawdzić, czy kontener został odtworzony z nowymi ustawieniami. Warto również potwierdzić, że ścieżki wolumenów wskazują właściwe katalogi i że procesy w kontenerze mają do nich odpowiednie uprawnienia. Nieprawidłowe mapowanie katalogu może objawić się pustymi skrzynkami, brakiem certyfikatów albo powracaniem ustawień domyślnych po ponownym uruchomieniu. Analiza kolejki SMTP pomaga rozróżnić problem z lokalnym zapisem wiadomości od problemu z dostarczeniem do zewnętrznego serwera. Wiadomość może oczekiwać w kolejce z powodu błędu DNS, odrzucenia połączenia, niedostępności odbiorcy lub negatywnej odpowiedzi zdalnego serwera. W logach należy szukać kodów odpowiedzi SMTP, nazw domen, informacji o uwierzytelnianiu i przyczyn odroczenia dostarczenia. Przy odbiorze przez IMAP trzeba dodatkowo sprawdzić, czy użytkownik loguje się do właściwej domeny, czy skrzynka istnieje oraz czy klient nie korzysta z niewłaściwego portu lub trybu szyfrowania. Przed zmianą konfiguracji pocztowej należy zabezpieczyć kopię wolumenów i plików ustawień. Przywracanie powinno być testowane na odseparowanym środowisku, ponieważ sama obecność archiwum nie gwarantuje jego użyteczności. W przypadku diagnostyki komputera, na którym uruchamiany jest Docker, sprawdza się także wolne miejsce na dysku, obciążenie pamięci i procesora, działanie usługi Docker oraz reguły zapory. Te elementy nie zastępują kontroli konfiguracji pocztowej, ale pozwalają wykryć sytuacje, w których kontener przestaje działać z powodu zasobów hosta, błędu montowania danych lub restartowania procesu. |