Exchange: obsluha pošty pomocí Receive Connectors

Pokud chceme využít protokol SMTP a na Exchange server odeslat zprávu, tak se na straně Exchange využívá logická brána, která se označuje jako Receive Connector.

Tyto konektory zpracovávají příchozí komunikaci z internetu, ostatních poštovních serverů a klientů, kteří nepoužívají protokol MAPI. Variant, které v praxi potřebujeme nastavit, je velké množství, a ne vše je možno provést pomocí EMC.

Pozn.: Uváděné informace odpovídají Exchange Server 2010 SP2, ale i verze 2007 je v této oblasti velice podobná.

V nadpisu je uvedeno odesílání pošty pomocí Receive Connectors, což se může zdát jako nesmysl, protože tento konektor slouží pro příjem pošty. Pro odesílání máme jiný typ konektoru, který se jmenuje Send Connector. Ale přesto nastavení práv na Receive Connector ovlivňuji v určitých situacích, jestli se nám podaří odeslat zprávu někam dále. Také se na termíny příjem/odesílání musíme dívat z pohledu Exchange serveru a ne našeho. Konfigurace Send Connector v sobě nemá žádné záludnosti a zde se jim věnovat nebudeme.

Popis Receive Connectors

Na Exchange serveru můžeme vytvořit celou řadu přijímacích konektorů. Rozlišují se podle unikátní kombinace parametrů, což je lokální IP adresa, port a zdrojový rozsah IP adres. Dle těchto hodnot se vybírá konektor, který se použije pro dané spojení.

Konfiguraci nebo vytváření Receive Connector provádíme pomocí Exchange Management Console (EMC), která nedovolí nastavit všechny vlastnosti, nebo Exchange Management Shell (PowerShell), k některým nastavením můžeme použít i ADSIEdit.

Když pracujeme s konektory, tak nejčastěji řešíme dvě oblasti:

  • kdo se může ke konektoru připojit – tedy autentizaci
  • kam je možno přes daný konektor doručovat zprávy – pouze do schránek na serveru nebo předávat dále do internetu, případně jaká může být adresa odesílatele – takže jde o oprávnění

Pozn.: S Receive Connector souvisí i termín Open Relay, tak se označuje server, který dovolí komukoliv z internetu skrze něj odesílat poštu (tedy i zprávy, které nekončí na něm) bez autentizace. To je již dlouho naprosto nežádoucí, protože takové servery jsou zneužívány SPAMery.

Na Hub Transport serveru (který je zařazený do domény) se informace o konektorech ukládají do Active Directory. Můžeme se na ně podívat třeba pomocí nástroje ADSIEdit.msc v Configuration – Services – Microsoft Exchange – firma – Administrative Groups – Exchange Administrative Groups – Servers – server – Protocols – SMTP Receive Connectors.

Konfigurace Receive Connector pomocí Exchange Management Console se nachází v Server Configuration – Hub Transport – náš server.

exch01.gif

Defaultní konektory

Po instalaci serveru s rolí Hub Transport se automaticky vytvoří dva konektory Client Servername (NetBIOS jméno serveru je servername), který je plánovaný pro příjem pošty od non-MAPI klientů, nastaven je pro Exchange User s autentizací, ale používá pro příjem port 587 (sice jde o používaný port pro tento účel, ale je mnohem méně známý než běžný port 25). Druhý konektor je Default Servername, ten je plánovaný na příjem pošty od jiných Hub Transport a Edge Transport serverů, také vyžaduje autentizaci a povoluje připojení serverů, poslouchá standardně na portu 25.

Počítá se s tím, že máme Edge Transport Server, kde se vytvoří konektor, který akceptuje anonymní připojení z internetu (které potřebujeme pro příjem zpráv z jiných poštovních serverů). Pokud jej nemáme, tak musíme upravit defaultní konektor nebo vytvořit nový.

Vytváření konektoru

Při vytváření nového konektoru nastavujeme předpokládaný účel použití, podle této volby se nastaví autentizace a oprávnění na konektoru. U již vytvořeného konektoru nemáme možnost tento účel měnit (nic takového v jeho parametrech neexistuje, tato hodnota slouží pouze k nastavení v průvodci), ale můžeme upravovat jednotlivě autentizaci a oprávnění.

exch02.gif

Nastavit můžeme následujících pět hodnot, u nich je uvedeno jaké vlastnosti se nastaví.

  • Clientpermission groups: ExchangeUsers, authentication: TLS, Basic authentication + TLS, Integrated Windows authentication
  • Custompermission groups: none, authentication: none
  • Internalpermission groups: ExchangeServers, ExchangeLegacyServers, authentication: Exchange Server authentication
  • Internetpermission groups: AnonymousUsers, Partner, authentication: None or Externally Secured
  • Partnerpermission groups: Partner, authentication: TLS + Enable Domain Security (Mutual Auth TLS)

