Реклама

Установка Exchange server 2016 на Windows server 2016

Привет! Сегодня разберём как установить exchange server 2016 с нуля. Всё нижесказанное также относится и к 2013 exchange. Миграция описана в статье Миграция с exchange server 2007 на 2013 отличий от миграции с 2010 или 2013 на 2016 нет.

Предварительные требования:

  1. NET Framework 4.7.1
  2. компоненты из статьи KB3206632 базы знаний Майкрософт
  3. распространяемый пакет Visual C++ для Visual Studio 2012
  4. распространяемый пакет Visual C++ для Visual Studio 2013
  5. Microsoft Unified Communications Managed API 4.0, среда выполнения Core (64-разрядная версия)
  6. Install-WindowsFeature RSAT-ADDS
  7. Install-WindowsFeature NET-Framework-45-Features, Server-Media-Foundation, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, 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, RSAT-ADDS

Миграция возможно минимум с exchange 2010 CU11. Контроллеры домена и уровень леса не менее Windows Server 2008 R2. Оперативная память – Почтовый ящик: не менее 8 ГБ.  Пограничный транспортный сервер: не менее 4 ГБ.

ОС windows server 2012 или windows server 2016.

В нашем случае будет идеальный вариант – чистый контроллер домена и чистая система, обе windows server 2016.

Устанавливаем компоненты:

Теперь можно устанавливать exchange server 2016. В принципе, установщик всё сделает за вас. Каких то особых требований, кроме описанных выше, нет. Если вы ставите сервер в существующую среду 2010 или 2013, то также никаких дополнительных действий не требуется. После установки они будут сосуществовать вместе, текущую инфраструктуру и работу почты данная установка не затронет.

Ставим галочки:

В этом случае установщик сам до установит недостающие компоненты, расширит схему AD выполнит подготовку. Имя организации – это имя раздела, в котором будут хранится настройки exchange в текущем лесу. Если в процессе установки у вас ошибка “Windows Server-Gui-Mgmt-Infra not installed” значит вы пытаетесь установить версию exchange до CU3. Скачиваем версию с последним CU. На текущий момент – CU12.

Не пугаемся названия – Cumulative Update 12 for Exchange Server это полноценный дистрибутив с последними обновлениями.

Как видим, установщик сам расширит схему и подготовит AD.

В том случае если у вас большая инфраструктура с несколькими доменами, или разделёнными правами, перед установкой можно выполнить команды вручную:

Расширение схемы, вы должны состоять в группе “Администраторы схемы” на этом этапе добавляются необходимые атрибуты в схему AD.
E:\Setup.exe /IAcceptExchangeServerLicenseTerms /PrepareSchema

Подготовка AD, создание нужных контейнеров и объектовE:\Setup.exe /IAcceptExchangeServerLicenseTerms /PrepareAD /OrganizationName:”First organization”

И на третьем этапе создаются группы, назначаются разрешения
E:\Setup.exe /IAcceptExchangeServerLicenseTerms /PrepareAllDomains

Если в процессе установки возникли ошибки, нам сильно поможет C:\ExchangeSetupLogs\ExchangeSetup.log.

В случае если установка завершилась успешно, переходим по ссылке https://localhost/ecp и радуемся.

В принципе, можно создавать пользователей, и пользоваться почтой через owa, внутри организации она уже работает полноценно. Для отправки нам нужно создать коннектор отправки, он находится в “поток обработки почты – соединители отправки”. Тип коннектора – выбираем internet.

Адресное пространство – ставим звездочку. Это значит, что на все домены почта будет оправляться через этот коннектор. Если же мы хотим что бы почта на определенный домен отправлялась через специфический сервер – то создаём еще один коннектор. Затраты – приоритет отправки, сначала почта будет отправляться через коннектор с приоритетом 1, если условия совпадают.

Исходный сервер – если у нас несколько серверов, например в разных сайтах, и мы хотим отправлять почту со всех серверов exchange только через один, выбираем его в этом пункте. В нашем примере у  нас один сервер, естественно мы его и указываем.

И так – теперь мы можем отправлять почту в интернет. Но возникнет проблема – почти все наши письма будут помечены как спам. Почему так происходит? Потому что основные антиспам проверки включают в себя PTR запись, она должна совпадать с именем сервера, которым он представляется.

Переходим в нас тройки созданного коннектора, пункт “определение области”, и укажите FQDN имя, через которое ваш сервер будет доступен во внешних DNS. Также нужно написать провайдеру, что бы он прописал PTR запись на ваш внешний IP.

Первое дело сделано. Второй важный шаг – это настроить SPF запись. Про это можно прочитать в моей статье STOP SPAM. PTR, SPF, DKIM, DMARC

DKIM и DMARC можете настроить по своему усмотрению. Теперь наша почта должна доходить до адресата без проблем. Проверить корректность настроек можно с помощью сайта https://www.mail-tester.com/.

Переходим к коннекторам приёма. Эта штука определяет, как и кто может отправлять почту в наше систему. Приём почты разрешен для домена по умолчанию, он указан сразу.

