Работаем в облаке на базе Hyper-V, часть 2: развертывание Exchange Server

На прошлой неделе мы познакомились с порталом управления облачной инфраструктурой на базе Azure Pack, научились создавать виртуальную сеть и виртуальные машины. Сегодня будет разворачивать и настраивать Exchange Server из шаблона.

Содержание



В ходе нашего эксперимента будем создавать ИТ-инфраструктуру со следующими характеристиками:

Имя домена Active Directory: cloud-v.datalinecentre.ru

Внешнее DNS-имя: cloud-v.datalinecentre.ru

Контроллер домена 1: MSK-DC01 (2 CPU/2Gb RAM/40 HDD)

Контроллер домена 2: MSK-DC02 (2 CPU/2Gb RAM/40 HDD)

Exchange сервер c ролью почтовых ящиков и клиентского доступа 1: MSK-EXH01 (4CPU/8Gb RAM/50Gb+170Gb HDD)

Exchange сервер c ролью почтовых ящика и клиентского доступа 2: MSK-EXH02 (4CPU/8Gb RAM/50Gb+170Gb HDD)

Виртуальная сеть организации: 10.10.10.0/24

Метод балансировки: DNS

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


Схема нашей ИТ-инфраструктуры.

Перед установкой Microsoft Exchange Server 2013 необходимо подготовить лес Active Directory и его домены. Информация о почтовых ящиках пользователей и конфигурации серверов Exchange должна где-то храниться. Мы для этого будем использовать контроллер домена Active Directory.

  1. В портале управления переходим в раздел Виртуальные машины и кликаем Создать.




  2. Выбираем Роль виртуальной машины, Из коллекции.




  3. Выбираем шаблон Контроллер домена Windows 2012 R2.




  4. Указываем имя роли виртуальной машины.




  5. Указываем параметры виртуальной машины:
    • Размер (CPU, RAM, HDD)
    • Пароль и логин локального администратора
    • Часовой пояс
    • Имя виртуальной машины
    • Виртуальную сеть





  6. Вводим параметры создаваемого леса Active Directory и нажимаем OK.




  7. Готово. Виртуальная машина с ролью Active Directory развернута.




    Для обеспечения отказоустойчивости рекомендуем развернуть как минимум два контроллера домена в своей инфраструктуре. Создадим вторую виртуальную машину с ролью Active Directory. Для этого воспользуемся функцией масштабирования, которая есть в панели.

  8. Выбираем из списка нужную Виртуальную машину. Переходим во вкладку Масштабирование и выбираем на бегунке нужное число экземпляров. Жмем Сохранить.




  9. Готово. Во вкладке Экземпляры появилась вторая виртуальная машина с ролью контроллера домена, присоединенная в существующий домен Active Directory.




Разворачиваем виртуальную машину с ролью Exchange Server 2013

Active Directory у нас есть. Обычно перед развертыванием Exchange Server нужно расширить схемы Active Directory и подготовить домены. При развертывании виртуальной машины Exchange Server из шаблона, все действия по расширению схемы и подготовке домена выполняются автоматически. Как и с Active Directory, создаем роль виртуальной машины.

  1. Выбираем Из коллекции Exchange Server 2013 SP1 CU9.




  2. Задаем имя роли виртуальной машины.




  3. Задаем параметры виртуальной машины.
    • Размер (CPU, RAM, HDD)
    • Пароль и логин локального администратора
    • Часовой пояс
    • Имя виртуальной машины
    • Виртуальную сеть — подключаем виртуальную машину к той же сети, в которой создали ВМ с Active Directory.





  4. Задаем параметры учетной записи.




  5. Готово.




  6. Как и в случае с Active Directory, создаем дополнительную виртуальную машину Exchange Server с помощью функции масштабирования.




Проверка корректного запуска служб Exchange Server

