Как развернуть почтовый сервер на windows

Установка и настройка почтового сервера - руководство по установке и настройке почтового сервера для Windows Server и Ubuntu 20.04

Почтовый сервер – это устройство, при помощи которого происходит доставка электронных сообщений от отправителя к получателю. Собственно, это и следует из его названия. В данной статье рассмотрим, как происходит установка и базовая настройка почтового сервера на VPS с операционной системой семейства Windows Server, а также на виртуальном сервере, работающем на Ubuntu 20.04.

Установка сервера SMTP на Windows Server

На серверах, работающих под управлением операционных систем Windows, для передачи почтовых сообщений часто используется протокол SMTP. В Windows Server служба SMTP является одним из компонентов операционной системы.

Для корректной отправки почтового сообщения от имени домена, к которому будет привязан сервер SMTP, нам необходимо иметь доменное имя. При этом в настройках домена должна быть указана A-запись, содержащая IP-адрес VPS. В нашем примере мы будем использовать имя домена my-domain.host.

Установку почтового сервера нужно будет начать именно с добавления необходимых компонентов. Для этого запустите Server Manager, перейдите ManageAdd Roles and Features.

Добавление ролей и компонентов - Установка и настройка почтового сервера

В открывшемся окне нажмите Next.

Мастер добавления ролей и компонентов - Установка и настройка почтового сервера

Далее выберите опцию Role-based or feature-based installation, после чего нажмите Next.

Выбор установки ролей и компонентов

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

Выбор сервера

На следующем шаге активируйте строку Web Server (IIS), после чего нажмите Add Features.

Добавление компонент веб-сервера (IIS)

Далее нажмите Next.

Выбор установки веб-сервера (IIS)

После чего отметьте строку SMTP Server и нажмите Add Features.

Добавление компонентов сервера SMTP

И нажмите Next.

Выбор установки сервера SMTP

Далее ещё раз нажмите Next.

Роли веб-сервера (IIS)

В следующем окне снова нажмите Next.

Роли веб-сервера (IIS)

Для запуска установки выбранных компонентов нажмите Install.

Установка выбранных ролей и компонентов - Установка и настройка почтового сервера

Настройка сервера SMTP

На следующем этапе необходимо будет настроить сервер SMTP. Для чего в Server Manager перейдите ToolsInternet Information Services (IIS) 6.0 Manager.

Запуск диспетчера IIS - Установка и настройка почтового сервера

В открывшемся окне менеджера IIS раскройте ветку вашего сервера и на строке SMTP Virtual Server нажмите правую кнопку мыши, после чего перейдите в Properties.

Свойства сервера SMTP

Далее в строке IP address: необходимо выбрать IP-адрес вашего сервера и активировать опцию Enable logging.

Указание IP-адреса включение ведения журналов

Во вкладке Access нажмите кнопку Authentication...

Вкладка Доступ

В открывшемся окне активируйте опцию Anonymous access. Активация данной опции нужна, чтобы пользователи и приложения смогли бы использовать сервер SMTP анонимно. Позже можно будет настроить более безопасную аутентификацию, пока же нажмите OK.

Включение анонимного доступа

Далее в разделе Connection control нажмите кнопку Connection...

Настройка управления подключением

В окне Connection установите переключатель на Only the list below и при помощи кнопки Add... добавьте IP-адрес вашего VPS. После чего нажмите OK.

Разрешение доступа для IP-адреса вашего VPS

Точно такую же настройку необходимо проделать в разделе Relay restrictions. Для чего нажмите кнопку Relay... и добавьте IP-адрес вашего сервера установив переключатель в Only the list below.

Настройка ограничений ретрансляции

После чего перейдите во вкладку Delivery и нажмите Advanced...

Настройка доставки

Здесь в строку Fully-qualified domain name: необходимо внести имя вашего домена, в нашем примере это – my-domain.host.

Дополнительная настройка доставки

Для того, чтобы проверить корректность данной настройки, нажмите кнопку Check DNS.

Проверка корректности имени домена - Установка и настройка почтового сервера

Далее сохраните все внесённые в настройки изменения при помощи кнопки OK.

Также необходимо указать корректное имя домена в ветке Domains.

Редактирование имени домена - Установка и настройка почтового сервера

На следующем шаге нужно активировать функцию автоматического запуска сервера SMTP. Для этого запустите командную строку PowerShell и выполните следующие команды для запуска службы:

set-service smtpsvc -StartupType Automatic
start-service smtpsvc

Чтобы убедиться, что служба запущена, необходимо выполнить ещё одну команду:

get-service smtpsvc

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

Вывод команды get-service smtpsvc - Установка и настройка почтового сервера

Теперь там же, в командной строке PowerShell, при помощи следующей команды отправьте сообщение на свою электронную почту:

Send-MailMessage -SmtpServer my-domain.host -To your@email.address -From mail@my-domain.host -Subject "Message Subject" -Body "Message Body"

Здесь:

  • my-domain.host – имя домена, с которого будет производиться отправка сообщения;
  • your@email.address – адрес электронной почты, на который будет отправлено сообщение;
  • mail@my-domain.host – этот электронный адрес будет указан в сообщении как адрес отправителя;
  • Message Subject – тема письма;
  • Message Body – тело письма.

После чего проверьте свою почту, на которую должно прийти сообщение от вашего почтового сервера.

Установка и настройка Postfix на Ubuntu 20.04

Для операционной системы Ubuntu существует довольно популярный почтовый сервер – Postfix. Для установки Postfix мы будем использовать виртуальный сервер, работающий на Ubuntu 20.04. При этом на VPS должны быть произведены работы по первоначальной настройке, описанные в соответствующей статье нашего справочника.

Также, для работы Postfix нужен домен с привязанной A-записью, которой является IP-адрес вашего виртуального сервера.

Плюс ко всему, необходимо соотнести имя домена с именем сервера и его IP-адресом. Для этого запустите следующую команду:

$ sudo hostnamectl set-hostname ubuntu-server

Здесь, ubuntu-server – имя нашего сервера, вместо которого вы можете использовать своё.

Теперь при помощи текстового редактора откройте файл /etc/hosts:

$ sudo nano /etc/hosts

В данный файл добавьте строку:

XXX.XXX.XXX.XXX my-domain.host ubuntu-server

В данном случае:

  • XXX.XXX.XXX.XXX – IP-адрес вашего сервера;
  • my-domain.host – имя вашего домена;
  • ubuntu-server – имя вашего сервера.

Теперь запустите установку Postfix и почтового пакета mailutils:

$ sudo apt install postfix mailutils

В процессе установки система попросит вас выбрать тип конфигурации. Необходимо указать Internet Site:

Выбор типа конфигурации - Установка и настройка почтового сервера

Также установщик попросит согласиться с именем домена, в отношении которого производится настройка почтового сервера. В нашем случае это будет my-domain.host.

Подтверждение имени домена при установке Postfix

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

$ echo "Message Body" | mail -s "Message Subject" your@email.address

В данной команде:

  • Message Body – тело письма;
  • Message Subject – тема письма;
  • your@email.address – адрес электронной почты, на который будет отправлено сообщение.

Проверьте свой почтовый ящик (в нашем примере это – your@email.address), на который должно прийти отправленное из Postfix сообщение.

Содержание

  • 1 Введение
  • 2 Установка почтовых служб.
  • 3 Настройка сервера и почтовых ящиков.
  • 4 Проверяем работу почтовых служб.

Введение

Частенько возникает необходимость настроить почтовый обмен в пределах небольшой сети, компов эдак на 10…100…1000. Стоп! Небольшой! Пока остановимся на двух. Касательно нашей маленькой тестовой сети. Итак, задача – поднять два почтовых ящика, наладить обмен почтовыми сообщениями между ними не привлекая никакие дополнительные программные продукты (особенно коммерческие).

Установка почтовых служб.

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

Переходим на компоненты Windows и, руководствуясь скриншотом, добавляем службы электронной почты.

Дожидаемся установки компонентов.

Настройка сервера и почтовых ящиков.

Для того, чтобы развернуть сервис обмена электронной почты и настроить почтовые ящики нам нужно запустить оснастку POP3 Service, которая появилась, если мы правильно выполнили предыдущие пункты.

Добавляем новый домен почты, назову его mail.serv.main.com (полное имя).

А теперь добавляем новые почтовые ящики. Команда проста: “Add Mailbox”. Создадим почтовый ящик для user с паролем **** и для admin с паролем ****.

Разумеется, вместо звёздочек будут ваши пароли. Но в рамках нашей задачи используем простое “1234”. Что явно не рекомендовано для боевых серверов.

Проверяем работу почтовых служб.

Для простой проверки посредством клиента telnet мы будем подключаться к нашему серверу на 25-ый порт (для SMTP) и на 110-ый порт (для POP3).

telnet serv.main.com 25

Что вводим мы?

HELO serv.main.com

MAIL FROM:<user@mail.serv.main.com>

RCPT TO:<admin@mail.serv.main.com>

DATA

текст сообщения

.

QUIT

Если вы ошибётесь в наботе MAIL FROM: или RCPT TO: то стирать бэкспейсом бесполезно, команда будет отвергнута. Так что потрудитесь набрать без ошибок. :)

Конец сообщения определяется просто точкой.

А теперь прочитаем это письмо, авторизовавшись под admin.

Подключаемся к POP3-серверу.

telnet serv.main.com 110

Что вводим мы?

USER admin@mail.serv.main.com

PASS 1234

LIST

RETR 1

DELE 1

QUIT

Описания протоколов будут в отдельных статьях, так что пока коротко напишу, что это:

  1. Авторизация
  2. Список писем
  3. Получение письма
  4. Удаление письма
  5. Выход

А вот статейка про то, как настроить почтовый клиент outlook express для работы с нашим сервером.

Пока всё! Пробуем, комментируем! Удачи!

Мы уже рассматривали установку Exchnage 2019 в цикле статей по миграции с Exchange 2010 на Exchange 2019. Почему я решил написать отдельную статью, в которой будет рассмотрена установка и первоначальная настройка Exchange 2019? В первую очередь потому, что в тех статьях рассматривалась установка в контексте процедуры миграции, т.е. в инфраструктуре уже был установлен сервер Exchange. Во-вторых, для тех, кто только начинает знакомиться с продуктом или для тех, кому нужно относительно быстро развернуть продукт разбираться с контекстом миграции будет местами не так очевидно. И в третьих, основная идея этой статьи, чтобы пройдя шаги из неё можно было получить рабочий продукт, пусть и в минимальной конфигурации (усложнить вы всегда успеете :)). Например, для тестовой или демонстрационной среды.

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

Мы будем развертывать Exchange 2019 в самой простой конфигурации – один сервер без группы высокой доступности. В следующих публикациях мы добавим еще один сервер и создадим группу высокой доступности. Пока же начнем с базовых вещей.

Аппаратные характеристики нашего почтового сервера с Exchange 2019 приведена ниже:

  1. 6 vCPU.
  2. 8 ГБ RAM.
  3. 120 ГБ диск для системного раздела.
  4. 60 ГБ диск для баз данных.

Поскольку в Exchange 2019 нет разделения на сервера клиентского доступа и сервера почтовых ящиков, то процесс установки довольно прямолинеен.

Требования к Active Directory

Для того, чтобы добавить сервер с Microsoft Exchange 2019 в вашу инфраструктуру необходимо, чтобы функциональный уровень домена и леса вашей AD был Windows Server 2012 R2 или выше.

Более подробно требования к Active Directory приведены в соответствующем разделе официальной документации.

Предварительная подготовка сервера

Непосредственно перед началом установки ролей Exchange необходимо выполнить подготовку операционной системы. Наша операционная система Windows Server 2019 Standard.

В последующем для настройки группы высокой доступности (DAG) нам необходимо будет установить компонент Failover Clustering. Для Windows Server 2019 редакции Standard будет достаточно:

Что нам необходимо сделать:

1. Установить и выполнить первоначальную настройку Windows Server 2019.

2. Выполнить настройку IP-адресации.

3. Установить все обновления для ОС.

4. Присоединить сервера к домену. В нашем случае домен будет itproblog.ru.

5. Загрузить актуальный дистрибутив Microsoft Exchange 2019.

6. Начиная с Exchange 2016 Update Rollup 10 также предварительным требованием является модуль IIS URL Rewrite.

Установка необходимых предварительных компонентов

Полный перечень всех предварительных требований приведен в документации на сайте Microsoft. Ниже мы приведем весь перечень необходимых компонентов и дополнительного ПО применительно к Windows Server 2019.

Для предварительной подготовки Windows Server 2019 к установке роли сервера почтовых ящиков Exchange 2019 нам необходимо выполнить следующие действия:

1. Установить предварительные компоненты следующим PowerShell командлетом:

Install-WindowsFeature Server-Media-Foundation, NET-Framework-45-Features, 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

2. Установить NET Framework 4.8.

3. Установить Visual C++ Redistributable Package for Visual Studio 2012.

4. Также установить Visual C++ Redistributable Package for Visual Studio 2013.

5. Установить компонент Server Media Foundation:

Install-WindowsFeature Server-Media-Foundation

6. И установить Microsoft Unified Communications Managed API 4.0, Core Runtime 64-bit.

На этом установка предварительных компонентов для Exchange 2019 завершена.

Подготовка схемы Active Directory

Если в вашей инфраструктуре еще не был развернут Microrosft Exchange, то необходимо подготовить схему Active Directory для его установки. В процессе подготовки будут добавлены классы объектов и расширены свойства текущих классов для того, чтобы они могли содержать необходимые дополнительные сведения в части хранения почтовых атрибутов.

Вообще, можно не выносить процедуру обновления схемы в отдельный предварительный шаг, т.к. мастер установки Exchange может это сделать за нас автоматически. Однако, для подготовки схемы Active Directory нужны дополнительные разрешения (об этом чуть ниже). Также мы можем в более интерактивном режиме наблюдать за процессом расширения схемы Active Directory. Еще один аргумент в копилку отдельного шага – это отслеживание статуса репликации изменений на все контроллеры домена. Например, у вас три контроллера домена. Мы выполняем процедуру расширения схемы, ждем пока изменения отреплицируются на оставшиеся контроллеры (если у вас их несколько) и только потом переходим к непосредственной установки сервера Microsoft Exchange.

Учетная записи, от имени которой будет выполняться расширение схемы Active Directory должна быть включена в следующие группы безопасности домена:

  1. Schema Admins.
  2. Enterprise Admins.
  3. Domain Admins.

Шаг 1. Расширение схемы Active Directory

Самый первый шаг – это расширение схемы.

Переходим с директорию с дистрибутивом Exchange 2019 и выполняем команду (для Exchnage 2019 ниже CU11):

.Setup.EXE /IAcceptExchangeServerLicenseTerms /PrepareSchema

Командлет для Exchange 2019 CU11 или выше.

.Setup.EXE /IAcceptExchangeServerLicenseTerms_DiagnosticDataON /PrepareSchema

Запуститься процесс расширения схемы Active Directory:

Дожидаемся окончания процесса расширения схемы. Об успешном процессе расширения схемы будет свидетельствовать соответствующее заключение мастера:

Теперь необходимо запустить процесс репликации изменений в Active Directory:

repadmin /syncall

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

Шаг 2. Подготовка Active Directory

Теперь необходимо, чтобы мастер подготовки Active Directory создал необходимые объекты.

Выполните следующую команду в директории с дистрибутивом Exchange (для Exchnage 2019 ниже CU11):

.Setup.EXE /IAcceptExchangeServerLicenseTerms /PrepareAD /OrganizationName:"Itproblog"

Командлет для Exchange 2019 CU11 или выше.

.Setup.EXE /IAcceptExchangeServerLicenseTerms_DiagnosticDataON /PrepareAD /OrganizationName:"Itproblog"

В параметре OrganizationName укажите имя организации Exchange. Имя может быть произвольным.

Дожидаемся окончания процесса подготовки Active Directory.

Теперь если посмотреть в нашу Active Directory, то мы увидим, что мастер создал необходимые группы безопасности:

Далее необходимо запустить процесс репликации изменений в Active Directory:

repadmin /syncall

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

Шаг 3. Подготовка все остальных доменов Active Directory