Následující dva obrázky ukazují první záložky ve vlastnostech vytvořeného Receive Connector, jak si je můžeme prohlédnout a editovat pomocí EMC. Zde se nastavují základní vlastnosti konektoru, které jsou dostatečně intuitivní, takže je nebudeme podrobněji rozebírat a podíváme se až na další záložky.

exch03.gif exch04.gif

Když se začíná navazovat SMTP session, tak se nejprve podle síťových parametrů zvolí odpovídající konektor. Potom se klientovi nabídnou povolené autentizační metody na daném konektoru. Ten si z nich zvolí tu nejlepší, kterou podporuje a autentizuje se. Po té, co dojde k autentizaci, se nastaví daná oprávnění. Tyto věci souvisí s hodnotami, které nastavujeme na konektoru, v EMC jde o záložky Authentication a Permission Groups.

Authentication

Na záložce Authentication volíme, jaké autentizační metody bude konektor nabízet a podporovat. Pokud chceme připojení bez autentizace, tak nezaškrtneme žádnou volbu. Pro připojení z některých aplikačních serverů potřebujeme zvolit Basic Authentication (což odpovídá SMTP AUTH), ideálně s TLS, protože jinak je heslo přenášeno nezabezpečeně (jméno i heslo je pouze kódované pomocí Base64). Integrated Windows authentication využívá NTLM nebo Kerberos.

exch05.gif

Permission Groups

Permission Groups jsou předdefinované skupiny objektů (uživatelé, počítače, bezpečnostní skupiny), které můžeme nastavovat na Receive Connector. Například Exchange Users obsahuje AD skupinu Authenticated Users a v Anonymous users jsou neautentizovaní uživatelé. Navíc se každé skupině automaticky přiřazují různá detailní oprávnění. Pro Anonymous jde o Ms-Exch-SMTP-Submit, Ms-Exch-SMTP-Accept-Any-Sender, Ms-Exch-SMTP-Accept-Authoritative-Domain-Sender, Ms-Exch-Accept-Headers-Routing. Pro Authenticated Users jsou práva Ms-Exch-SMTP-Submit, Ms-Exch-SMTP-Accept-Any-Recipient, Ms-Exch-Bypass-Anti-Spam, Ms-Exch-Accept-Headers-Routing.

exch06.gif

Receive Connector Permissions

Co se týče oprávnění na konektoru, tak EMC nám dovoluje provést pouze hrubé nastavení pomocí Permission Groups, které by údajně mělo být dostatečné pro většinu situací (já to tak ovšem nevidím). Volbou nějaké skupiny oprávnění se na vlastní konektor nastaví práva (ExtendedRights) pro určitý objekt. Pro účely Exchange serveru existuje několik speciálních oprávnění. Většinou je jejich účel vcelku pochopitelný již z názvu, ale uvedeme si zde stručný popis nejdůležitějších práv.

  • ms-Exch-SMTP-Submit – základní právo, aby konektor přijal zprávu
  • ms-Exch-SMTP-Accept-Any-Recipient – dovolí posílat zprávy (relay) příjemcům mimo naši organizaci, bez tohoto oprávnění přijímá pouze zprávy pro příjemce, jejichž adresa spadá do accepted domains
  • ms-Exch-SMTP-Accept-Any-Sender – obchází kontrolu podvržení odesilatele, v opačném případě musí mít uživatel oprávnění odesílat za tuto adresu
  • ms-Exch-SMTP-Accept-Authoritative-Domain-Sender – umožňuje odesílat zprávy z emailových adres, které patří mezi autoritativní domény (zpracovává je náš server)
  • ms-Exch-Accept-Headers-Routing – ponechává hlavičky beze změny, v opačném případě se received headers odstraňují

Konfigurace Receive Connectors

Základní vytvoření konektoru nebo jeho nastavení pomocí Exchange Management Console není složité. Obdobné je i pomocí Exchange Management Shell, kde máme k dispozici hlavně dva příkazy New-ReceiveConnector, Set-ReceiveConnector. Tomu se zde ale věnovat nebudeme a podíváme se spíš na nastavení, která nemůžeme provést pomocí EMC.

Pro detailní nastavování práv na konektor můžeme využít buď EMS nebo také ADSIEdit.msc. Další popis bude využívat EMS, ale jde o to vědět, co nastavujeme a pokud někdo upřednostňuje ADSIEdit, tak není problém provést nastavení v něm (cestu, kde se konektor nachází, jsme si uvedli v začátku článku).

Nastavení Banneru – identifikace serveru

