В этой статье хочу рассмотреть установку и простую базовую настройку связки Microsoft Exchange 2019 + Proxmox Mail Gateway, где Microsoft Exchange 2019 выступает почтовым сервером, а Proxmox Mail Gateway выступает почтовым шлюзом для этого сервера и разгружает его фильтрацией спама (и не только).
Подобную связку я уже рассматривал. Было это давно, и тогда это была Zimbra 7 + кастомный почтовый шлюз:
https://typical-admin.ru/obshaya/linux-fedora/server-mail-ftp-jabber-mail-gateway1
Почтовый шлюз я также настраивал и на FreeBSD:
https://typical-admin.ru/obshaya/freebsd/mail-gateway-freebsd
Но это всё было давно. Сейчас же есть готовое решение, и почему бы его не попробовать.
Итак, имеется:
1. Машина с Windows server 2019 и настроенной ролью контроллера домена Active Directory.
2. Машина с голым Windows server 2019, являющаяся членом домена Active Directory.
3. Машина без ОС для последующей установки Proxmox Mail Gateway.
Этап 1. Установка и настройка Microsoft Exchange 2019.
Приступаю к установке Microsoft Exchange 2019 на машину с предустановленной Windows server 2019. Ссылки на дистрибутивы прикладывать не буду, т.к. сейчас на сайте Microsoft нет возможности их скачать. Пришлось искать по старинке. Запускаю установщик и на первом шаге отказываюсь от проверки обновлений, т.к. весь мой стенд тестовый. При установке боевого сервера лучше не отказываться от обновлений.
Жму Далее и дожидаюсь копирования файлов:
Следующие два шага будут «Введение» и принятие лицензии, с ними всё понятно. Параметры оставляю рекомендуемые:
При выборе роли сервера указываю, что это будет роль почтового ящика (она же mailbox) и ставлю галку, чтобы установщик сам автоматически поставил недостающие роли и компоненты для Windows:
Жму «Далее». На следующем шаге выбираю каталог установки Exchange:
Потом указываю имя организации:
Защиту от вредоносных программ пока не отключаю. Если понадобится, отключу её уже после настройки Proxmox Mail Gateway.
После чего запускается проверка готовности:
И в итоге получаю кучу ошибок:
Ошибка:
Необходимо установить .NET Framework 4.8 (https://support.microsoft.com/kb/4503548).
Дополнительные сведения: https://docs.microsoft.com/Exchange/plan-and-deploy/system-requirements?view=exchserver-2019
Ошибка:
Схема Active Directory устарела, и эта учетная запись пользователя не входит в группу "Администраторы схемы" или "Администраторы предприятия".
Дополнительные сведения: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.SchemaUpdateRequired.aspx
Ошибка:
Необходимо выполнить глобальные обновления Active Directory, но данная учетная запись пользователя не входит в группу "Администраторы предприятия".
Дополнительные сведения: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.GlobalUpdateRequired.aspx
Ошибка:
Необходимо обновить локальный домен. Для продолжения необходимо быть членом групп "Администраторы домена", "Управление организацией" или группы "Администраторы предприятия".
Дополнительные сведения: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.LocalDomainPrep.aspx
Ошибка:
Для продолжения необходимо быть членом группы ролей "Управление организацией" или группы "Администраторы предприятия".
Дополнительные сведения: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.GlobalServerInstall.aspx
Ошибка:
Чтобы установить или обновить первую роль сервера почтовых ящиков в топологии, необходимо войти в систему с помощью учетной записи члена группы ролей "Управление организацией".
Дополнительные сведения: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.DelegatedBridgeheadFirstInstall.aspx
Ошибка:
Чтобы установить первую роль сервера клиентского доступа в топологии, необходимо войти в систему с помощью учетной записи члена группы ролей "Управление организацией".
Дополнительные сведения: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.DelegatedCafeFirstInstall.aspx
Ошибка:
Чтобы установить первую роль сервера клиентского доступа в топологии, необходимо войти в систему с помощью учетной записи члена группы ролей "Управление организацией".
Дополнительные сведения: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.DelegatedFrontendTransportFirstInstall.aspx
Ошибка:
Чтобы установить или обновить первую роль сервера почтовых ящиков в топологии, необходимо войти в систему с помощью учетной записи члена группы ролей "Управление организацией".
Дополнительные сведения: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.DelegatedMailboxFirstInstall.aspx
Ошибка:
Чтобы установить или обновить первую роль сервера клиентского доступа в топологии, необходимо войти в систему с помощью учетной записи члена группы ролей "Управление организацией".
Дополнительные сведения: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.DelegatedClientAccessFirstInstall.aspx
Ошибка:
На этом компьютере необходимо установить 64-разрядный пакет Microsoft Unified Communications Managed API 4.0 Core Runtime. Установите это ПО со страницы http://go.microsoft.com/fwlink/?LinkId=260990.
Дополнительные сведения: https://docs.microsoft.com/Exchange/plan-and-deploy/deployment-ref/readiness-checks?view=exchserver-2019
Ошибка:
Распространяемый пакет Visual C++ 2013 является необходимым компонентом. Установите требуемые двоичные файлы и повторно запустите установку. Чтобы скачать их, воспользуйтесь универсальным кодом ресурса (URI) https://www.microsoft.com/download/details.aspx?id=40784.
Дополнительные сведения: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.VC2013RedistDependencyRequirement.aspx
Из всего этого следует, что установщик может отнюдь не все дополнительные роли и компоненты установить сам. Нужно ему помочь:
1. Установить Распространяемый пакет Visual C++ 2013
2. Установить 64-разрядный пакет Microsoft Unified Communications Managed API 4.0 Core Runtime
3. Установить .NET Framework 4.8
4. Мой виндовый пользователь является администратором домена. Но его также надо включить в группу «Администраторы предприятия» и «Администратор схемы»:
Ссылки для скачивая отсутствующих компонентов приложены прям в тексте с ошибками. Скачиваю и устанавливаю всё, что просит установщик.
Затем снова запускаю установщик Microsoft Exchange 2019. На этот раз получаю лишь пару предупреждений и жму кнопку «Установить»:
Установка занимает довольно длительное время.
После завершения установки жму «Готово» и перезагружаю сервер.
Теперь перехожу к базовой настройке Microsoft Exchange 2019. Сначала настрою его так, чтобы он работал сам по себе, без почтового шлюза Proxmox. Протестирую, нормально ли уходят письма на внешние сервера (mail.ru, yandex.ru), а уже потом буду приделывать Proxmox Mail Gateway.
Захожу в Exchange Administrative Center:
Логин и пароль — от доменного администратора. Логин ввожу в формате domain\user.
Добавлю доверенный домен. В разделе “Поток обработки почты” выбираю подраздел “Обслуживаемые домены” и нажимаю на кнопку “+”:
В поле “Имя” и “Обслуживаемый домен” указываю домен, который необходимо добавить в доверенные, затем выбираю “Заслуживающий доверия домен. Электронная почта доставляется только допустимым получателям в этой организации Exchange. Вся почта, направленная неизвестным получателям, отклоняется.”. Нажимаю на кнопку “Сохранить”.
Домен появился в списке обслуживаемых:
Жму двойной клик мыши на созданном домене и в появившемся окне ставлю галку «Сделать доменом по умолчанию», затем кнопку «Сохранить»:
Теперь необходимо создать политику по формированию почтовых адресов. В разделе “Поток обработки почты” выбираю подраздел “Политики адресов электронной почты” и нажимаю на кнопку “+”:
Далее необходимо указать имя для новой политики и выбрать на кого она будет применяться, а также определить, как будут формироваться почтовые адреса в организации. У меня почтовые адреса будут формироваться на основе “Alias”. Указываю имя для политики по формированию почтовых адресов и нажимаю кнопку “+”:
Указываю основной домен и выбираю “alias@contoso.com”. Нажимаю на кнопку “Сохранить”:
После того как определено, как будут у меня формироваться почтовые адреса, нажимаю на кнопку “Сохранить”:
Обращаю внимание на предупреждение:
После того как политика будет добавлена, она появится в подразделе “Политики адресов электронной почты” со статусом “Не применена”. Для применения политики нажимаю надпись “Применить”:
Теперь необходимо создать коннектор отправки для возможности отправлять почту за пределы организации. В разделе “Поток обработки почты” выбираю подраздел “Соединители отправки” и нажимаю на кнопку “+”:
Указываю имя для нового коннектора отправки и в разделе “Тип” выбираю “Интернет”. Нажимаю на кнопку “Далее”:
Пока что, отправка почты будет осуществляться согласно записям MX. Выбираю “Запись MX, связанная с доменом получателя” и нажимаю на кнопку “Далее”. Потом эта настройка будет изменена на отправку через Proxmox Mail Gateway.
Далее необходимо указать, для каких доменов будет работать новый коннектор. Нажимаю на кнопку “+”:
В поле “Полное доменное имя (FQDN)” указываю “*”. Таким образом, новый коннектор отправки будет обрабатывать все домены. Нажимаю на кнопку “Сохранить”:
После указания для каких доменов будет работать новый коннектор, нажимаю на кнопку “Далее”:
Затем нужно указать, на каком сервере Exchange будет создан коннектор отправки. Нажимаю на кнопку “+”:
Выбираю сервер Exchange, на котором будет создан коннектор отправки. У меня он единственный. Нажимаю на кнопку “OK”:
Все готово для создания коннектора отправки. Нажимаю на кнопку “Готово”:
Далее в разделе “Поток обработки почты”, выбираю подраздел “Соединители отправки” и нажимаю на созданный коннектор отправки два раза левой кнопкой мыши:
В разделе “общие” в меню “Максимальный размер отправляемых сообщений (МБ)” можно настроить максимально допустимый размер почтовых вложений для отправки:
Далее в разделе “определение области” в поле “FQDN: Укажите полное доменное имя, которое этот соединитель будет предоставлять в ответ на запрос HELO или EHLO.” указываю имя, по которому почтовый сервер доступен из сети Интернет:
Нажимаю на кнопку “Сохранить”.
В разделе “Поток обработки почты” выбираю подраздел “Соединители отправки”. Затем нажимаю на кнопку “…” и выбираю “Параметры транспорта организации”:
В разделе “число попыток (Limits)” можно настроить максимально допустимый размер почтовых вложений для отправки и приема. Указываю необходимые значения и нажимаю на кнопку “Сохранить”:
Что же касается DNS-записей, то публичные записи для домена typical-admin.ru у меня выглядят вот так:
Записи, не относящиеся к теме, я замазал. Да, сайт typical-admin.ru и Exchange сервер имеют один и тот же IP-адрес. На роутере проброс портов 80 и 443 ведёт на сервер с моим сайтом. Сайт typical-admin.ru работает на Nginx, который можно использовать как Reverse Proxy для вэб-интерфейса Exchange сервера. Не буду на этом сейчас заострять внимание.
Чтобы пользователи локальной сети, переходя по адресу mail.typical-admin.ru, попадали сразу на Exchange сервер напрямую на его локальный IP-адрес, надо на локальном DNS-сервере создать свою зону typical-admin.ru. Выглядеть это будет так:
Указываю, что зона будет основной, но к Active Directory относиться не будет (галку снял):
Жму «Далее» и на следующем шаге указываю название зоны:
Жму «Далее» и на следующих шагах тоже «Далее»:
И потом внутри самой DNS-зоны делаю вот такие записи: А-запись:
И MX-запись:
Получается, что клиенты, заходящие из интернета на свою почту по адресу https://mail.typical-admin.ru, будут попадать на внешний IP-адрес (маршрутизатора, а дальше, через проброс порта, попадут на nginx, который, в свою очередь, передаст запрос на IIS Exchange сервера), а клиенты из локальной сети, заходящие на свою почту по адресу https://mail.typical-admin.ru, будут попадать на локальный IP-адрес Exchange сервера.
Теперь адрес mail.typical-admin.ru надо прописать в виртуальных каталогах в качестве внешнего. В разделе “Серверы” выбираю подраздел “Виртуальные каталоги” и выбираю виртуальную папку “owa (Default Web Site)”, а затем нажимаю на неё два раза левой кнопкой мыши:
В разделе “общие” в поле “Внешний URL-адрес” указываю имя, по которому почтовый сервер доступен из сети Интернет, а также добавляю “/owa”:
Жму «Сохранить».
Теперь пропишу адрес, по которому почтовый сервер доступен из сети Интернет, в конфигурацию сервера Exchange. В разделе “Серверы” выбираю подраздел “Виртуальные каталоги” и выбираю виртуальную папку “ecp (Default Web Site)”, а затем нажимаю на неё два раза левой кнопкой мыши:
В разделе “общие” в поле “Внешний URL-адрес” указываю имя, по которому почтовый сервер доступен из сети Интернет, а также добавляю “/ecp”. Нажимаю на кнопку “Сохранить”.
Аналогично прописываю и в остальных каталогах:
EWS (Default Web Site) → https://mail.typical-admin.ru/EWS/Exchange.asmx
mapi (Default Web Site) → https://mail.typical-admin.ru/mapi
Microsoft-Server-ActiveSync (Default Web Site) → https://mail.typical-admin.ru/Microsoft-Server-ActiveSync
OAB (Default Web Site) → https://mail.typical-admin.ru/OAB
PowerShell (Default Web Site) → http://mail.typical-admin.ru/powershell
Далее настрою сервис “Мобильный Outlook”. Данный сервис служит для подключения к серверу Exchange через Интернет при помощи “Outlook”. В разделе “Серверы” выбираю подраздел “Серверы”, выбираю сервер Exchange и нажимаю на него два раза левой кнопкой мыши:
Далее в поле “Укажите имя внешнего узла (например, contoso.com) для подключения пользователей к вашей организации.” указываю имя, по которому почтовый сервер доступен из сети Интернет. Затем в меню “Укажите метод проверки подлинности для использования внешними клиентами при подключении к вашей организации” выбираю “NTLM” и снимаю галочку “Разрешить разгрузку SSL”. Нажимаю на кнопку “Сохранить”.
Теперь пробую создать нового пользователя с почтовым ящиком. В разделе “Получатели” выбираю подраздел “Почтовые ящики”. Там нажимаю на кнопку “+” и выбираю “Почтовый ящик пользователя”.
Теперь указываю псевдоним и имя для нового пользователя. Затем нужно выбрать Подразделение, в котором планируется создать нового пользователя. Нажимаю на кнопку “Обзор”:
Выбираю подразделение, в которое необходимо поместить нового пользователя, и нажимаю на кнопку “OK”:
В поле “Имя для входа” указываю логин для нового пользователя. Далее указываю пароль и нажимаю на кнопку “Сохранить”:
После того как пользователь с почтовым ящиком будет создан, он появится в разделе “Почтовые ящики”:
Нужно попробовать зайти под этим пользователем в свой почтовый ящик и попробовать отправить письма куда-нибудь.
На Mail.ru и Яндекс письма пришли:
Теперь пробую ответить с Яндекса и Мэйла. Письма пришли:
Хорошо, значит почта работает, письма ходят. Пришло время установить и прикрутить Proxmox Mail Gateway.
Донаты принимаются на кошельки:
Yoomoney:
4100118091867315
Карта Т-Банк (бывший Тиньков):
2200 7017 2612 2077
Карта Альфа-Банк:
2200 1539 1357 2013