Если у вас всего один домен, то этот шаг можно пропустить, т.к. параметр PrepareAD в предыдущем шаге уже выполнил всю необходимую подготовку.

Если же у вас несколько доменов, то вы можете:

  1. Подготовить сразу все оставшиеся домены.
  2. Подготовить домены каждый в отдельности.

Для того, чтобы подготовить сразу все домены выполните следующую команду в директории с дистрибутивом Exchange (для Exchnage 2019 ниже CU11):

.Setup.EXE /IAcceptExchangeServerLicenseTerms /PrepareAllDomains

Командлет для Exchange 2019 CU11 или выше.

.Setup.EXE /IAcceptExchangeServerLicenseTerms_DiagnosticDataON /PrepareAllDomains

Чтобы подготовить определенный домен выполните следующую команду в директории с дистрибутивом Exchange (для Exchnage 2019 ниже CU11):

.Setup.EXE /IAcceptExchangeServerLicenseTerms /PrepareDomain:itproblog.ru

Командлет для Exchange 2019 CU11 или выше.

.Setup.EXE /IAcceptExchangeServerLicenseTerms_DiagnosticDataON /PrepareDomain:itproblog.ru

Только в параметре PrepareDomain укажите FQDN имя вашего домена.

Проверка версии схемы

Для того, чтобы проверить текущую версию конфигурации схемы для Microsoft Exchange мы можем использовать, например, оснастку ADSI Edit.

Подключимся к контексту конфигурации и в контекстном меню нашей установки выберем пункт “Properties“. В списке атрибутов найдите атрибут objectVerison:

objectVerison 16757 – это Exchange Server 2019 CU9. Именно его мы и устанавливали. Полный перечень доступен в документации.

Установка Exchange 2019

Начиная с Exchange 2016 Microsoft решила больше не разделять роли на Client Access и Mailbox (как это было в Exchange 2013). Соответственно, у Exchange 2019 только две роли – Mailbox и Edge. В Exchange 2013 Edge сервер также присутствовал. Роли Client Access и Mailbox объединены в одну роль – Mailbox.

На момент написания статьи самой последней версией была Exchange Server 2019 CU11. Однако, мы установим Exchange 2019 CU9, а в одной из следующий статей разберем процесс установки актуальной Update Rollup. Посмотреть актуальный список версий Exchange 2019 можно в документации на сайте Microsoft.

Для Exchange 2013 и более новых версий для установки вы загружаете самый последний Cumulative Update и выполняете установку из него. Он уже содержит все необходимые файлы и все необходимые обновления.

Установка через графический мастер установки

Для того, чтобы установить Exchange через графический мастер установки выполните следующие шаги:

1. Запустить установщик из дистрибутива. Если вы еще не подготовили Active Directory, как было указано в предыдущем разделе, то учетная запись, от имени которой будет выполняться установка должна быть включена в следующие группы Active Directory: Schema Admins, Enterprise Admins и Domain Admins.

2. На шаге проверки обновлений укажем, что мы не будем проверять наличие последних обновлений:

3. На следующем шаге мастера нажмем “Next”.

4. При согласии принимаем лицензионное соглашение:

5. Укажем, что мы не планируем принимать участие в программе улучшения качества продукта:

6. Укажем, что мы будем устанавливать сервер почтовых ящиков:

7. Укажем директорию установки:

8. Мы не будем отключать сканирование на предмет вредоносного ПО:

9. Мастер установки Exchange 2019 выполнит проверку предварительных требований. Если какой-то пункт не будет выполнен, то мастер установки сообщит об этом. Нажимаем кнопку “Install”.

10. Дожидаемся окончания процедуры установки.

11. В случае успешного завершения установки мастер сообщит нам об этом:

12. Перезагружаем сервер.

Установка через командную строку

Вариант установки через командную строку гораздо более лаконичен.

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

1. Перейдите в директорию с дистрибутивом Exchange. Если вы еще не подготовили Active Directory, как было указано в предыдущем разделе, то учетная запись, от имени которой будет выполняться установка должна быть включена в следующие группы Active Directory: Schema Admins, Enterprise Admins и Domain Admins.

2. Запустите установку Exchange сервера (для версии Exchange 2019 ниже CU11):

.Setup.exe /IAcceptExchangeServerLicenseTerms /mode:Install /r:MB

Командлет для версии Exchange 2019 CU11 или выше:

.Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataON/mode:Install /r:MB

3. Дождитесь окончания процесса установки.

4. Перезагрузите сервер.

Проверка корректности установки

В большинстве случаев маркером успешной установки является то, что вы можете перейти в панель управления Exchange (Exchange Control Panel – ECP). Для перехода в ECP перейдите по следующей ссылке:

https://sr-mail01.itproblog.ru/ecp

При переходе по ссылке выше вы скорее всего получите предупреждение о недоверенном сертификате (т.к. сертификат самоподписанный самим сервером Exchange). В одной из следующей статье мы рассмотрим, как установить сертификат с нужным нам доменным именем и настроить пространство имен для доступа к серверу.

Первоначальная настройка Exchange 2019

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

Переименование и перенос стандартной базы данных

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

Что необходимо сделать:

1. Запустить модуль PowerShell для Microsoft Exchange:

2. Посмотреть список текущих баз данных. Выполните следующий командлет:

Get-MailboxDatabase -Server SR-MAIL01

2. Переименовать базу данных в конфигурации:

Get-MailboxDatabase -Identity "Mailbox Database 0284994124" | Set-MailboxDatabase -Name DB01