Подключаемся к нашим виртуальным машинам c Exchange Server через RDP-консоль.

  1. Выделяем виртуальную машину и жмем на панели команд Подключить, Консоль.




  2. Через сохраненный RDP-файл подключаемся к виртуальной машине.




  3. Проверяем статус служб Exchange Server через Exchange Management Shell (EMS).




  4. Выполняем команду test-servicehealth –Server “имя Exchange сервера”.




  5. Также после развертывания виртуальной машины с Exchange рекомендуем пробежаться по логам на предмет ошибок.




Настройка DNS зоны и правил форвардинга портов

DNS-записи. Чтобы Exchange Server мог отправлять и принимать почту, проходить антиспам проверки, нужно добавить следующие DNS-записи во внешнюю зону. В нашем случае, записи будут выглядеть следующим образом:

A-записи:
  • Autodiscover.cloud-v.datalinecentre.ru 185.99.13.17
  • Autodiscover.cloud-v.datalinecentre.ru 185.99.13.19
  • Mail.cloud-v.datalinecentre.ru 185.99.13.17
  • Mail.cloud-v.datalinecentre.ru 185.99.13.19
MX-запись:

Mail.cloud-v.datalinecentre.ru 5

Txt-запись:

«v=spf1 ip4:185.99.13.19 ip4:185.99.13.17 -all»

Не забудьте для A-записей добавить PTR-записи в обратной зоне провайдера, которому принадлежат внешние IP-адреса. Они нужны для прохождения антиспам проверок.


Создание правил форвардинга портов. Для корректной работы сервера нам понадобятся следующие порты:


  • 25/587– SMTP
  • 80/443 – HTTP/HTTPS

Сюда же добавляем порты протоколов POP3 110/995 и IMAP 143/993, если планируем их использовать для подключения клиентов.


  1. В портале управления заходим в раздел Сети и выбираем сеть, в которой работают машины с Exchange. Переходим во вкладку Правила.




  2. Нажимаем Добавить правило.




  3. Заполняем поля и сохраняем.




  4. По аналогии добавляем правила для каждого внешнего IP-адреса: у нас их два (185.99.13.19 и 185.99.13.17), так как развернуто два сервера Exchange. Вот что должно получиться в итоге:




Настройка кластера баз данных серверов Exchange

Мы с вами развернули два сервера Exchange для обеспечения большей доступности. На их основе мы настроим отказоустойчивый кластер — Database Availability Group (DAG).

DAG можно создать через Exchange Management Shell или Exchange Control Panel. Мы продолжим работу с EMS.

  1. Подключимся к виртуальной машине через консоль, введем команду
    New-DatabaseAvailabilityGroup, где:
    • Name – имя группы доступности;
    • WitnessServer – сервер-свидетель;
    • WitnessDirectory – директория на сервере-свидетеле, в которой будет храниться служебная информация;
    • DatabaseAvailabilityGroupIpAddress – IP-адрес кластера.





    Важно: при четном количестве серверов в DAG необходимо иметь сервер-свидетель, который будет определять кворум в кластере. Этот сервер не может быть одним из членов кластера. В группу локальных администраторов этого сервера должна быть включена группа Exchange Trusted Subsystem. В нашем случае роль сервера-свидетеля будет выполнять контроллер домена. В продуктивной среде так делать нельзя и лучше использовать выделенный сервер.

    При нечетном количестве серверов в DAG сервер-свидетель не нужен.


  2. Добавляем в DAG серверы msk-exh01 и msk-exh02. Выполняем команду
    Add-DatabaseAvailabilityGroupServer, где:
    • Identity – имя DAG группы;
    • MailboxServer – сервер с ролью почтовых ящиков, который мы хотим добавить в кластер.

  3. Проверим, что сервера добавлены в кластер. Команда Get-DatabaseAvailabilityGroup.




  4. Добавим пассивную копию нашей базы почтовых ящиков. Команда Add-MailboxDatabaseCopy, где:

    • Identity – имя базы, для которой необходимо создать копию;
    • Mailboxserver – имя сервера, на котором необходимо разместить копию;
    • ActivationPreference – значение, которое указывает очередность активации копии в случае внепланового выхода из строя активной копии.




  5. Проверяем состояние копии базы командой Get-mailboxDatabaseCopy.




