Мой маленький офис на пару тысяч пользователей. Часть 4. MS Exchange 2013 Client Access Server & Certification & Configuration

08.01.2014 - 15:31

Установка CAS роли не отличается чем-то особенным от установки Mailbox. Вся соль в последующей настройке. В планах - установка 2 серверов CAS с первоначальной балансировкой по DNS RoundRobin с последующим переключением на Citrix NetScaler.

External Access Domain: mail.nsvpx.com
FQDN CAS #1: cas01.nsvpx.com : 172.16.137.11
FQDN CAS #2: cas02.nsvpx.com : 172.16.137.13

Для начала, на настроенные сервера установим необходимые Prerequisites (забыл, как по-русски Happy ):

Install-WindowsFeature AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation

CAS1.png

Перезагрузка.
Установка Unified Communications Managed API 4.0 Runtime

Непосредственная установка (нужно смонтировать установочный образ):

Setup.exe /mode:install /role:ClientAccess /IAcceptExchangeServerLicenseTerms

CAS2.png

Данные действия необходимо повторить на втором сервере.

Запрос сертификата будем осуществлять с помощью командной строки:

$Data = New-ExchangeCertificate -FriendlyName "Exchange 2013 NSVPX" -GenerateRequest -Keysize 2048 -SubjectName "c=UA, l=Kiev, s=Kiev, o=BMS, ou=NSVPX, cn=mail.nsvpx.com" -DomainName mail.nsvpx.com,autodiscover.nsvpx.com,cas01.nsvpx.com,cas02.nsvpx.com -PrivateKeyExportable $true

Set-Content -path "\\mbx01\c$\Temp\Certs\Exchange_Request.req" -Value $Data

Открываем файл запроса в блокноте, проходим на страничку центра сертификации и выписываем сертификат шаблона Web Server:
CAS3.png

Импорт сертификата:

Import-ExchangeCertificate –Server CAS01 -FileData ([Byte[]]$(Get-Content -Path "\\mbx01\c$\Temp\Certs\Exch_Cert.cer" -Encoding byte -ReadCount 0))

При выполнении назначения сертификата, возникла ошибка, о том, что сертификат не может быть принят для сервисов, так как он неверного формата. Так как запрос сертификата делался с сервера MBX, то в веб консоли я закрыл запрос сертификатом. Данный сертификат нужно экспортировать в pfx и провести импорт на все CAS сервера.

Экспорт:
CAS4.png

В окне экспорта нужно указать UNC путь к файлу и пароль. Указать локальный путь на сервере нельзя.
CAS5.png

Импорт:
CAS6.png

Окно импорта и пароля:
CAS7.png

В окне сертификатов выбрать сервера, на которые необходимо импортировать сертификат:
CAS8.png

Окно импорта:
CAS10.png

Данные сертификата можно просмотреть, кликнув дважды на сертификат.
CAS11.png

В окне данных о сертификате, также, есть в наличии 2 вкладки с данными и сервисами, которые настроены на использование данного сертификата. Устанавливаем галочки напротив необходимых сервисов: SMTP и IIS:
CAS12.png

Сохраняем, на что система предупреждает, что сервисы уже привязаны к другому сертификату:
CAS13.png

Данное действие необходимо повторить на обеих CAS серверах. Результат - сервисы привязаны:
CAS14.png

Настройка:

Необходимо установить внешний почтовый адрес. В моей конфигурации используется split-DNS модель, когда внутри и снаружи используется одно и то же доменное имя - nsvpx.com.
По умолчанию, сервера CAS почтовой системы Exchange 2013 не настраиваются использовать внешнее имя, что означает: InternalURL & ExternalURL виртуальных директорий не настроены. Почти... внутренний InternalURL настроен на использование FQDN сервера, а ExternalURL необходимо настроить. С этим я немного зафейлил, рекомендую дочитать, чтобы сделать правильно сразу и не повторять моих ошибок.

Перейти на вкладку Servers:
CAS9.png

Нажать на ключик "Configure external access domain". Добавить оба сервера CAS и вписать внешнее имя:
CAS15.png

Сохраняем конфигурацию...
CAS16.png

...и... ошибка! Что-то типа "Error: The version of Internet Information Services (IIS) that is running on server 'CAS01.nsvpx.com' can't be determined". Странно... начал читать.. на форуме пишут, что необходимо открыть порты 137-139 и 445.

Включить правило разрешения 445 порта:
CAS18.png

Создать правило разрешения 137-139 портов:
CAS19.png

И тут до меня дошло, что сервера-то пытаются найти этот mail.nsvpx.com на DNS сервере, а его-то нет!
Создать 2 записи mail.nsvpx.com на оба IP (11й и 13й) для обеих серверов - DNS RoundRobin.
NsLookUp:
CAS17.png

Пробуем снова:
CAS20.png
Готово!
Я не могу сказать, что помогли оба варианта или какой-то из них, но в сумме - сработало. Думаю, сначала необходимо создать записи DNS Happy и в случае ошибки - колдовать с фаерволом.

Настраиваем виртуальные директории:
CAS21.png

Все директории, кроме AutoDiscover, настраиваются на использование URL внутри и снаружи организации.
Меняем внутренние URL для ECP:
CAS22.png

EWS:
CAS23.png

ActiveSync:
CAS24.png

Offline Address Book:
CAS25.png

OWA:
CAS26.png

PowerShell:
CAS27.png

Это же можно сделать через командную строку:
------------
Get-OWAVirtualDirectory | Set-OWAVirtualDirectory -ExternalURL https://mail.nsvpx.com/owa -InternalURL https://mail.nsvpx.com/owa
Get-ECPVirtualDirectory | Set-ECPVirtualDirectory -ExternalURL https://mail.nsvpx.com/ecp -InternalURL https://mail.nsvpx.com/ecp
Get-ActiveSyncVirtualDirectory | Set-ActiveSyncVirtualDirectory -ExternalURL https://mail.nsvpx.com/Microsoft-Server-ActiveSync -InternalURL https://mail.nsvpx.com/Microsoft-Server-ActiveSync
Get-WebServicesVirtualDirectory | Set-WebServicesVirtualDirectory -ExternalURL https://mail.nsvpx.com/ews/exchange.asmx -InternalURL https://mail.nsvpx.com/ews/exchange.asmx
Get-OABVirtualDirectory | Set-OABVirtualDirectory -ExternalURL https://mail.nsvpx.com/OAB -InternalURL https://mail.nsvpx.com/OAB
Get-PowershellVirtualDirectory | Set-PowershellVirtualDirectory -ExternalURL https://mail.nsvpx.com/Powershell -InternalURL https://mail.nsvpx.com/Powershell
------------

Настройка AutoDiscover:
Для начала, создадим необходимые DNS записи (пока, всё тот же RoundRobin):
CAS34.png

Настроить AutoDiscover из веб морды нельзя:
CAS28.png

Воспользуемся консолью:

Get-ClientAccessServer

CAS29.png
Get-ClientAccessServer | Set-ClientAccessServer -AutoDiscoverServiceInternalUri https://autodiscover.nsvpx.com/autodiscover/autodiscover.xml

CAS30.png

Outlook Anywhere
На текущий момент, Exchange 2013 не использует Direct MAPI для подключения толстых клиентов Outlook, для чего используется Outlook Anywhere. Это подразумевает использование HTTPS для подключения. По умолчанию, Anywhere включен и отчасти настроен, но не до конца.

Get-OutlookAnywhere | Select *external*,*internal*

CAS31.png

Установим необходимые нам значения:

Get-OutlookAnywhere | Set-OutlookAnywhere -ExternalHostname mail.nsvpx.com -ExternalClientsRequireSSL:$TRUE -InternalHostname mail.nsvpx.com -InternalClientsRequireSSL:$TRUE

CAS32.png

В чем я был сильно удивлён, так это в том, что ни разу, за настройку сервиса, я не перезагружал принудительно IIS. В мои предыдущие разы настройки эксченджей, это приходилось делать, чуть-ли не после каждого чиха.

Для проверки работы сервиса, необходимо:

  • Зайти на ECP по адресу https://mail.nsvpx.com/ecp , а не по FQDN сервера
  • Включить аккаунты для нескольких пользователей и отправить тестовое письмо один одному
  • Использовать для отправки веб-морду (OWA) по адресу https://mail.nsvpx.com/owa

У меня все тесты успешно пройдены.

Для построения тестовой и написания данной статьи, использовался материал Installing Exchange Server 2013 Part II

Ваша оценка: Нет Средняя: 3.4 (5 votes)

Комментарии:


Доброго времени.

Когда можно ожидать публикацию следующей части по разворачиванию и настройки балансировщика NetScaler?