То есть если домен у вас local, то естественно для маршрутизации в интернете нам нужен существующий, например hobbycomp.ru. Добавляем его в обслуживаемые домены. Тип – заслуживающий доверия. Письма,отправленные извне на этот домен будут обрабатываться, а если адреса не существует отклоняться. Если выбрать внутренняя ретрансляция – то если адресат не обнаружен, письма будут пересылаться дальше, например на другой сервер, указанный в коннекторе отправке, если внешняя ретрансляция – наличие пользователя проверяться не будет, просто будет пересылаться дальше.

Не забываем создать Политику адресов электронной почты, она находится в разделе “поток обработки почты”. Она нужна для того, что бы все новые сотрудники сразу создавались с нужным нам адресом почты, например имя.фамилия”домен.ру

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

Переменная Значение
%d Краткое имя
%g Имя
%i Буква отчества
%m Псевдоним Exchange
%s Фамилия
% _x_g Первые буквы x первого имени. Например, %2g первые две буквы с именем не используются.
% _x_s Первые буквы x фамилии. Например, %2s использует первые две буквы фамилии.

Продолжаем про коннекторы приёма. В них мы указываем: IP адреса с которых сервер принимает почту, на каких интерфейсах слушать порт приёма (25-й по дефолту) каких пользователей обслуживать – анонимных, или только с аутентификацией.

Коннектор по умолчанию default frontend настроен на приём писем со всех IP адресов, в том числе и от анонимных пользователей.  От анонимных – это значит что любой пользователь может прислать нам письмо на заслуживающий доверия домен.

Что бы это работало, рекомендую снять галку взаимная проверка подлинности, если у сервера будет самоподписанный (не доверенный) сертификат – письмо до вас не дойдёт.

Также на всех коннекторах включите ведение журнала – это очень поможет выявлять неполадки.

Нужные нам журналы хранятся здесь – C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog

Архитектура exchange сервера обычно предполагает наличие перед ним front end сервера ,который бы осуществлял фильтрацию писем на спам и вирусы. Встроенный функционал сервера в этом смысле слабоват.

Можно использовать exim, postfix, Cisco ESA. Лично мне нравится postfix, можно использовать его в связке с ClamAV и Spamassasin. Неплохое бесплатное решение.

В этом случае коннектор приёма настраиваем на приём только с одного IP – IP нашего front end сервера. Для принтеров, различных программ типа 1С создаём отдельный коннектор с IP нужного нам сервера, и анонимным приёмом. Отправлять в этом случае можно будет с любого несуществующего адреса в нашем домене, на адреса опять же в нашем домене (использовать для оповещений, без обратной связи). Если мы хотим отправлять письма на внешние адреса – нам нужно будет создать либо учетную запись с ящиком, и указать учетные данные при отправке.

В веб интерфейсе нам доступна только малая часть настроек, всё остальное скрыто в EMS.

Например, вот вывод всех настроек дефолтного коннектора приёма:

Get-ReceiveConnector -Identity "Default Frontend EX01" | fl

RunspaceId : 0b4604c3-bfef-4b7b-b8b6-b55b79d9f894
AuthMechanism : Tls, Integrated, BasicAuth, BasicAuthRequireTLS, ExchangeServer
Banner :
BinaryMimeEnabled : True
Bindings : {[::]:25, 0.0.0.0:25}
ChunkingEnabled : True
DefaultDomain :
DeliveryStatusNotificationEnabled : True
EightBitMimeEnabled : True
SmtpUtf8Enabled : True
BareLinefeedRejectionEnabled : False
DomainSecureEnabled : True
EnhancedStatusCodesEnabled : True
LongAddressesEnabled : False
OrarEnabled : False
SuppressXAnonymousTls : False
ProxyEnabled : False
AdvertiseClientSettings : False
Fqdn : ex01.test.local
ServiceDiscoveryFqdn :
TlsCertificateName :
Comment :
Enabled : True
ConnectionTimeout : 00:10:00
ConnectionInactivityTimeout : 00:05:00
MessageRateLimit : Unlimited
MessageRateSource : IPAddress
MaxInboundConnection : 5000
MaxInboundConnectionPerSource : 20
MaxInboundConnectionPercentagePerSource : 2
MaxHeaderSize : 256 KB (262,144 bytes)
MaxHopCount : 60
MaxLocalHopCount : 12
MaxLogonFailures : 3
MaxMessageSize : 36 MB (37,748,736 bytes)
MaxProtocolErrors : 5
MaxRecipientsPerMessage : 200
PermissionGroups : AnonymousUsers, ExchangeServers, ExchangeLegacyServers
PipeliningEnabled : True
ProtocolLoggingLevel : Verbose
RemoteIPRanges : {::-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff, 0.0.0.0-255.255.255.255}
RequireEHLODomain : False
RequireTLS : False
EnableAuthGSSAPI : False
ExtendedProtectionPolicy : None
LiveCredentialEnabled : False
TlsDomainCapabilities : {}
Server : EX01
TransportRole : FrontendTransport
RejectReservedTopLevelRecipientDomains : False
RejectReservedSecondLevelRecipientDomains : False
RejectSingleLabelRecipientDomains : False
AcceptConsumerMail : False
SizeEnabled : Enabled
TarpitInterval : 00:00:05
AuthTarpitInterval : 00:00:05
MaxAcknowledgementDelay : 00:00:30
AdminDisplayName :
ExchangeVersion : 0.1 (8.0.535.0)
Name : Default Frontend EX01
DistinguishedName : CN=Default Frontend EX01,CN=SMTP Receive Connectors,CN=Protocols,CN=EX01,CN
=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrati
ve Groups,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Config
uration,DC=test,DC=local
Identity : EX01\Default Frontend EX01
Guid : e569491e-7fd2-4c48-b43b-6bd4e76ebf96
ObjectCategory : test.local/Configuration/Schema/ms-Exch-Smtp-Receive-Connector
ObjectClass : {top, msExchSmtpReceiveConnector}
WhenChanged : 16.03.2019 13:42:54
WhenCreated : 16.03.2019 13:42:54
WhenChangedUTC : 16.03.2019 10:42:54
WhenCreatedUTC : 16.03.2019 10:42:54
OrganizationId :
Id : EX01\Default Frontend EX01
OriginatingServer : dc01.test.local
IsValid : True
ObjectState : Unchanged

