Rys. 1. Jeden punkt wyjścia dla poczty aplikacyjnej: przekaźnik przyjmuje ruch bez zabezpieczeń tylko z sieci wewnętrznej i wychodzi na zewnątrz w sposób uwierzytelniony.

Po migracji poczty do usługi chmurowej zostaje w firmie warstwa, o której nikt nie pomyślał: aplikacje, urządzenia i skrypty, które wysyłają powiadomienia. System ERP wysyła potwierdzenia, drukarka wysyła skany, monitoring wysyła alerty, zadanie na serwerze wysyła raport. Wszystkie robią to tak, jak nauczono je w 2009 roku: port 25, bez szyfrowania, bez hasła, na adres serwera pocztowego, który już nie istnieje.

Dlaczego nie da się ich po prostu przepiąć

Usługa pocztowa w chmurze wymaga jednego z dwóch: uwierzytelnionego połączenia z szyfrowaniem na porcie 587 albo łącznika przyjmującego pocztę z określonych adresów publicznych, również z szyfrowaniem. Starsza aplikacja często nie obsługuje szyfrowania, nie ma pola na hasło albo ma, ale zapisuje je w pliku konfiguracyjnym w postaci jawnej. Drukarka z 2015 roku zna tylko przestarzałe wersje protokołu szyfrowania, których usługa już nie akceptuje.

Częsta reakcja: łącznik w chmurze z listą wyjątków, konto pocztowe z hasłem wpisane w dwadzieścia konfiguracji, uwierzytelnianie podstawowe włączone „tymczasowo” dla jednego konta. Każdy wyjątek jest osobnym ryzykiem i osobną rzeczą do zapamiętania przy rotacji hasła.

Przekaźnik wewnętrzny

Rozwiązanie znane od dekad: jeden serwer pocztowy w segmencie serwerów, którego jedynym zadaniem jest przyjmowanie poczty od systemów wewnętrznych i przekazywanie jej dalej w sposób, jakiego wymaga usługa w chmurze.

Od strony aplikacji przekaźnik przyjmuje połączenia:

  • wyłącznie z listy wewnętrznych adresów IP, konkretnych serwerów i urządzeń, nie z całej sieci,
  • na porcie 25 i 587, z szyfrowaniem opcjonalnym, bo część klientów go nie obsługuje,
  • bez uwierzytelniania, bo lista adresów jest uwierzytelnieniem,
  • z ograniczeniem domen nadawcy do własnych i limitem wiadomości na godzinę per adres źródłowy.

Od strony usługi w chmurze przekaźnik wychodzi jednym, poprawnie skonfigurowanym połączeniem: przez łącznik z publicznym adresem firmy i wymuszonym szyfrowaniem albo przez uwierzytelnione wysyłanie z jednym kontem serwisowym, którego hasło jest w jednym miejscu.

Co przekaźnik daje poza przepięciem

Kolejkę. Awaria łącza lub usługi w chmurze nie oznacza utraty powiadomień. Wiadomości czekają w kolejce i wychodzą po przywróceniu połączenia. Aplikacja, która wysyła bezpośrednio, dostaje błąd i zwykle nie próbuje ponownie.

Logi per aplikacja. Jeden plik dziennika odpowiada na pytanie, czy system ERP wysłał dziś fakturę i co się z nią stało. Bez przekaźnika odpowiedź wymaga przeszukania logów usługi w chmurze i logów aplikacji, o ile aplikacja jakieś ma.

Inwentaryzację. Po tygodniu logi przekaźnika pokazują pełną listę systemów wysyłających pocztę, w tym te, o których nikt nie wiedział. Ta lista jest podstawą do rekordu SPF i porządkowania.

Jedno miejsce na zmiany. Zmiana usługi pocztowej, rotacja hasła konta serwisowego, nowy wymóg szyfrowania: jedna konfiguracja zamiast dwudziestu.

Zasady wdrożenia

  1. Przekaźnik w segmencie serwerów, z polityką sieciową: przyjmuje z listy wewnętrznych adresów, wychodzi tylko do usługi pocztowej.
  2. Firewall blokuje ruch na port 25 z sieci wewnętrznej do internetu ze wszystkich adresów poza przekaźnikiem. Aplikacja, która omija przekaźnik, przestaje działać, co jest zamierzone i widoczne.
  3. Adres przekaźnika w DNS pod nazwą, która nie zmieni się przy wymianie serwera.
  4. Monitoring: długość kolejki, liczba odrzuconych połączeń, wiek najstarszej wiadomości w kolejce. Alert, gdy kolejka rośnie.
  5. Rekord SPF i podpisywanie DKIM uwzględniają ścieżkę przez przekaźnik, inaczej powiadomienia trafiają do spamu.
  6. Migracja aplikacji po kolei, według listy z inwentaryzacji, z wpisem w dokumentacji: system, adres źródłowy, domena nadawcy, kontakt do właściciela.

Podsumowanie

Poczta aplikacyjna nie zniknie i nie nauczy się nowych protokołów. Przekaźnik wewnętrzny przyjmuje ją taką, jaka jest, tylko z sieci wewnętrznej i tylko z listy adresów, a na zewnątrz wychodzi zgodnie z wymaganiami usługi w chmurze: z kolejką, logami i jednym miejscem na zmiany. Dwadzieścia wyjątków w chmurze zamienia się w jedną konfigurację, którą da się zaudytować.