3. Физически база данных все еще расположена на системном разделе (в нашем случае). Имя файла с базой данных теперь не соответствует тому имени, что мы указали в конфигурации. Исправим это.

Мы перенесем её на отдельный диск, который у нас подключен к серверу. Для этого выполним следующий командлет:

Move-DatabasePath -Identity DB01 -EdbFilePath e:DB01db01.edb -LogFolderPath e:DB01

Нас предупредят о том, что на время переноса почтовая база будет недоступна:

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

4. Процесс переноса и переименоваия базы данных завершен.

Настройка списка обслуживаемых доменов

В дальнейшем для маршрутизации почты мы будем использовать доменное имя itproblog.ru. Для того, чтобы наш сервер Exchange начал принимать почту для домена itproblog.ru необходимо ему об этом сказать. Для этого создается отдельная запись в списке обслуживаемых доменов (accepted domains).

Если домен вашей электронной почты отличается от FQDN имени домена Active Directory, то выполните следующий командлет в модули PowerShell для Microsoft Exchange:

New-AcceptedDomain -DomainName itproblog.ru -DomainType Authoritative -Name ITProBlog

Текущий список обслуживаемых доменов можно посмотреть следующим командлетом:

Get-AcceptedDomain

В списке обслуживаемых доменов вы должны увидеть ваш почтовый домен. В нашем случае это домен itproblog.ru:

Настройка адресов получателей

Если домен вашей электронной почты отличается от FQDN имени домена Active Directory, то вам необходимо добавить адреса вашего почтового домена всем необходимым получателям.

Перейдите в панель управления Exchange:

https://sr-mail01.itproblog.ru/ecp

Перейдите в раздел “Recipients” – “Mailboxes“:

На вкладке “email address” добавьте новой дополнительный адрес электронной почты.

Альтернативный способ – это использование политики именования адресов (email address policy). Пока мы не будем касаться этой темы, но для массового добавления адресов это будет более оптимальное решением.

Настройка внешних DNS записей

Для того, чтобы почтовые сервера в сети Интернет могли отправлять почту на ваш домен они должны запросить соответствующую запись у DNS сервера, который обслуживает ваш домен. Для маршрутизации почты используются MX записи. С тем, что такое MX запись и для чего она нужна более детально можно ознакомиться вот тут.

Если же кратко, то в параметрах MX записи вы определяете – на какое DNS имя должна отправляться почта для вашего домена. Что здесь указывать – зависит от вашей инфраструктуры. У кого-то “белый” IP-адрес непосредственно настроен на одном из интерфейсов почтового сервера. Тогда вы указываете этот адрес. У кого-то стоит пограничное анти-спам решение, тогда в параметрах MX записи указывается “белый” IP-адрес антиспам решения. Кто-то через NAT “пробрасывает” порт TCP/25 на внутренний IP-адрес сервера. В таком случае в параметрах MX записи вы указываете “белый” IP-адрес вашего пограничного маршрутизатора. Одно только абсолютно точно – для маршрутизации почты вам нужен “белый” IP-адрес.

Формат MX записи следующий:

Доменное имя Приоритет Имя почтового сервера
Указывается для какого доменного имени будет настроена MX запись. Если у вас несколько почтовых серверов. Например, основной и резервный, то сервер с более меньшим значением приоритета будет иметь преимущество. Например, у сервера со значением приоритета 10 будет превалировать над серверов со значением приоритета 20. Указывается доменное имя на которое необходимо направлять поток почты.

Например, настройки MX записи для домена itproblog.ru следующие:

т.е.:

Доменное имя – itproblog.ru.

Приоритет – 10.

Имя почтового сервера – mail.itproblog.ru.

Стоит отметить, что регистрация MX записи очень сильно зависит от того, кто предоставляет вам услуги DNS сервера.

Настройка коннектора отправки

На текущем этапе на сервер уже должен уметь принимать почту из вне, но он все еще не умеет отправлять почту во внешний мир. причина – он просто не знает куда и как её отправлять. Для этого необходимо ему помочь и настроить коннектор отправки.

Коннектор отправки определяет – через какой маршрут какому серверу и на какой домен разрешено отправлять электронную почту.

Создадим коннектор отправки, который ращрешит нашему сервер Exchange отправлять почту на любой домен через разрешение MX записи соответствующего домена. Если кратко – разрешим отправлять почту на любой домен. Выполните следующий командлет в модули PowerShell для Microsoft Exchange:

New-SendConnector -Name "Internet" -Usage "Internet" -SourceTransportServers "SR-MAIL01" -DNSRoutingEnabled $True -AddressSpaces ("SMTP:*;5")

Проверка корректности маршрутизации электронной почты

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

Если же транспорт почты не работает, т.е. вы не можете отправить письма наружу или получить письма из вне, то не спешите думать, что вы сделали что-то не так. В ночь с 31 декабря на 1 января 2022 у многих, кто использует Exchange 2016/2019 перестала доставляться почта. Причина – баг в программном коде встроенного антивируса.

Можете для начала выполнить вот этот командлет:

Get-MalwareFilteringServer | Set-MalwareFilteringServer -BypassFiltering $true
Restart-Service MSExchangeTransport

Если же этот “фикс” вам не помог, то далее уже нужно анализировать конфигурацию системы в целом:

  • Правильно ли зарегистрирована MX запись во внешней DNS зоне.
  • Попробуйте еще добавить SPF запись. SPF запись для домена itproblog.ru:
v=spf1 a mx -all
  • Правильно ли выполнена публикация порта TCP/25. Можете использовать, например, вот этот интсрумент для внешней проверки.
  • Правильно ли настроен коннектор отправки Exchange.
  • Не блокирует ли ваш брандмауэр входящий/исходящий SMTP траффик.
  • Может ли ваш сервер Exchange разрешать MX записи внешних почтовых доменов.

Выше приведен лишь перечень основных шагов, которые я обычно выполняю при устранении ошибок с транспортом почты.

Заключение

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

Надеюсь, что статья будет вам полезна, а в следующих публикация мы рассмотрим процесс обновления сервера Exchange – установку актуального Update Rollup и обновлений безопасности Exchange.

mail-server-beginners-000.pngПоследнее время мы уделяли мало внимания почтовым системам, но вновь возросший интерес заставил нас вернуться к этой теме. Основные затруднения начинающих при работе с почтой состоят в том, что почта — это сложная система, состоящая из нескольких компонентов, взаимодействующих как между собой, так и с внешними системами. Кроме того, почта крайне чувствительная к правильной настройке DNS. Чтобы разобраться и не запутаться во всем этом мы предлагаем освежить знания по базовому устройству систем электронной почты при помощи этой статьи.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Общее устройство и принципы работы почтового сервера

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

Давайте рассмотрим схему ниже, она предельно упрощена и содержит только самые важные элементы, которые лежат в основе любой почтовой системы.

mail-server-beginners-001.pngИх ровно три:

  • Message transfer agent (MTA) — агент передачи сообщений. Данный компонент, собственно, и является почтовым сервером в узком понимании этого термина, он работает по протоколу SMTP и его основная задача прием и передача почтовых сообщений, как для внешних получателей, так и для внутренних. Взаимодействует как с внешними серверами, так и с почтовыми клиентами. И это единственный компонент почтового сервера, который имеет связь с внешним миром. Основная задача MTA — это отправка почты внешним получателям и получение почты для внутренних.
  • Message delivery agent (MDA) — агент доставки сообщений. Он обеспечивает доставку полученных от MTA сообщений к месту прочтения клиентским приложением. Проще говоря, именно с помощью MDA почтовый клиент может получить доступ к собственной почте. Работает по протоколам POP3 и IMAP, также отдельные решения могут использовать проприетарные протоколы, такие как MAPI Exchange. MDA не взаимодействует с внешними системами и не принимает участие в отправке почты, его задача — доставка уже полученных сообщений клиенту почтовой системы.
  • Хранилище почтовых ящиков — третий компонент почтового сервера, отвечающий за хранение полученных и отправленных сообщений. Различные системы могут использовать разные форматы хранения, в Linux системах наиболее распространены mbox и Maildir, но на этом варианты хранилищ не исчерпываются.

С почтовым сервером взаимодействует клиент электронной почты — Mail User Agent (MUA) — он может быть как в виде отдельного приложения, так и в виде популярного ныне веб-интерфейса. В любом случае это только разновидности почтового клиента, принцип их работы одинаков.

Когда пользователь хочет получить свою почту, он обращается к агенту доставки сообщений (MDA), сегодня MDA несут важную дополнительную функцию — ведение базы пользователей и их аутентификацию. Проверив, что пользователь тот, за кого себя выдает MDA предоставляет ему доступ к собственному ящику в хранилище при помощи выбранного пользователем протокола. Во всех современных решениях используется протокол IMAP, который позволяет гибко управлять собственным почтовым ящиком и не требует обязательного скачивания сообщений клиентом.

Если же мы хотим отправить почту, то почтовый клиент связывается с MTA, либо с дополнительным компонентом — Message submission agent (MSA) — агентом отправки почты, он использует отдельный порт — 587 и его задача получение сообщений от почтового клиента и передача их MTA для отправки по назначению. Вне зависимости от наличия MSA клиент всегда может отправить почту непосредственно через MTA.

Мы не стали добавлять MSA на основную схему, чтобы не плодить дополнительных сущностей, но о его существовании надо знать, чтобы не удивляться наличию дополнительного порта на почтовом сервере. Его появление во многом обусловлено ограниченностью протокола SMTP, тогда как для взаимодействия с клиентами нужны были дополнительные функции, поэтому MSA работает через протокол ESMTP (Extended SMTP) и поддерживает, например, такие возможности, как аутентификацию пользователей. Чаще всего функции MTA и MSA выполняет один и тот же пакет.

Теперь, читая, скажем, про связку Postfix + Dovecot + Roundcube вы будете четко понимать, что речь идет про MTA (Postfix), MDA (Dovecot) и веб-клиента MUA (Roundcube), представлять назначение каждого компонента и не путаться во взаимодействии с ними.

Обязательные DNS-записи: MX и PTR

Итак, мы хотим отправить почту. Пользователь открывает MUA, быстро создает сообщение и нажимает кнопку Отправить. Дело сделано, но мало кто задумывается о том, что происходит после, все мы привыкли что уже через считанные секунды наше сообщение будет в почтовом ящике получателя.

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

Первым в дело вступает MTA, он анализирует поле адреса назначения в заголовках письма, допустим мы видим там:

To: Maria Smirnova <MSmirnova@example.org>
From: Ivanov Ivan <IIvaniov@example.com>

Если домен получателя отличается от обслуживаемого MTA домена, то он должен каким-то образом узнать, кому именно отправлять почту. Для этого он использует систему DNS, запросив специальную запись — MX. MX — Mail Exchanger — особая DNS-запись, указывающая на адрес почтового шлюза домена, таких записей может быть несколько, они отличаются приоритетом, чем больше число — тем ниже приоритет.