Многие параметры говорят сами за себя, например MaxRecipientsPerMessage:200 значит что на этом коннекторе возможен приём для максимум  200 получателей, а MessageRateLimit : Unlimited о том что количество принимаемых писем в секунду не ограничено.

А вот так можно посмотреть ограничения на количество отправленных сообщений в секунду на всех коннекторах:

Get-ReceiveConnector | fl Name,MessageRateLimit

Name : Default EX01
MessageRateLimit : Unlimited

Name : Client Proxy EX01
MessageRateLimit : 5

Name : Default Frontend EX01
MessageRateLimit : Unlimited

Name : Outbound Proxy Frontend EX01
MessageRateLimit : Unlimited

Name : Client Frontend EX01
MessageRateLimit : 5

Теперь поговорим об еще одном важном аспекте – сертификатах. Сертификаты прежде всего нужны нам для подключения outlook к серверу, и для подключения через браузер, без уведомления о том, что сайт небезопасен.

Давайте разберёмся, что такое сертификат, и как он работает. По сути это ключ, две половинки которого называются закрытый и открытый ключ. То что зашифровано одним ключом можно расшифровать другим, и наоборот. Закрытый ключ хранится только на сервере, открытый же доступен всем. Когда мы генерируем сертификат с помощью нашего внутреннего центра сертификации, он подписан его корневым сертификатом. А корневой сертификат имеется в доверенных на всех компьютерах домена, поэтому ошибок не возникает. Как только мы пытаемся подключится с компьютера, на котором данного корневого сертификата нет – получаем ошибку. Если устраивает такой вариант, когда мы можем всем пользователям установить свой корневой сертификат – то тогда используем его. Как развернуть внутренний центр сертификации описано в моей статье Установка Certification Authority

В противном случае нам понадобится коммерческий сертификат. Суть его состоит в том что корневой сертификат уже вшит во все браузеры, операционные системы, в том числе и мобильные.

Как установить сертификат на примере внутреннего центра сертификации. Заходим в раздел серверы – сертификаты. Выбираем “создать запрос на сертификат, подписанный центром сертификации”.

Проходим через мастер, важный момент выбор имён, которые будут использоваться в сертификате. Я рекомендую использовать единое пространство имен как внутри, так и снаружи. На внутреннем DNS создать  зоны mail.hobbycomp.ru и autodiscover.hobbycomp.ru, для работы хватит этих двух имен. Если планируется раздельное пространство имен – они должны присутствовать в сертификате.

Сохраняем запрос на сертификат, сохранить можно на сетевую шару. теперь у нас есть ожидающий запрос. Это значит, что сгенерирован закрытый ключ, он хранится на сервере, а нам нужно подписать наш сертификат с открытыми данными корневым сертификатом центра сертификации. Для этого идём на веб интерфейс центра сертификации. https://server/certsrv

Выбираем запрос сертификата – расширенный запрос сертификата, открываем блокнотом сохраненный запрос на сертификат, и вставляем в поле сохранённый запрос. Шаблон сертификата выбираем веб сервер.

В интерфейсе с сертификатами сервера, выбираем “выполнить”, и подсовываем полученный сертификат. Путь также указываем в формате сетевой шары.

Назначаем новый сертификат службам IIS и SMTP.

На выходе получаем валидный сертификат, для тех устройств на которых установлен корневой сертификат.

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

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

Для каталога autodoscover адрес нужно задать через EMS. Задаётся только внутренний адрес, это будет адрес SCP – service connection point, outlook вытащит его из active directory.

Посмотреть текущий адрес можно командлетом:

Get-ClientAccessService | fl AutoDiscoverServiceInternalUri

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

Если у Вас есть вопросы, задавайте их на форуме, или ниже в комментариях.

 

Пока нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *