Все предыдущие статьи серии закладывали фундамент: сервер, DAG, потоки почты, безопасность канала. Но для сотрудника вся эта инфраструктура сводится к одному вопросу — как открыть почту в браузере или на телефоне. В этой статье настраиваем Outlook Web App (OWA) и мобильный доступ через ActiveSync на связке серверов srv-mail01 и srv-mail02 в домене itpages.lab.local.

Виртуальные каталоги Exchange

OWA, ECP, ActiveSync, Outlook Anywhere и веб-службы Exchange реализованы как виртуальные каталоги IIS, которые создаются автоматически при установке роли Mailbox. Посмотреть текущую конфигурацию можно так:

Get-OwaVirtualDirectory | Format-Table Server, Name, InternalUrl, ExternalUrl
Get-ActiveSyncVirtualDirectory | Format-Table Server, Name, InternalUrl, ExternalUrl

По умолчанию InternalUrl и ExternalUrl часто не заданы или указывают на автоматически сгенерированное имя сервера — это первое, что нужно поправить, прежде чем публиковать доступ наружу.

Настройка внутреннего и внешнего URL для OWA

Set-OwaVirtualDirectory -Identity "srv-mail01\owa (Default Web Site)" `
  -InternalUrl "https://mail.itpages.lab.local/owa" `
  -ExternalUrl "https://webmail.itpages.it.com/owa"

Set-OwaVirtualDirectory -Identity "srv-mail02\owa (Default Web Site)" `
  -InternalUrl "https://mail.itpages.lab.local/owa" `
  -ExternalUrl "https://webmail.itpages.it.com/owa"

Обрати внимание: InternalUrl одинаковый на обоих серверах — это тот адрес, на который резолвится DNS-имя mail.itpages.lab.local внутри сети, обычно через балансировщик нагрузки или DNS round-robin между srv-mail01 и srv-mail02. ExternalUrl — публичный адрес webmail.itpages.it.com, доступный из интернета, обычно опубликованный через reverse-proxy или Application Gateway перед серверами Exchange.

Аналогично настраиваем ECP (Exchange Control Panel, панель настроек пользователя) и веб-службы:

Set-EcpVirtualDirectory -Identity "srv-mail01\ecp (Default Web Site)" `
  -InternalUrl "https://mail.itpages.lab.local/ecp" `
  -ExternalUrl "https://webmail.itpages.it.com/ecp"

Set-WebServicesVirtualDirectory -Identity "srv-mail01\EWS (Default Web Site)" `
  -InternalUrl "https://mail.itpages.lab.local/EWS/Exchange.asmx" `
  -ExternalUrl "https://webmail.itpages.it.com/EWS/Exchange.asmx"

Настройка политик аутентификации OWA

Для внутренней сети форменная аутентификация (Forms-Based Authentication) с логином и паролем — стандартный и удобный выбор. Для повышения безопасности стоит включить таймаут сессии на общедоступных компьютерах и отдельно настроить политику для приватных и публичных машин.

