Microsoft ogłosił wycofanie Basic authentication dla SMTP AUTH w Exchange Online. Jako pierwsze przestaną działać urządzenia, których konfiguracji nikt już nie pamięta: skanery, drukarki wielofunkcyjne i stare serwery aplikacyjne z hasłem do skrzynki wpisanym w formularzu WWW. Harmonogram wycofania był już aktualizowany, więc aktualne terminy sprawdź w najnowszym komunikacie Microsoftu, zamiast ufać dacie z wpisu na blogu, także tego. Praca inwentaryzacyjna wygląda tak samo niezależnie od daty.
Dlaczego ta metoda wciąż jest otwarta
Basic authentication zostało już wyłączone w Exchange Online dla Exchange ActiveSync, POP, IMAP, Remote PowerShell, EWS, OAB, Autodiscover oraz klientów Outlook. SMTP AUTH pozostawiono tam, gdzie było używane, a w tenantach, w których nie było używane, wyłączono.
Według analizy Microsoftu z wytycznych dotyczących blokowania legacy authentication ponad 97 procent ataków credential stuffing i ponad 99 procent ataków password spray wykorzystuje legacy authentication.
SMTP AUTH jest używane przez klientów POP3 i IMAP4, którzy muszą też wysyłać pocztę, oraz przez aplikacje, serwery raportowe i urządzenia wielofunkcyjne, które generują wiadomości.
Znajdź, co jeszcze go używa
Możliwe, że nic nie znajdziesz. Jeśli włączone jest security defaults, SMTP AUTH w Exchange Online jest już wyłączone. Jest też wyłączone w organizacjach utworzonych po styczniu 2020, chyba że ktoś włączył je dla pojedynczych skrzynek.
W pozostałych przypadkach zacznij od logów logowania. W Microsoft Entra admin center przejdź do Entra ID > Monitoring & health > Sign-in logs, dodaj kolumnę Client App i przefiltruj po protokołach legacy authentication. Powtórz to na karcie User sign-ins (non-interactive), ponieważ urządzenia rzadko logują się interaktywnie. Przy wstępnej selekcji pomoże skoroszyt Sign-ins using legacy authentication.
Następnie sprawdź skrzynki. Ustawienia per skrzynka nadpisują ustawienie całej organizacji, więc wypisz skrzynki, w których SMTP AUTH jest jawnie włączone:
$Users = Get-CASMailbox -ResultSize unlimited
$Users | where {$_.SmtpClientAuthenticationDisabled -eq $false}
Pusta wartość oznacza, że skrzynka stosuje ustawienie organizacji, które sprawdzisz poleceniem Get-TransportConfig | Format-List SmtpClientAuthenticationDisabled. Potem przejrzyj stronę „scan to email" w drukarce, ustawienia powiadomień w ERP, narzędzia do monitoringu i backupu oraz każdy zaplanowany skrypt, który wysyła raport.
Każde znalezisko przypisz do właściciela i zapisz adres nadawcy, port, informację, czy nadawcę hostuje podmiot trzeci, oraz czy odbiorcy są wewnętrzni, czy zewnętrzni. Bez tych danych nie wybierzesz zamiennika.
Na co przenieść każdy z nadawców
Właściwy cel zależy od tego, co potrafi nadawca, gdzie działa i do kogo wysyła pocztę.
| Nadawca | Przenieś na | Hostowany przez podmiot trzeci? | Uwagi |
|---|---|---|---|
| Aplikacja obsługująca OAuth | Client SMTP submission z OAuth | Obsługiwane | Port 587, TLS 1.2 lub 1.3, skrzynka z licencją |
| Tylko powiadomienia wewnętrzne | High Volume Email | Obsługiwane | Port 587, konto HVE |
| Odbiorcy wewnętrzni, uwierzytelnianie niemożliwe | Direct Send | Obsługiwane | Port 25, zaktualizuj SPF |
| Odbiorcy wewnętrzni i zewnętrzni | Azure Communication Services Email | Brak w zestawieniu Microsoftu | Rekomendacja Microsoftu dla tego przypadku |
| Urządzenie bez OAuth, w Twojej sieci | SMTP relay przez konektor | Nieobsługiwane | Port 25, certyfikat lub statyczny adres IP |
| Własny skrypt lub kod aplikacji | OAuth 2.0 lub Graph API | Twój kod | Zmień kod |
Microsoft zaleca OAuth dla client SMTP submission, wskazuje HVE dla poczty wyłącznie wewnętrznej, a Azure Communication Services Email dla poczty wewnętrznej i zewnętrznej. Jeśli masz lokalny serwer pocztowy, możesz też przekazywać pocztę przez niego, używając do niego Basic authentication albo anonimowego relay (nie open relay).
Najpierw sprawdź wolumen. Wysyłka z OAuth jest ograniczona do 10 000 odbiorców dziennie i 30 wiadomości na minutę. SMTP relay nie podlega tym limitom, choć ma własne, rozsądne ograniczenia, a HVE nie ma limitów odbiorców ani tempa wysyłki dla poczty wewnętrznej.
Drukarki i skanery
Najpierw sprawdź firmware, bo aktualizacja od producenta może dodać OAuth. Jeśli nie, zwykle właściwym rozwiązaniem jest SMTP relay przez konektor. Nie wymaga skrzynki z licencją, uwierzytelnia certyfikatem TLS (zalecane) lub statycznym publicznym adresem IP niewspółdzielonym z inną organizacją i korzysta z portu 25 na Twoim endpoincie MX.
Relay nie zapisuje wiadomości w Elementach wysłanych i nie omija filtrów antyspamowych, więc podejrzana poczta może zostać odfiltrowana. Microsoft zaleca wpis w rekordzie SPF, a rekord możesz sprawdzić naszym narzędziem do analizy DMARC i SPF. Urządzenie domyślnie używające portu 465 nie obsługuje wersji TLS wymaganych przez client SMTP submission, a urządzenie bez TLS 1.2 w ogóle z niego nie skorzysta.
Systemy ERP i inne aplikacje
Aplikacje biznesowe, takie jak ERP, są najtrudniejsze, bo kod odpowiedzialny za pocztę należy do producenta. Zapytaj, czy produkt obsługuje OAuth 2.0 dla SMTP lub Graph API. Jeśli nie, rozwiązaniem awaryjnym jest relay przez konektor, pod warunkiem że aplikacja działa w Twojej sieci.
Jeśli aplikację hostuje producent, relay odpada: w zestawieniu Microsoftu SMTP relay jest jedyną metodą, która nie obsługuje nadawców hostowanych przez podmioty trzecie. Producent może użyć client SMTP submission z OAuth, HVE (jeśli poczta trafia tylko do odbiorców wewnętrznych) albo Azure Communication Services Email. Direct Send też działa dla nadawców hostowanych, ale jest nieuwierzytelniony, więc zaktualizuj rekord SPF, aby zezwolić producentowi na wysyłanie w imieniu Twojej domeny.
Jeśli aplikacja wysyła jako adres inny niż skrzynka, na którą się loguje, nadaj uprawnienie Send As. Bez niego wiadomości wracają z błędem 5.7.60 SMTP; Client doesn't have permissions to send as this sender.
Skrypty
Dla skryptów, które kontrolujesz, Microsoft wskazuje Graph API jako alternatywę dla uwierzytelnionej poczty. Możesz też zaimplementować OAuth 2.0 na endpointach IMAP, POP lub SMTP.
Od czego zacząć
- Pobierz logowania legacy z logów Entra, interaktywne i nieinteraktywne, oraz wypisz skrzynki, w których
SmtpClientAuthenticationDisabledma wartość$false. - Wskaż właściciela każdego nadawcy i zapisz jego odbiorców (wewnętrznych lub zewnętrznych), port, obsługę TLS oraz informację, czy hostuje go podmiot trzeci.
- Wybierz cel z tabeli powyżej, przetestuj jedno urządzenie z każdego typu i przełączaj kolejne dopiero po udanej wiadomości testowej.
- Po migracji uruchom
Set-TransportConfig -SmtpClientAuthenticationDisabled $true. Skrzynka nadal ustawiona na$falsenadpisuje to ustawienie, więc każdą z nich ustaw poleceniemSet-CASMailboxna$null(stosuje ustawienie organizacji) lub$true. Uruchom ponownie filtr-eq $false, aby potwierdzić, że żadna nie pozostała, a wartość dla organizacji sprawdź poleceniemGet-TransportConfig. - Utwórz politykę Conditional Access blokującą legacy authentication, najpierw w trybie Report-only, z co najmniej jednym wyłączonym kontem awaryjnym.
Jeśli inwentaryzacja pokaże więcej, niż zdążysz zmigrować w terminie, nasz zespół konsultingowy pomoże w ocenie i w przygotowaniu planu przełączenia.
