úterý 22. května 2012

SBS 2011 a interní SMTP relay server


Tohle je tak častý požadavek, že si jej radši uložím. 
Vše níže uvedené platí též pro Exchange Server 2010, ale při jeho instalaci se přeci jenom víc předpokládá, že ten, kdo to instaluje, rozumí víc problematice SMTP konektorů.

Téměř v každé společnosti se nachází nějaké interní železo, které neumí SMTP autentizaci a přitom chce odesílat e-maily. Může to být vícefunkční zařízení, skener, remote ovládací karta serveru nebo třeba hloupý RAID software hlídající zdraví disků. Ve všech těchto případech standardní instalace SBS 2011 narazí. Automaticky vytvořené konektory jsou totiž nakonfigurované tak, že umožňují příjem anonymní pošty pouze z brány příslušné podsítě. Tj. vylučují interní rozsah podsítě, v níž je SBS 2011 umístěn. Standardně ale není vytvořen ani žádný klientský SMTP konektor, jenž by povinně vyžadoval autentizaci (kterou by ale ta zařízení, o nichž píšu, stejně neuměla) a běžel na zabezpečeném portu třeba TCP/587. Už jsem se potkal i s názorem, že to SBS neumí, tak vedle něj postavíme linuxový relay server. OMG!

Tím správným řešením je vytvoření nového SMTP konektoru, který bude poslouchat pouze vyjmenovaným IP adresám interního rozsahu a umožní jim anonymně používat poštu. Je samozřejmě zodpovědností správce, aby z toho potom neudělal open relay a nedostal se okamžitě do různých black listů.
Vytvoření SMTP konektoru lze složitě popisovat, přikládat obrázky. V tomto případě ale zvolím daleko efektivnější postup – příkaz v PowerShellu.

New-ReceiveConnector -Name 'Interni SMTP relay' -Usage 'Custom' -Bindings '192.168.0.10:25' -Fqdn 'sbs2011.domena.local' -RemoteIPRanges '192.168.0.15' -Server 'SBS2011' –PermissionGroups AnonymousUsers

Tento příkaz by stačil k tomu, aby server SBS2011 běžící na IP adrese 192.168.0.10 umožnil odeslání e-mailu zařízení s IP adresou 192.168.0.15 všem adresátům, pro které je SBS2011 příjemcem pošty (tj. pro všechny Accepted domains). E-mail zaslaný přes tento konektor, projde všemi antispam filtry a odesílatel bude zobrazen v podobě SMTP adresy, nikoliv jeho Exchange aliasu.
Pokud se mají odesílat e-maily “do světa”, tj. příjemcům s jinými doménami, je nutné spustit ještě jeden PowerShell příkaz.

Get-ReceiveConnector 'Interni SMTP relay'| Add-ADPermission –User “NT AUTHORITY\ANONYMOUS LOGON” –ExtendedRights “ms-Exch-SMTP-Accept-Any-Recipient”

A to by bylo vše.