Jeśli Zimbra zgłasza błąd connect to mx.example.net[203.0.113.25]:25: Connection timed out, wiadomość zazwyczaj dotarła do kolejki pocztowej Zimbra, ale serwer nie nawiązał połączenia TCP z serwerem wymiany poczty domeny odbiorcy. Zacznij od sprawdzenia kolejki, DNS i ścieżki sieciowej wychodzącej. Nie zmieniaj limitów czasu Postfix ani nie opróżniaj kolejki wielokrotnie, dopóki nie dowiesz się, który przeskok blokuje połączenie.
Przekroczenie limitu czasu różni się od odrzucenia SMTP. Odrzucenie, takie jak „550”, oznacza, że serwer zdalny odpowiedział i odrzucił wiadomość; „Przekroczono limit czasu połączenia” oznacza, że próba połączenia nie otrzymała odpowiedzi w odpowiednim czasie. Przyczyną może być lokalna zapora sieciowa, polityka poczty wychodzącej dostawcy chmury lub hostingu, routing, nieosiągalny adres docelowy lub, rzadziej, problem z DNS/rodziną adresów.
Co oznacza w Zimbra komunikat „Przekroczono limit czasu połączenia na porcie 25”?
Zimbra używa swojego MTA do kierowania wiadomościami wychodzącymi. Gdy odbiorca znajduje się poza organizacją, MTA wyszukuje serwer wymiany poczty w tej domenie i łączy się z nim za pomocą protokołu SMTP. Aktualny podręcznik administratora Daffodil firmy Zimbra opisuje wiadomości, których nie można dostarczyć, jako trafiające do kolejki odroczonych przesyłek, gdzie próba doręczenia jest ponawiana. Wpis w kolejce i dziennik poczty identyfikują miejsce docelowe i błąd, dlatego stanowią najlepszy punkt wyjścia.
W typowym przepływie poczty publiczne serwery pocztowe wymieniają się wiadomościami e-mail za pośrednictwem portu TCP 25. Port 587 jest powszechnie używany przez uwierzytelnionych klientów poczty do przesyłania wiadomości do przekaźnika wychodzącego. Przełączenie ścieżki przekaźnika Zimbry na port 587 jest możliwe tylko wtedy, gdy skonfigurowano autoryzowaną usługę przekaźnikową do tego celu; nie jest to standardowy zamiennik odbioru poczty internetowej na porcie 25.
1. Czy problem dotyczy wszystkich odbiorców czy tylko jednej domeny?
Przed wprowadzeniem zmian sprawdź kolejkę odroczonych zadań. Na hoście Zimbra MTA uruchom polecenia administracyjne z poziomu zimbrakonta:
su - zimbra
postqueue -p
Poszukaj powtarzających się komunikatów o przekroczeniu limitu czasu i zanotuj domenę odbiorcy, docelową nazwę hosta MX i rozwiązany adres IP. W konsoli administracyjnej Zimbra otwórz Monitor → Kolejki poczty i sprawdź kolejkę odroczonych wiadomości według typu błędu i domeny odbiorcy. Dokładna etykieta menu może się różnić w zależności od wersji i edycji Zimbra.
Jeśli awarie skupiają się wokół jednej domeny odbiorcy lub jednego adresu MX, miejsce docelowe może być tymczasowo niedostępne lub filtrować połączenia z serwera. Jeśli wiele niezwiązanych ze sobą domen ulegnie awarii z tym samym przekroczeniem limitu czasu portu 25, należy najpierw sprawdzić ścieżkę wyjściową hosta Zimbra, politykę dostawcy lub zaporę sieciową. Zapisz znaczniki czasu i kilka reprezentatywnych miejsc docelowych; nie publikuj treści wiadomości ani danych uwierzytelniających podczas szukania pomocy.
2. Czy DNS rozwiązuje domenę odbiorcy na dostępne serwery pocztowe?
Zapytaj serwer Zimbra o rekordy MX domeny odbiorcy. Zastąp je example.netdomeną, która nie działa:
dig MX example.net +short
Użyj zwróconej nazwy hosta MX, aby wyszukać jego adresy:
dig A mx.example.net +short
dig AAAA mx.example.net +short
Domena może mieć wiele hostów MX. Przetestuj rzeczywiste nazwy hostów wyświetlane przez DNS, zamiast zakładać, że serwer witryny odbiorcy akceptuje pocztę. Jeśli DNS nie zwróci użytecznego celu MX, sprawdź autorytatywną konfigurację DNS dla tej domeny odbiorcy; nie dodawaj zmyślonego rekordu MX na serwerze Zimbra.
Następnie przetestuj połączenie TCP. Jeśli ncjest zainstalowane, użyj:
nc -vz -w 10 mx.example.net 25
Lub użyj, telnet mx.example.net 25jeśli jest dostępny. Udane połączenie TCP powinno wygenerować komunikat o powodzeniu połączenia; serwer SMTP może następnie wyświetlić powitanie. Przekroczenie limitu czasu oznacza, że uzgadnianie TCP nie zostało zakończone. Wynik „odmowa połączenia” jest inny: zdalny host odpowiedział, ale nie zaakceptował połączenia na tym adresie i porcie.
Powtórz test dla każdego celu MX i, jeśli to możliwe, przetestuj zarówno ścieżki IPv4, jak i IPv6. Jeśli nazwa hosta jest rozwiązywana na adres IPv6, ale serwer nie ma działającej trasy IPv6, próba IPv6 może się nie powieść, mimo że IPv4 działa. Przed zmianą ustawień rodziny adresów Postfix należy zweryfikować trasę i logi; każda taka zmiana powinna być specyficzna dla wersji i wdrożenia.
3. Czy zapora sieciowa lub dostawca hostingu blokuje ruch wychodzący SMTP?
Sprawdź politykę zapory sieciowej serwera bez jej wcześniejszej zmiany. W systemach korzystających z UFW:
sudo ufw status verbose
UFW może zarządzać zarówno ruchem wychodzącym, jak i przychodzącym. Jeśli polityka ruchu wychodzącego jest restrykcyjna, sprawdź ponumerowane reguły i upewnij się, że połączenia TCP ze zdalnym portem 25 są odrzucane. Dodaj regułę zezwalającą na ruch wychodzący o wąskim zakresie tylko wtedy, gdy jest ona zgodna z polityką bezpieczeństwa, a serwer jest autoryzowany do bezpośredniego wysyłania poczty.
Zapora hosta może zezwolić na połączenie, podczas gdy zapora sieciowa nadrzędna, kontrola bezpieczeństwa chmury, lista kontroli dostępu sieci lub polityka dostawcy hostingu je blokują. Zapytaj dostawcę, czy wychodzący protokół TCP/25 jest dozwolony w tym przypadku, czy obowiązują ograniczenia na poziomie konta oraz czy dostępny jest proces zwalniania lub weryfikacji. Zasady różnią się w zależności od dostawcy, konta, regionu i produktu, więc pomyślne sprawdzenie lokalnej zapory sieciowej nie dowodzi, że ścieżka internetowa jest otwarta.
Jeśli kontrolujesz zaporę sieciową, sprawdź jej reguły wyjściowe i logi dla źródłowego adresu IP serwera Zimbra, docelowego adresu IP MX, protokołu TCP i portu docelowego 25. Przechwytywanie pakietów może pomóc doświadczonemu administratorowi odróżnić nieodebrane pakiety SYN od odpowiedzi zablokowanych na ścieżce powrotnej, ale przechwytuje tylko istotne nagłówki i chroni wszelkie dane operacyjne. Nie otwieraj portu przychodzącego 25 jako rozwiązania problemu przekroczenia limitu czasu dla ruchu wychodzącego; są to oddzielne kierunki ruchu.
4. Co należy zrobić, jeśli bezpośrednia dostawa na porcie 25 jest niedostępna?
Jeśli dostawca nie zezwala na bezpośrednie wychodzące SMTP, użyj autoryzowanego hosta inteligentnego lub przekaźnika wychodzącego. Uzyskaj od operatora przekaźnika nazwę hosta, port, wymagania TLS, metodę uwierzytelniania, dozwolone domeny nadawców oraz wszelkie wymagania dotyczące listy dozwolonych adresów IP. Skonfiguruj przekaźnik za pomocą obsługiwanej metody administrowania Zimbra dla swojej wersji lub postępuj zgodnie z procedurą zmiany Zimbra obowiązującą w Twojej organizacji. W podręczniku administratora Zimbra zaznaczono, że host przekaźnika musi być skonfigurowany, gdy dostarczanie oparte na DNS jest wyłączone.
Wielu dostawców oferuje uwierzytelniane przesyłanie na porcie 587 z protokołem STARTTLS, ale dokumentacja przekaźnika jest wiarygodna. Przekaźnik może wymagać portu 465, listy dozwolonych adresów IP lub łącznika specyficznego dla dostawcy. Nie należy zakładać, że port 587 jest otwarty ani że dowolny publiczny serwer SMTP może być używany jako przekaźnik. Należy zachować dane uwierzytelniające w obsługiwanej, chronionej konfiguracji, ograniczyć dostęp do nich i nigdy nie umieszczać hasła przekaźnika w zgłoszeniu pomocy technicznej ani historii powłoki.
Po skonfigurowaniu przekaźnika wyślij kontrolowaną wiadomość testową do zarządzanej skrzynki pocztowej. Sprawdź w dzienniku poczty Zimbra, czy połączenie jest nawiązywane z hostem przekaźnika i oczekiwanym portem, czy TLS/uwierzytelnianie zakończyło się powodzeniem (jeśli jest wymagane), a przekaźnik akceptuje wiadomość. Jeśli zwróci błąd SMTP, rozwiąż problem z tą odpowiedzią, traktując ją jako problem z uwierzytelnianiem, polityką nadawcy, TLS lub uprawnieniami przekaźnika, a nie jako przekroczenie limitu czasu portu 25.
Kiedy należy ponowić próbę skorzystania z kolejki odroczonej?
Po usunięciu przyczyny źródłowej i pomyślnym przeprowadzeniu bezpośredniego testu do miejsca docelowego lub przekaźnika, poproś o ponowną próbę doręczenia kolejki. Z poziomu konta Zimbra postqueue -fpoproś Postfix o próbę doręczenia wiadomości z kolejki:
su - zimbra
postqueue -f
Może to wywołać próby doręczenia wielu wiadomości, dlatego należy unikać wielokrotnego uruchamiania tej funkcji podczas awarii. Można również skorzystać z opcji kontroli kolejki w Konsoli administracyjnej, jeśli są dostępne. Zimbra dokumentuje, że opróżnianie kolejek powoduje próby doręczenia wiadomości w kolejkach odroczonych, przychodzących i aktywnych. Sprawdź kilka wiadomości później i upewnij się, że liczba odroczonych wiadomości spada, a logi wskazują na pomyślne doręczenie lub nową, możliwą do podjęcia działania odpowiedź SMTP.
Szybki przewodnik decyzyjny
| Obserwacja | Prawdopodobna następna kontrola |
|---|
| Jedna domena docelowa przekroczyła limit czasu | Przetestuj każdy host MX, sprawdź dostępność miejsca docelowego i zdalne filtrowanie. |
| Wiele domen przekracza limit czasu na porcie 25 | Sprawdź reguły zapory sieciowej dla połączeń wychodzących, trasy i ograniczenia dostawcy. |
| Połączenie TCP nawiązane, następnie SMTP zwraca 4xx lub 5xx | Użyj zdalnej odpowiedzi SMTP do rozwiązywania problemów z zasadami, reputacją lub błędami dotyczącymi odbiorców. |
| Port 25 zablokowany przez dostawcę hostingu | Poproś o dostęp lub skonfiguruj zatwierdzony uwierzytelniony przekaźnik. |
| Przekaźnik akceptuje test, ale stara poczta pozostaje w kolejce | Przejrzyj dzienniki, spróbuj ponownie uruchomić kolejkę, a następnie monitoruj powiadomienia o dostarczeniu i niedostarczonych przesyłkach. |
Jak można potwierdzić poprawność rozwiązania?
Użyj krótkiej sekwencji weryfikacyjnej: sprawdź, czy DNS zwraca zamierzony MX lub przekaźnik; sprawdź, czy połączenie TCP z skonfigurowanym hostem i portem zostało nawiązane; wyślij kontrolowaną wiadomość testową; sprawdź, czy zdalny serwer lub przekaźnik ją zaakceptował; następnie sprawdź kolejkę i dzienniki odroczonych wiadomości pod kątem oryginalnych wiadomości. Sam pomyślny test połączenia nie dowodzi, że odbiorca zaakceptował wiadomość, a pomyślne przekazanie nie gwarantuje umieszczenia w skrzynce odbiorczej.
Nie „naprawiaj” przekroczenia limitu czasu, zwiększając limit czasu połączenia w Postfixie. smtp_connect_timeoutUstawienie Postfix kontroluje, jak długo klient SMTP czeka na nawiązanie połączenia TCP; jego wydłużenie nie sprawi, że zablokowana trasa będzie działać, a próby dostarczenia będą dłużej oczekiwane. Unikaj również usuwania wiadomości z kolejki lub zmieniania czasu życia kolejki w celu ukrycia objawu. Jeśli wiadomości zbliżają się do skonfigurowanego czasu życia odrzuconych wiadomości, poinformuj użytkowników, których to dotyczy, o opóźnieniu dostawy i zachowaj dowody kolejki podczas przywracania trasy.
Oficjalne referencje