V úvodu si zmíníme pouze jednu výjimku z dalšího popisu konfigurace oprávnění. Jde o vhodné bezpečnostní nastavení na konektoru, hlavně pokud je dostupný z internetu. Při navázání SMTP spojení na server se tento identifikuje svým jménem a textem Microsoft ESMTP MAIL Service, což může napovídat útočníkovi (samozřejmě to není jediná věc, podle které je možné poznat, že jde o Microsoft poštovní server). Tento text můžeme změnit konfigurací konektoru pomocí EMS.

Set-ReceiveConnector -Identity "SERVER\Default SERVER" -Banner "220 Firma mail server"

Zjištění nastavených oprávnění na konektoru

Jak jsme si uvedli, tak pomocí EMC vidíme pouze nastavené Permission Groups. V praxi se často potřebujeme podívat přímo na oprávnění a případně je měnit. Pomocí EMS si můžeme nejprve vypsat seznam konektorů:

Get-ReceiveConnector

Následně zobrazit nastavená oprávnění na konektoru:

Get-ReceiveConnector "SERVER\jméno konektoru" | Get-ADPermission | FT -AutoSize

To je dlouhý seznam a neobsahuje ExtendedRights, což je asi to hlavní, co chceme zobrazit. Takže náš dotaz trochu upravíme.

Get-ReceiveConnector "SERVER\jméno konektoru" | Get-ADPermission | Sort-Object User | FT User, ExtendedRights, Deny, IsInherited -AutoSize

To už je hezčí, ale pořád dlouhý seznam. V řadě případů nás zajímají oprávnění nastavená pro autentizované a anonymní uživatele, takže můžeme ještě seznam omezit. Případně upravíme tak, že se nám zobrazí práva pro určitou skupinu či uživatele.

Get-ReceiveConnector "SERVER\jméno konektoru" | Get-ADPermission | where-object {$_.User -ilike "NT*"} | Sort-Object User | FT User, ExtendedRights, Deny, IsInherited -AutoSize

Nastavení oprávnění na konektoru

V praxi nastávají různé situace, kdy nám nevyhovuje defaultní nastavení práv a potřebujeme je nastavit lépe. Nejčastěji jde o to, že chceme využít Relay. Tedy, aby náš poštovní server přeposílal zprávy, například z aplikačních serverů, tiskáren, apod. Jde o to, abychom dle možností nastavili tuto situaci bezpečně a nevytvořili Open Relay. Uvedeme si pár běžných situací, a jaká práva je třeba nastavit. Na konci je příklad příkazu, který nastavení provede.

Konektor, který přijímá poštu z internetu, musí akceptovat anonymní uživatele. To můžeme nastavit i pomocí EMC. V EMS pak můžeme zkontrolovat, že pro tuto skupinu (ANONYMOUS LOGON) akceptuje pouze zprávy určené příjemcům z Accepted Domains, tzn. nemá právo ms-Exch-SMTP-Accept-Any-Recipient.

Konektor pro klienty většinou musí dovolit odeslat zprávy všem příjemcům (i mimo organizaci) a měl by vyžadovat autentizaci, takže skupina Authenticated Users potřebuje právo ms-Exch-SMTP-Accept-Any-Recipient.

Pro aplikační servery potřebujeme konektor, který omezíme pouze na vybrané IP adresy odesílatelů, buď mu nastavíme autentizaci (třeba Basic + TLS) nebo třeba i bez autentizace (pokud ji klient nepodporuje). Pokud chceme odesílat zprávy i mimo organizaci, tak potřebujeme ms-Exch-SMTP-Accept-Any-Recipient, a může být třeba nastavit i ms-Exch-SMTP-Accept-Any-Sender. Pokud využíváme autentizaci, tak asi máme speciální účet, kterým se klient ověřuje, a na konektoru můžeme nastavovat práva pouze pro tohoto uživatele.

Pokud konektor neomezujeme, například na zdrojové IP adresy, tak jej můžeme použít pro více skupin s různými právy. Protože jiná oprávnění nastavíme autentizovaným uživatelům a jiná anonymním.

Nastavení pomocí EMS vypadá následovně:
Get-ReceiveConnector "SERVER\Default SERVER" | Add-ADPermission -User "NT AUTHORITY\Authenticated Users" -ExtendedRights ms-Exch-SMTP-Accept-Any-Sender, ms-Exch-SMTP-Accept-Authoritative-Domain-Sender.

Autor: Petr Bouška

Články ze série Microsoft TechNet nevytváří redakce Živě.cz, ale partneři programu Microsoft TechNet. Jsou publikovány v rámci mediálního partnerství Živě.cz a společnosti Microsoft.

Diskuze (4) Další článek: Ovládejte Samsung Smart TV hlasem a gesty!

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,