Set-OwaVirtualDirectory -Identity "srv-mail01\owa (Default Web Site)" `
  -LogonFormat FullDomain `
  -DefaultDomain "itpages.lab.local" `
  -ActionForUnknownFileAndMIMETypes Block

Параметр ActionForUnknownFileAndMIMETypes Block блокирует открытие вложений неизвестных типов прямо в браузере — базовая защита от потенциально опасных файлов, которую не стоит отключать без веской причины.

Проверка сертификата для веб-доступа

Для внешнего доступа к webmail.itpages.it.com нужен сертификат от публичного удостоверяющего центра — внутренний ЦС itpages.lab.local здесь не подойдёт, поскольку личные устройства сотрудников и внешние почтовые клиенты не будут ему доверять. Проверяем, что сертификат покрывает все нужные имена через Subject Alternative Name — как минимум mail.itpages.lab.local и webmail.itpages.it.com в одном сертификате, либо два отдельных сертификата на разных точках публикации.

Get-ExchangeCertificate -Server "srv-mail01" | Format-List Subject, CertificateDomains, Services

Настройка ActiveSync для мобильных устройств

ActiveSync — протокол синхронизации почты, календаря и контактов для мобильных устройств, встроенный в родные почтовые клиенты iOS и Android. Виртуальный каталог настраивается аналогично OWA:

Set-ActiveSyncVirtualDirectory -Identity "srv-mail01\Microsoft-Server-ActiveSync (Default Web Site)" `
  -InternalUrl "https://mail.itpages.lab.local/Microsoft-Server-ActiveSync" `
  -ExternalUrl "https://webmail.itpages.it.com/Microsoft-Server-ActiveSync"

Политики мобильных устройств

Прежде чем открывать корпоративную почту на личных смартфонах сотрудников, стоит настроить политику безопасности мобильных устройств — минимум это требование PIN-кода и возможность удалённой очистки в случае утери устройства.

New-MobileDeviceMailboxPolicy -Name "ITPages-Mobile-Policy" `
  -PasswordEnabled $true `
  -MinPasswordLength 6 `
  -AlphanumericPasswordRequired $false `
  -MaxPasswordFailedAttempts 10 `
  -DeviceWipeThreshold 10 `
  -AllowSimplePassword $false `
  -PasswordExpiration 90 `
  -DevicePolicyRefreshInterval "1.00:00:00"

Назначаем эту политику по умолчанию для всей организации или конкретным получателям через параметр -MobileMailboxPolicy при создании ящика:

Set-CASMailboxPlan -Identity "ITPages-Mobile-Policy" -MobileMailboxPolicy "ITPages-Mobile-Policy"

Управление подключёнными устройствами

Полезно периодически просматривать список устройств, синхронизирующихся с конкретным ящиком, — это первое, куда стоит заглянуть, если сотрудник жалуется на проблемы с синхронизацией или, наоборот, если нужно отреагировать на потерю телефона.

Get-MobileDeviceStatistics -Mailbox "ivanov" | Format-Table DeviceType, DeviceOS, LastSuccessSync

Удалённая очистка устройства при утере или увольнении сотрудника выполняется одной командой и не требует физического доступа к телефону — команда просто ставит устройству задачу wipe при следующем подключении к серверу:

Clear-MobileDevice -Identity "ivanov\AppleiPhone12,3"

Настройка light-версии OWA для старых браузеров

Хотя основная масса пользователей сегодня работает через современные браузеры, в некоторых сценариях — терминальные классы, устаревшие киоски, узкоспециализированное оборудование с ограниченными браузерами — полезно знать, что у OWA есть облегчённая версия интерфейса (Outlook Web App Light), автоматически включающаяся при обнаружении браузера с ограниченной поддержкой современных веб-стандартов.

Set-OwaVirtualDirectory -Identity "srv-mail01\owa (Default Web Site)" -LogonPagePublicPrivateSelectionEnabled $true
Get-OwaVirtualDirectory | Select-Object Server, LogonPageLightSelectionEnabled

Принудительно переключить конкретную сессию на light-версию можно и вручную, добавив параметр в адресную строку при входе — это не требует изменений на сервере и подходит как временное решение для одиночных проблемных случаев, не оправдывающих отдельную политику.

Проверка доступности OWA и ActiveSync снаружи

Microsoft предоставляет встроенные инструменты диагностики для проверки, что автообнаружение (Autodiscover) и подключение реально работают — Autodiscover нужен, чтобы Outlook и мобильные клиенты сами находили нужный сервер по адресу почты, без ручного ввода настроек.

Test-OutlookWebServices -Identity "ivanov@itpages.it.com"
Test-ActiveSyncConnectivity -MailboxCredential (Get-Credential) -URL "https://webmail.itpages.it.com/Microsoft-Server-ActiveSync"

Автообнаружение работает через DNS-запись autodiscover.itpages.it.com, которая должна указывать на тот же внешний адрес, что и webmail — без неё каждому пользователю пришлось бы вручную вводить адрес сервера при настройке телефона.

Современная аутентификация вместо Basic Auth

Базовая аутентификация (Basic Auth), при которой логин и пароль передаются в каждом запросе в закодированном, но не зашифрованном на уровне протокола виде, долгое время была стандартом для ActiveSync и Outlook Anywhere. Сегодня это устаревший и небезопасный подход — пароль фактически передаётся в каждом запросе, а перебор учётных данных ничем, кроме политики блокировки после N попыток, не сдерживается. Современная аутентификация (Modern Auth), основанная на OAuth 2.0, заменяет пароль токеном с ограниченным сроком действия и поддерживает многофакторную проверку.

Set-OrganizationConfig -OAuth2ClientProfileEnabled $true
Get-AuthServer | Format-Table Name, Enabled, IsDefaultAuthorizationEndpoint

Для локального (не гибридного с облаком) Exchange Server полноценная реализация Modern Auth требует дополнительной интеграции с Active Directory Federation Services (AD FS) — тема отдельной большой статьи, но начать стоит именно с отключения Basic Auth там, где это возможно уже сейчас, особенно для внешнего доступа через ActiveSync.

Set-ActiveSyncVirtualDirectory -Identity "srv-mail01\Microsoft-Server-ActiveSync (Default Web Site)" `
  -BasicAuthEnabled $false

Перед полным отключением Basic Auth обязательно проверь, что все реально используемые в компании почтовые клиенты и мобильные приложения поддерживают современную аутентификацию — устаревшие или самописные интеграции иногда завязаны именно на базовую схему и потребуют обновления заранее, а не в момент, когда сотрудники массово перестанут получать почту.

Диагностика проблем подключения