Наша DAG группа готова.

Настройка клиентского доступа

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

  • Outlook Anywhere – это протокол, пришедший на смену протоколу RPC/TCP, недоступному начиная с Exchange Server 2013. По факту он является тем же RPC, но завернутым в HTTP, с шифрованием трафика при помощи SSL/TLS.
  • Outlook Web Access (доступ через браузер)
  • Протокол POP3
  • Протокол IMAP
  • Exchange ActiveSync (для подключения мобильных клиентов)

Все указанные способы подключения используют шифрованное соединение, требующее SAN или Wildcard SSL-сертификат.

Для корректной работы с почтовым сервером, нам понадобится как минимум 2 имени в SSL сертификате. В нашем случае это имя для SMTP, HTTPS, POP, IMAP сервисов, а также имя для службы автообнаружения (autodiscover): Mail.cloud-v.datalinecentre.ru и Autodiscover.cloud-v.datalinecentre.ru.

Установка сертификата. Для выпуска сертификата необходимо создать Certificate Signing Request (CSR). Данную процедуру проще всего выполнить через Exchange Control Panel (ECP):


  1. Заходим в ECP.




  2. Переходим в раздел Servers, вкладка Certificates. Выбираем один из наших серверов, нажимаем “+”.




  3. Выбираем опцию Create a request for a certificate from certification authority.




  4. Вводим Friendly name.




  5. Убираем галочку для запроса wildcard сертификата, поскольку мы будем использовать SAN-сертификат.




  6. Указываем, на какой сервер необходимо сохранить запрос.




  7. Указываем имена, которые будет содержать наш SAN сертификат.




  8. Заполняем необходимые поля.




  9. Указываем путь, где будет храниться наш CSR. Жмем Finish.




  10. Готово. CSR создан. На основании нашего CSR выпускаем сертификат и устанавливаем его на сервер.




  11. Создаем “расшаренную” папку на любом из созданных серверов и сохраняем туда сертификат.
  12. Заходим в консоль ECP. В разделе Servers переходим во вкладку Certificates. В поле Status жмем Complete.




  13. Указываем путь до папки, в которой лежит наш сертификат.




  14. Сертификат добавлен. Важно, чтобы статус сертификата был Valid.




  15. Теперь назначим на него сервисы SMTP, IIS, POP, IMAP. Дважды кликаем по нашему сертификату, заходим в Services и проставляем галочку напротив необходимых нам сервисов.




  16. Жмем Yes при появлении предупреждения.


Мы установили сертификат на один из серверов Exchange. Чтобы установить сертификат на другие сервера заходим на сервер, где уже установлен сертификат, и экспортируем его с приватным ключом.

  1. Открываем Microsoft Management Console (MMC), добавляем оснастку управления сертификатами компьютера.




  2. Заходим во вкладку персональных сертификатов, экспортируем.




  3. Выполняем экспорт приватного ключа.








  4. Указываем безопасный пароль, который нужно ввести при импорте сертификата.




  5. Указываем место, куда будет сохранен сертификат. Жмем Finish.




  6. Экспортированный сертификат переносим на оставшийся сервер. В нашем случае это msk-exh02. Открываем MMC, добавляем оснастку управления сертификатами компьютера, заходим во вкладку персональных сертификатов, импортируем.




  7. Указываем путь до сертификата.




  8. Указываем пароль, который мы задали при экспорте. Также можно поставить галочку возможности экспорта приватного ключа.




  9. Готово. Сертификат импортирован вместе с приватным ключом.








  10. В ECP назначаем на него сервисы, как мы это делали для первого сервера.

  11. Готово. Наш SSL сертификат импортирован на оба Exchange сервера.

  12. Проверим, что при заходе в OWA в браузере фигурирует корректный сертификат.









Настройка виртуальных директорий. С помощью виртуальных директорий клиенты получают доступ к OWA, ECP, адресной книге(OAB), протоколу ActiveSync, Веб службам (EWS).

В нашем случае для настройки виртуальных директорий мы задаем параметр ExternalURL. Служба автообнаружения (autodiscover) будет отдавать его клиентам. Также можно указать параметр InternalURL, если в вашей организации имеются доменные клиенты, подключающиеся к Exchange в пределах локальных сетей организации.

Открываем EMS и поочередно выполняем настройку виртуальных директорий с помощью команд:


  1. Get-EcpVirtualDirectory | Set-EcpVirtualDirectory –externalURL “Внешний URL директории”
  2. Get-OwaVirtualDirectory | Set-OwaVirtualDirectory –externalURL “Внешний URL директории”
  3. Get-WebServicesVirtualDirectory | Set-WebServicesVirtualDirectory –ExternalURL “Внешний URL директории”
  4. Set-OabVirtualDirectory | Set-OabVirtualDirectory –externalURL “Внешний URL директории”
  5. Get-ActiveSyncVirtualDirectory | Set-ActiveSyncVirtualDirectory –ExternalURL “Внешний URL директории”

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

Служба Outlook Anywhere позволяет настроить удаленный доступ к Exchange и мобильное приложение Outlook.

Для работы Outlook Anywhere требуется задать имя подключения к службе, в нашем случае это Mail.cloud-v.datalinecentre.ru. Открываем EMS и выполняем команду:

Get-OutLookAnyWhere | Set-OutlookAnyWhere –ExternalHostName “внешнее имя подключения к службе” –ExternalClientRequireSsl:$true –IISAuthenticationMethods “Basic”,”NTLM”,”Negotiate” –ExternalClientAuthenticationMethod “Negotiate”

Для обеспечения работы Autodiscover мы добавили 2 А-записи во внешней DNS зоне, указывающие на сервера Exchange:

  • Autodiscover.cloud-v.datalinecentre.ru 185.99.13.17
  • Autodiscover.cloud-v.datalinecentre.ru 185.99.13.19

Проверим, что клиенты Microsoft Outlook подключаются. Создаем профиль, указываем email адрес и пароль:













Клиенты Outlook подключаются корректно.

Конфигурация почтового транспорта

“Из коробки” сервер Exchange позволяет отправлять почту лишь внутри организации. Для отправки почты в Интернет нужно:

  • Создать обслуживаемые домены. Это адресное пространство, которое обслуживает наш почтовый сервер Exchange. Можно создавать несколько доменов.
  • Создать коннектор отправки. С его помощью мы можем управлять почтовым потоком, задавая различные настройки.

  1. В ECP в разделе mail flow переходим во вкладку accepted domains. Жмем “+”. Указываем имя нашего домена, выбираем тип Authoritative. Сохраняем.




  2. В разделе mail flow переходим во вкладку send connectors. Жмем “+”. Задаем имя и указываем тип Custom.




  3. Указываем отправку через MX-записи.




  4. Указываем адресное пространство. В нашем случае это “*”, означающая всё пространство доменных имен.




  5. Указываем сервера, с которых будет происходить отправка почты за пределы организации Exchange. В нашем случае это оба сервера. Кликаем Add.








  6. Чтобы наш сервер успешно проходил антиспам проверки, в коннекторе отправки указываем параметр FQDN HELO. Это имя, которым будет представляться наш сервер при создании SMTP-сессии. Принимающий почту сервер будет выполнять reverse dns lookup, сопоставляя имя PTR-записи с именем, которое мы указали в коннекторе отправки. При несовпадении имен, сервер-отправитель не пройдет антиспам проверку.

    Для настройки имени HELO заходим в параметры коннектора отправки и вводим имя нашего сервера.



Это все шаги, необходимые для базовой настройки почтового сервера из шаблона Exchange Server 2013. Задавайте вопросы в комментариях, если что-то осталось непонятным.