MX-запись никак не связана с отправкой почты, но именно она указывает на узел, который уполномочен принимать почту в данном домене. Данная запись должна содержать именно имя узла, а не IP-адрес, после чего сервер-отправитель сделает еще один запрос, чтобы по имени хоста получить его IP-адрес. Данные записи прописываются администратором домена и в базовом варианте будут выглядеть так:

@ IN MX 10 srv-mx-01
srv-mx-01 IN A 203.0.113.25

Первая запись — это MX-запись для домена, которая говорит кому отправлять почту. Вторая запись сопоставляет имя srv-mx-01.example.com и действительный IP-адрес узла.

Часто администраторы предпочитают использовать псевдонимы — CNAME — для указания на отдельные почтовые узлы. Это удобно, но в любом случае MX-запись должна содержать реальное имя узла, а не псевдоним, поэтому правильно будет так:

@ IN MX 10 srv-mx-01
smtp IN CNAME srv-mx-01
imap IN CNAME srv-mx-01
srv-mx-01 IN A 203.0.113.25

Принимать почту в домене могут несколько серверов, или один, но на разных каналах. Допустим у нас есть основной канал и есть резервный, тогда набор записей будет выглядеть так:

@ IN MX 10 srv-mx-01
@ IN MX 20 srv-mx-02
srv-mx-01 IN A 203.0.113.25
srv-mx-02 IN A 198.51.100.25

Если сервер-отправитель не сможет отравить почту первому MX-серверу в списке, то он переключится на второй. Обратите внимание на разный приоритет серверов: 10 и 20, таким образом пока доступен сервер с приоритетом 10 почта никогда не будет направляться серверу с приоритетом 20.

А если мы укажем несколько серверов с одинаковым приоритетом? Почта будет направляться на все из них по принципу Round-robin, т.е., чередуясь по кругу, такое решение можно использовать для балансировки нагрузки.

C MX-записями разобрались, переходим к PTR. PTR — Pointer — соответствие адреса имени, позволяет на основании IP-адреса получить имя хоста этого узла. Какое это имеет отношение к отправке и получению почты? Да никакого, наличие или отсутствие PTR-записи никак не влияет на процесс отправки или получения почты. Но зачем же тогда она нужна?

Основное ее назначение — это защита от спама. Уже давно существует соглашение, что добросовестный отправитель почты имеет PTR-запись. Это позволяет сразу отсечь огромный пласт взломанных и инфицированных систем, потому как прописать PTR-запись может только владелец IP-адреса, т.е. хостер или провайдер. Поэтому даже получив полный доступ к инфраструктуре, включая DNS-сервер, злоумышленник все равно не сможет добавить или изменить PTR-запись.

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

25.113.0.203 IN PTR srv-mx-01.example.com.

Обращаем внимание на то, что в PTR всегда указывается полное доменное имя FQDN и обязательно с точкой на конце. Но это знание более академическое, так как обратной зоной будет управлять ваш провайдер и прямого доступа туда у вас не будет.

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

25.113.0.203 IN PTR srv-mx-01.example.com.
25.100.51.198 IN PTR srv-mx-02.example.com.

Почему? Да потому что сервера srv-mx-02 у нас физически не существует, мы придумали его как второе имя для основного сервера srv-mx-01 и в заголовках писем в качестве отправителя будет присутствовать именно это имя. Кроме того, как мы уже говорили, MX-сервера не имеют никакого отношения к процессу отправки почты.

Поэтому правильно будет сделать PTR-записи так:

25.113.0.203 IN PTR srv-mx-01.example.com.
25.100.51.198 IN PTR srv-mx-01.example.com.

И еще раз предупредим, все записи выше даны сугубо в академических целях, в реальности вам нужно будет только сообщить провайдеру (или провайдерам) для какого узла им нужно сделать PTR-запись.

SPF — Sender Policy Framework

SPF — это специальный тип DNS-записи в формате TXT, позволяющий владельцу домена указать те узлы, которые имеют право отправлять почту от имени домена. Эта запись не является обязательной, но ее наличие резко снижает вероятность попадания вашей корреспонденции в спам.

Чаще всего содержимое SPF сводится к стандартному:

@ IN TXT "v=spf1 +a +mx ~all"

Запись состоит из списка тегов и значений, теги в SPF-записи называются механизмами и могут иметь следующие значения:

  • v — версия SPF, это обязательный механизм, сейчас доступно единственное значение v=spf1
  • a — определяет узлы на основе доменного имени (A-записи), формат a:example.com, если домен не указан, то применяется текущий домен
  • mx — определяет узлы на основе MX-записей домена, если домен не указан, то применяется текущий домен
  • ip4/ip6 — определяет узлы на основе IPv4 или IPv6 адреса
  • all — все остальные узлы
  • include — включает в состав SPF-записи указанного домена, например, include:_spf.yandex.net
  • redirect — использовать для домена SPF-записи указанного домена.

Для уточнения действий к механизмам применяются квалификаторы (префиксы):

  • + — Аутентификация пройдена. Узлу разрешена отправка почты от имени домена.
  • — Аутентификация не пройдена. Узлу запрещена отправка почты от имени домена.
  • ~ — Аутентификация с неполным отказом. Скорее всего, узлу запрещена отправка почты от имени домена.
  • ? — Нейтральный квалификатор, обозначает что для узла нет явных указаний, обычно используется как ?all