Когда пользователь жалуется, что не может открыть почту в браузере или на телефоне, полезно иметь под рукой набор стандартных проверок, прежде чем разбираться глубже. Начинаем с самого сервера — проверяем, что все связанные с клиентским доступом службы запущены и виртуальные каталоги в исправном состоянии.

Get-Service MSExchangeOWAAppPool, MSExchangeECPAppPool, W3SVC | Select-Object Name, Status
Test-OwaConnectivity -MailboxCredential (Get-Credential) -Url "https://webmail.itpages.it.com/owa"

Если сервер в порядке, а проблема воспроизводится только у конкретного пользователя, стоит проверить, не заблокировано ли его устройство политикой мобильных устройств и не превышен ли лимит одновременных активных устройств на ящик.

Get-CASMailbox -Identity "ivanov" | Select-Object ActiveSyncEnabled, OWAEnabled, ActiveSyncSuppressReadReceipt
Get-MobileDeviceStatistics -Mailbox "ivanov" | Select-Object DeviceType, Status, DeviceAccessState

Поле DeviceAccessState со значением Blocked или Quarantined сразу указывает на причину — устройство не прошло правило доступа ActiveSync, которое мы настраивали выше, и его нужно либо явно разрешить, либо объяснить пользователю, что личный незарегистрированный телефон не соответствует политике безопасности компании.

Outlook Anywhere и MAPI over HTTP

Помимо веб-браузера и мобильных приложений, десктопный Outlook подключается к Exchange по протоколу MAPI over HTTP (в современных версиях — стандарт по умолчанию, пришедший на смену устаревшему Outlook Anywhere через RPC over HTTP). Виртуальный каталог настраивается похожим образом:

Set-OutlookAnywhere -Identity "srv-mail01\Rpc (Default Web Site)" `
  -ExternalHostname "webmail.itpages.it.com" `
  -InternalHostname "mail.itpages.lab.local" `
  -ExternalClientsRequireSsl $true `
  -InternalClientsRequireSsl $true

Set-MapiVirtualDirectory -Identity "srv-mail01\mapi (Default Web Site)" `
  -InternalUrl "https://mail.itpages.lab.local/mapi" `
  -ExternalUrl "https://webmail.itpages.it.com/mapi"

Проверить, какой протокол реально использует MAPI-клиент для подключения, удобно через диагностику самого Outlook (Ctrl + клик правой кнопкой на иконке в трее → Connection Status) или через серверную команду, показывающую активные MAPI-сессии.

Get-MapiVirtualDirectory | Format-List Server, InternalUrl, ExternalUrl, IISAuthenticationMethods

Разграничение доступа: приватные и публичные компьютеры

OWA умеет по-разному вести себя в зависимости от того, отметил ли пользователь при входе компьютер как «личный» или «общедоступный» — на общедоступных сессия короче, а доступ к вложениям может быть ограничен просмотром без скачивания на диск.

Set-OwaMailboxPolicy -Identity "Default" `
  -DirectFileAccessOnPublicComputersEnabled $false `
  -ForceWacViewingFirstOnPublicComputers $true `
  -PublicComputersDetectionEnabled $true

Параметр ForceWacViewingFirstOnPublicComputers заставляет открывать документы Office через встроенный веб-просмотрщик, а не сразу предлагать скачивание, — полезная мера для компьютеров в переговорных или общих зонах, где физический доступ к устройству не гарантированно принадлежит только владельцу почты.

Условный доступ и ограничение по устройствам

Если политика компании требует, чтобы к почте могли подключаться только устройства с установленным корпоративным профилем управления (MDM), можно квотировать доступ через список разрешённых типов устройств и блокировать ActiveSync для незарегистрированных.

New-ActiveSyncDeviceAccessRule -QueryString "Apple iPhone OS" -Characteristic DeviceOS -AccessLevel Allow
Set-CASMailbox -Identity "ivanov" -ActiveSyncBlockedDeviceIDs @{Add="unregistered-device-id"}

Частые ошибки и как их избежать

  • InternalUrl и ExternalUrl не совпадают с реальным сертификатом. Если в сертификате нет имени, указанного в одном из URL, клиенты будут получать предупреждения о недоверенном соединении или вовсе не смогут подключиться. Сверяй CertificateDomains с URL на всех виртуальных каталогах после любого изменения.
  • Не настроена запись autodiscover в публичном DNS. Без неё Outlook и мобильные приложения не смогут автоматически найти сервер, и пользователям придётся вручную указывать адреса серверов — источник постоянных обращений в техподдержку.
  • Политика мобильных устройств не назначена по умолчанию. Если забыть привязать MobileMailboxPolicy к новым ящикам, часть сотрудников будет синхронизировать корпоративную почту на личных телефонах вообще без PIN-кода и возможности удалённой очистки. Проверяй назначение политики сразу при создании новых ящиков.

Что дальше

Exchange — большая система, вот с чем ещё стоит разобраться: