Работаем в облаке на базе Hyper-V, часть 2: развертывание Exchange Server
Содержание
Разворачиваем виртуальную машину с ролью Active Directory
Разворачиваем виртуальную машину с ролью Exchange Server 2013
Проверка корректного запуска служб Exchange Server
Настройка DNS зоны и правил форвардинга портов
Настройка кластера баз данных серверов Exchange
Настройка клиентского доступа
Конфигурация почтового транспорта
В ходе нашего эксперимента будем создавать ИТ-инфраструктуру со следующими характеристиками:
Имя домена 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-сеть, но для безопасной работы боевой системы и защиты от атак извне необходимо наличие буфера между внешней сетью и интранетом.
Схема нашей ИТ-инфраструктуры.
Разворачиваем виртуальную машину с ролью Active Directory
Перед установкой Microsoft Exchange Server 2013 необходимо подготовить лес Active Directory и его домены. Информация о почтовых ящиках пользователей и конфигурации серверов Exchange должна где-то храниться. Мы для этого будем использовать контроллер домена Active Directory.
- В портале управления переходим в раздел Виртуальные машины и кликаем Создать.
- Выбираем Роль виртуальной машины, Из коллекции.
- Выбираем шаблон Контроллер домена Windows 2012 R2.
- Указываем имя роли виртуальной машины.
- Указываем параметры виртуальной машины:
- Размер (CPU, RAM, HDD)
- Пароль и логин локального администратора
- Часовой пояс
- Имя виртуальной машины
- Виртуальную сеть
- Вводим параметры создаваемого леса Active Directory и нажимаем OK.
- Готово. Виртуальная машина с ролью Active Directory развернута.
Для обеспечения отказоустойчивости рекомендуем развернуть как минимум два контроллера домена в своей инфраструктуре. Создадим вторую виртуальную машину с ролью Active Directory. Для этого воспользуемся функцией масштабирования, которая есть в панели.
- Выбираем из списка нужную Виртуальную машину. Переходим во вкладку Масштабирование и выбираем на бегунке нужное число экземпляров. Жмем Сохранить.
- Готово. Во вкладке Экземпляры появилась вторая виртуальная машина с ролью контроллера домена, присоединенная в существующий домен Active Directory.
Разворачиваем виртуальную машину с ролью Exchange Server 2013
Active Directory у нас есть. Обычно перед развертыванием Exchange Server нужно расширить схемы Active Directory и подготовить домены. При развертывании виртуальной машины Exchange Server из шаблона, все действия по расширению схемы и подготовке домена выполняются автоматически. Как и с Active Directory, создаем роль виртуальной машины.
- Выбираем Из коллекции Exchange Server 2013 SP1 CU9.
- Задаем имя роли виртуальной машины.
- Задаем параметры виртуальной машины.
- Размер (CPU, RAM, HDD)
- Пароль и логин локального администратора
- Часовой пояс
- Имя виртуальной машины
- Виртуальную сеть — подключаем виртуальную машину к той же сети, в которой создали ВМ с Active Directory.
- Задаем параметры учетной записи.
- Готово.
- Как и в случае с Active Directory, создаем дополнительную виртуальную машину Exchange Server с помощью функции масштабирования.
Проверка корректного запуска служб Exchange Server
Подключаемся к нашим виртуальным машинам c Exchange Server через RDP-консоль.
- Выделяем виртуальную машину и жмем на панели команд Подключить, Консоль.
- Через сохраненный RDP-файл подключаемся к виртуальной машине.
- Проверяем статус служб Exchange Server через Exchange Management Shell (EMS).
- Выполняем команду test-servicehealth –Server «имя Exchange сервера».
- Также после развертывания виртуальной машины с 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
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
- В портале управления заходим в раздел Сети и выбираем сеть, в которой работают машины с Exchange. Переходим во вкладку Правила.
- Нажимаем Добавить правило.
- Заполняем поля и сохраняем.
- По аналогии добавляем правила для каждого внешнего IP-адреса: у нас их два (185.99.13.19 и 185.99.13.17), так как развернуто два сервера Exchange. Вот что должно получиться в итоге:
Настройка кластера баз данных серверов Exchange
Мы с вами развернули два сервера Exchange для обеспечения большей доступности. На их основе мы настроим отказоустойчивый кластер — Database Availability Group (DAG).
DAG можно создать через Exchange Management Shell или Exchange Control Panel. Мы продолжим работу с EMS.
- Подключимся к виртуальной машине через консоль, введем команду
New-DatabaseAvailabilityGroup, где:- Name — имя группы доступности;
- WitnessServer — сервер-свидетель;
- WitnessDirectory — директория на сервере-свидетеле, в которой будет храниться служебная информация;
- DatabaseAvailabilityGroupIpAddress — IP-адрес кластера.
Важно: при четном количестве серверов в DAG необходимо иметь сервер-свидетель, который будет определять кворум в кластере. Этот сервер не может быть одним из членов кластера. В группу локальных администраторов этого сервера должна быть включена группа Exchange Trusted Subsystem. В нашем случае роль сервера-свидетеля будет выполнять контроллер домена. В продуктивной среде так делать нельзя и лучше использовать выделенный сервер.
При нечетном количестве серверов в DAG сервер-свидетель не нужен. - Добавляем в DAG серверы msk-exh01 и msk-exh02. Выполняем команду
Add-DatabaseAvailabilityGroupServer, где:- Identity — имя DAG группы;
- MailboxServer — сервер с ролью почтовых ящиков, который мы хотим добавить в кластер.
- Проверим, что сервера добавлены в кластер. Команда Get-DatabaseAvailabilityGroup.
- Добавим пассивную копию нашей базы почтовых ящиков. Команда Add-MailboxDatabaseCopy, где:
- Identity — имя базы, для которой необходимо создать копию;
- Mailboxserver — имя сервера, на котором необходимо разместить копию;
- ActivationPreference — значение, которое указывает очередность активации копии в случае внепланового выхода из строя активной копии.
- Проверяем состояние копии базы командой Get-mailboxDatabaseCopy.
Настройка клиентского доступа
Клиенты к серверу 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):
- Заходим в ECP.
- Переходим в раздел Servers, вкладка Certificates. Выбираем один из наших серверов,
нажимаем »+». - Выбираем опцию Create a request for a certificate from certification authority.
- Вводим Friendly name.
- Убираем галочку для запроса wildcard сертификата, поскольку мы будем использовать SAN-сертификат.
- Указываем, на какой сервер необходимо сохранить запрос.
- Указываем имена, которые будет содержать наш SAN сертификат.
- Заполняем необходимые поля.
- Указываем путь, где будет храниться наш CSR. Жмем Finish.
- Готово. CSR создан. На основании нашего CSR выпускаем сертификат и устанавливаем его на сервер.
- Создаем «расшаренную» папку на любом из созданных серверов и сохраняем туда сертификат.
- Заходим в консоль ECP. В разделе Servers переходим во вкладку Certificates. В поле Status жмем Complete.
- Указываем путь до папки, в которой лежит наш сертификат.
- Сертификат добавлен. Важно, чтобы статус сертификата был Valid.
- Теперь назначим на него сервисы SMTP, IIS, POP, IMAP. Дважды кликаем по нашему сертификату, заходим в Services и проставляем галочку напротив необходимых нам сервисов.
- Жмем Yes при появлении предупреждения.
Мы установили сертификат на один из серверов Exchange. Чтобы установить сертификат на другие сервера заходим на сервер, где уже установлен сертификат, и экспортируем его с приватным ключом.
- Открываем Microsoft Management Console (MMC), добавляем оснастку управления сертификатами компьютера.
- Заходим во вкладку персональных сертификатов, экспортируем.
- Выполняем экспорт приватного ключа.
- Указываем безопасный пароль, который нужно ввести при импорте сертификата.
- Указываем место, куда будет сохранен сертификат. Жмем Finish.
- Экспортированный сертификат переносим на оставшийся сервер. В нашем случае это msk-exh02. Открываем MMC, добавляем оснастку управления сертификатами компьютера, заходим во вкладку персональных сертификатов, импортируем.
- Указываем путь до сертификата.
- Указываем пароль, который мы задали при экспорте. Также можно поставить галочку возможности экспорта приватного ключа.
- Готово. Сертификат импортирован вместе с приватным ключом.
- В ECP назначаем на него сервисы, как мы это делали для первого сервера.
- Готово. Наш SSL сертификат импортирован на оба Exchange сервера.
- Проверим, что при заходе в OWA в браузере фигурирует корректный сертификат.
Настройка виртуальных директорий. С помощью виртуальных директорий клиенты получают доступ к OWA, ECP, адресной книге (OAB), протоколу ActiveSync, Веб службам (EWS).
В нашем случае для настройки виртуальных директорий мы задаем параметр ExternalURL. Служба автообнаружения (autodiscover) будет отдавать его клиентам. Также можно указать параметр InternalURL, если в вашей организации имеются доменные клиенты, подключающиеся к Exchange в пределах локальных сетей организации.
Открываем EMS и поочередно выполняем настройку виртуальных директорий с помощью команд:
- Get-EcpVirtualDirectory | Set-EcpVirtualDirectory –externalURL «Внешний URL директории»
- Get-OwaVirtualDirectory | Set-OwaVirtualDirectory –externalURL «Внешний URL директории»
- Get-WebServicesVirtualDirectory | Set-WebServicesVirtualDirectory –ExternalURL «Внешний URL директории»
- Set-OabVirtualDirectory | Set-OabVirtualDirectory –externalURL «Внешний URL директории»
- 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. Можно создавать несколько доменов.
- Создать коннектор отправки. С его помощью мы можем управлять почтовым потоком, задавая различные настройки.
- В ECP в разделе mail flow переходим во вкладку accepted domains. Жмем »+». Указываем имя нашего домена, выбираем тип Authoritative. Сохраняем.
- В разделе mail flow переходим во вкладку send connectors. Жмем »+». Задаем имя и указываем тип Custom.
- Указываем отправку через MX-записи.
- Указываем адресное пространство. В нашем случае это »*», означающая всё пространство доменных имен.
- Указываем сервера, с которых будет происходить отправка почты за пределы организации Exchange. В нашем случае это оба сервера. Кликаем Add.
- Чтобы наш сервер успешно проходил антиспам проверки, в коннекторе отправки указываем параметр FQDN HELO. Это имя, которым будет представляться наш сервер при создании SMTP-сессии. Принимающий почту сервер будет выполнять reverse dns lookup, сопоставляя имя PTR-записи с именем, которое мы указали в коннекторе отправки. При несовпадении имен, сервер-отправитель не пройдет антиспам проверку.
Для настройки имени HELO заходим в параметры коннектора отправки и вводим имя нашего сервера.
Это все шаги, необходимые для базовой настройки почтового сервера из шаблона Exchange Server 2013. Задавайте вопросы в комментариях, если что-то осталось непонятным.