Wysyłanie poczty bez autentykacji

Czasami potrzebujemy wysyłać pocztę poprzez serwer Exchange bez autentykacji np. z różnych systemów powiadomień lub z drukarek.
Aby dopuścić taką możliwość uruchamiamy konfigurację naszego serwera ECP i przechodzimy do menu „przepływ poczty email -> łączniki receive” i wciskamy plus aby dodać nowy łącznik:


W polu nazwa podajemy nazwę naszego łącznika, w sekcji Rola powinno być zaznaczone „Transport po stronie użytkownika”, natomiast w sekcji typ zaznaczamy niestandardowy. Przechodzimy dalej

W kolejnym oknie ustalamy na jakich własnych adresach serwer ma nasłuchiwać oraz na jakim porcie. Domyślnie wpisany jest port 25 ale proponuję zmienić ten port na jakiś inny (na powyższym przykładzie jest 4925). Port 25 zostawimy na „normalną” komunikację serwera pocztowego. Ponadto na pewno jest już inny łącznik receive działający na tym porcie. Przechodzimy dalej

W domyślnej konfiguracji serwer na tym łączniku będzie przyjmował połączenia z dowolnych adresów. Ze względów bezpieczeństwa należy to zmienić aby nasz serwer nie stał się bramką do rozsyłania spamu. Usuwamy domyślny zakres i podajemy z jakich adresów będzie można się połączyć

Na powyższym przykładzie skorzystanie z tego łącznika będzie możliwe jedynie z adresów IP:
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
192.168.1.15
10.22.158.41
Zapisujemy zmiany. Następnie wchodzimy w edycję nowo utworzonego łącznika i przechodzimy na zakładkę „Zabezpieczeia”

Zaznaczamy tylko opcję „Użytkownicy anonimowi” i zatwierdzamy zmiany.
Takie ustawienia wystarczą aby nasz serwer umożliwiał wysyłanie poczty bez autentykacji ale tylko wewnątrz organizacji. W przypadku próby wysłania poczty na zewnątrz otrzymamy komunikat:
   550 5.7.1 Unable to relay
Aby umożliwić wysyłanie poczty także poza swoją organizację należy na serwerze uruchomić „Exchange Management Shell” i wydać polecenie:
Dla systemu w polskiej wersji:

Get-ReceiveConnector 'serwer\nazwa naszego konektora'|Add-ADPermission -User 'ZARZĄDZANIE NT\LOGOWANIE ANONIMOWE' -ExtendedRights MS-Exch-SMTP-Accept-Any-Recipient

dla systemu w angielskiej wersji

Get-ReceiveConnector 'serwer\nazwa naszego konektora'|Add-ADPermission -User 'NT AUTHORITY\ANONYMOUS LOGON' -ExtendedRights “Ms-Exch-SMTP-Accept-Any-Recipient”

Dobrym rozwiązaniem jest także dopuszczenie na firewallu ruchu na port, który ustawiliśmy w naszym łączniku tylko z określonych adresów IP z których chcemy wysyłać pocztę bez autentykacji.

Aby przetestować nasze rozwiązanie uruchamiamy wiersz poleceń i wydajemy polecenie:
telnet adres_naszego_serwer port_ktory_ustawilismy_w_laczniku np.

telnet poczta.naszadomena.com 4925

serwer zwróci odpowiedź
  220 serwer.domena.local Microsoft ESMTP MAIL Service ready at ….
wydajemy polecenie

helo komputer

następnie podajemy nadawcę

mail from:[email protected]

serwer powinien odpowiedzieć
  250 2.1.0 Sender OK
w kolejnym kroku podajemy adres odbiorcy

rcpt to: [email protected]

Jeśli skonfigurowaliśmy wszystko poprawnie serwer zwróci informację
  250 2.1.5 Recipient OK
W przypadku braku powyższych poleceń wykonanych z konsoli „Exchange Management Shell” serwer zwróciłby informację
  550 5.7.1 Unable to Relay
Kolejnym krokiem jest wprowadzenie treści naszej wiadomości. Wydajemy polecenie

data

serwer zwróci informację
  354 Start mail input; end with .
i możemy zacząć wpisywać naszą wiadomość:

Subject: temat naszej wiadomości
Tresc naszej wiadomości

W pierwszej linii po słowie Subject: podajemy temat wiadomości, a poniżej treść wiadomości
Aby zakończyć wprowadzanie wiadomości wciskamy Enter następnie kropkę (.) i ponownie enter
serwer powinien zwrócić informacje o przekazaniu wiadomości do wysłania
Pracę z konsolą kończymy wydaniem polecenia

quit

Uwaga:
Należy pamiętam aby w konfiguracji wysyłania poczty podać port który ustawiliśmy w naszym łączniku receive