Таким образом стандартная запись читается как: разрешено отправлять почту узлам перечисленным в A и MX записях домена, остальным, скорее всего запрещено. При аутентификации с неполным отказом письма от прочих узлов обычно не отвергаются получателем, а помечаются как подозрительные. Квалификатор «+» подразумевается по умолчанию и его можно не указывать. Если нам нужно указать несколько узлов, то используем несколько механизмов. Например:

@ IN TXT "v=spf1 a a:mail.example.org mx -all"

Здесь мы указали, что отправлять почту можно с узлов указанных в A и MX записях текущего домена, а также с узла mail.example.org.

Если у вас есть домены с которых никогда не должна отправляться почта, то не будет лишним указать для них следующую SPF-запись:

@ IN TXT "v=spf1 -all"

Теперь немного об include и redirect, может показаться, что они делают одно и тоже, но есть тонкости. Механизм redirect просто перенаправляет вас к записям указанного в нем домена. Это удобно, если сервер обслуживает сразу несколько доменов, это позволяет иметь одну единственную запись, которую будут использовать все остальные. Также это применяется при использовании своего домена совместно c публичными почтовыми системами:

@ IN TXT "v=spf1 redirect=_spf.yandex.net"

Такая запись указывает использовать для домена записи, указанные у публичной службы.

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

@ IN TXT "v=spf1 ip4:203.0.113.25 include=_spf.yandex.net ~all"

Данная запись говорит о том, что отправлять почту имеет право узел с адресом 203.0.113.25, а также все остальные, которые перечислены в записях указанного домена.

DKIM — DomainKeys Identified Mail

Если говорить коротко, то DKIM — это технология электронно-цифровой подписи, которая позволят получателю убедиться, что письмо действительно принадлежит отправителю. Для этого на каждом почтовом сервере, которые отправляют почту в нашем домене мы генерируем ключевую пару RSA. Закрытый ключ мы добавляем в конфигурацию почтового сервера и теперь он будет подписывать все исходящие письма.

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

Для того, чтобы проверить подлинность подписи мы публикуем открытый ключ и используем для этого систему DNS, сформировав специальную запись типа TXT:

m1._domainkey TXT "v=DKIM1; k=rsa; p=<публичный ключ>"

Где m1 — селектор, он выбирается произвольно и должен быть уникальным для каждого почтового сервера, также селектор указывается в конфигурации почтового сервера при настройке подписи DKIM. Он нужен для того, чтобы получатель мог получить открытый ключ именно того сервера, который отправил данное письмо.

Механизм предельно прост, при подписи письма сервер отправитель добавляет в заголовки селектор, сервер получатель извлекает селектор и ищет в DNS запись DKIM для этого селектора, после чего извлекает оттуда открытый ключ и проверяет подлинность подписи.

Технология DKIM не является обязательной к применению, но значительно повышает вероятность доставки ваших писем получателям.

DMARC — Domain-based Message Authentication, Reporting and Conformance

DMARC — это техническая спецификация, обеспечивающая единые механизмы проверки почты по SPF и DKIM, а также формирование и отправку отчетов. На первый взгляд выглядит сложно и непонятно, но на самом деле позволяет отправителю не только дать прямые указания что делать с почтой, но и получать обратную связь от получателей, что очень важно если вы только тестируете отправку почты.

В простейшем случае DMARC запись выглядит так:

_dmarc TXT "v=DMARC1; p=none; rua=mailto:report@example.com"

Запись состоит из тегов:

  • v — версия DMARC, обязательный тег, в настоящее время единственное значение v=DMARC1
  • p — правило для домена, указывает какое действие следует предпринять если письмо не прошло проверку, может иметь значения: none — ничего не делать, quarantine — поместить письмо в карантин, reject — отклонить письмо.
  • sp — правило для субдоменов, принимает такие же значения, как и p.
  • aspf и adkim — позволяют указать строгость проверки, по умолчанию используется мягкая проверка, при которой результат будет провален только при провале и SPF и DKIM, с помощью данных опций и значения s (strict) мы можем ужесточить проверку, и она будет провалена при провале только одной из указанных опций.
  • pct — процент писем, подлежащих фильтрации DMARC, удобно для постепенного внедрения проверки, например, мы можем для начала указать 10% и потом по отчетам анализировать правильность настройки почтовой для отправляемых нами писем.
  • rua и ruf — адреса для направления ежедневных отчетов о применении политик DMARC, при этом ruf используется для отчета только о письмах, не прошедших проверку.
  • fo — определяет о каких не пройденных проверках сообщать владельцу домена, по умолчанию значение 0 — сообщать только если не пройдены проверки SPF и DKIM, 1 — если не пройдена хотя бы одна проверка, s или d — если не пройдена SPF или DKIM.

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

Более сложная политика может выглядеть так:

_dmarc TXT "v=DMARC1; p=quarantine; sp=reject; rua=mailto:report@example.com; ruf=mailto:admin@example.com; fo=1; pct=25"

Данная запись предписывает не прошедшие проверку письма основного домена отправлять в карантин, поддоменов — отклонять, сообщать если не пройдена даже одна из проверок и фильтровать 25% входящей почты. Отчеты присылать на указанные адреса, в нашем случае они разные. Общий отчет направляется в один почтовый ящик, отчет о не прошедших проверку письмах в другой.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Понравилась статья? Поделить с друзьями:
  • Как развернуть окно на весь экран с помощью клавиатуры windows 10
  • Как развернуть образ windows 10 на жесткий диск
  • Как развернуть на весь экран виртуальную windows в virtualbox
  • Как развернуть меню пуск в windows 10
  • Как раздать проводной интернет с компьютера на телефон windows 7