Установка и настройка почтового сервера Mail-in-a-Box в Ubuntu 22.04
Установка и настройка почтового сервера Mail-in-a-Box в Ubuntu 22.04
Продолжая рассматривать решения для собственной почты, нельзя обойти вниманием еще один Open Source проект - Mail-in-a-Box. Пожалуй, это одна из самых продвинутых в техническом плане сборок, но и самая своеобразная. Общая идея этого продукта заложена в названии - Mail-in-a-Box (Почта в коробке) и предполагает развертывание полноценного и современного почтового сервера в одно действие. Но, в отличие от иных сборок, мнение пользователя здесь не учитывается, разработчики считают, что они лучше знают, каким должен быть почтовый сервер и мы либо играем по их правилам, либо не играем вообще.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Да, вы не ослышались, Mail-in-a-Box считает собственные настройки единственно верными и не приветствует ручное изменение конфигурации, более того, при обновлении или повторном запуске утилиты конфигурирования все настройки будут сброшены на изначальные. С другой стороны, вам вообще не требуется знать почти ничего об электронной почте чтобы работать с данной сборкой. Буквально в несколько очень простых действий вы можете поднять полностью автономную почтовую систему. В общем, выбор за вами.
Доменные имена и DNS-зона
Как театр начинается с вешалки, так и почта начинается с настройки DNS-зоны, важно сделать это заранее, так как изменения в системе DNS не распространяются мгновенно. В нашем примере будет использован специальный технический домен, который мы специально используем для подготовки материалов.
Исходные данные такие:
- it-31.ru - используемый домен
- mk-52 - почтовый сервер, полное доменное имя (FQDN) mk-52.it-31.ru
- 203.0.113.25 - IP-адрес почтового сервера
Те, кто читал наши предыдущие статьи о почтовых сборках заметят, что мы не указали псевдоним (CNAME) для сервера. Так и есть, с Mail-in-a-Box использовать его не получится, поэтому сразу называем сервер как надо или используем то имя, которое есть.
Есть два варианта развертывания Mail-in-a-Box - в качестве автономной системы, в этом случае DNS-сервер вашей зоны будет расположен на этом же узле, либо с использованием внешних DNS-серверов. Первый способ проще, но накладывает серьёзные ограничения и неудобства в управление доменной зоны. А в случае неисправностей почтового сервера ваша зона останется без сервера имен, что приведет к ее глобальной недоступности.
Внешние DNS-сервера позволяют сохранить управляемость и надежность облуживания зоны, но потребуют дополнительных действий и настроек, мы рекомендуем именно этот вариант.
Но если вы хотите все-таки получить автономную систему, то вам потребуется внести на DNS-сервере, обслуживающем вашу зону следующие записи:
Это так называемые Glue (склеивающие) записи, позволяющие определить адреса сервером имен если они находятся в обслуживаемом ими домене.
Затем здесь же изменим записи, определяющие сервера имен зоны:
В NS-записях следует использовать только полные (FQDN) имена узлов и обязательно заканчивать их точкой.
Имейте ввиду, что не все DNS-хостинги позволят вам внести такой набор записей, так как по спецификации зону должны обслуживать не менее двух NS-серверов в разных IP-подсетях.
Если же мы используем внешние DNS-сервера, то вносим на них стандартный набор записей, сначала MX и А:
Затем SPF и DMARC:
Мы указали достаточно мягкие правила, согласно которым почту могут отправлять узлы перечисленные в A и MX-записях домена, а политика DMARC предписывает только присылать отчеты, если почта не прошла проверку у получателя. Более подробно с этими записями и их настройкой вы можете ознакомиться в статье:
Настраиваем свой почтовый сервер. Что нужно знать. Ликбез
Далее, вне зависимости от того какой способ управления DNS вы выбрали, вам нужно обратиться к провайдеру или хостеру, тому кто выдал вам IP-адрес, и попросить создать обратную запись (PTR) с именем вашего хоста, пример такой записи для нашего случая:
Еще раз напоминаем, обратную запись делает владелец IP-подсети, и она должна содержать имя сервера, отправляющего почту.
Предварительная настройка сервера
Для установки Mail-in-a-Box потребуется Ubuntu 22.04 LTS, другие операционные системы не поддерживаются. Также важно использовать для этого чистую минимальную установку, так как установщик будет настраивать систему по собственному усмотрению, в т.ч. и удаляя ненужные, на его взгляд, пакеты, например, apache.
Подготовить чистый сервер для установки вы можете при помощи нашей статьи:
Linux - начинающим. Установка и первоначальная настройка Ubuntu 22.04 LTS для сервера
В процессе предварительной подготовки нам нужно задать правильное имя сервера, используя для этого FQDN:
Затем откроем файл /etc/hosts и приведем записи в нем к виду:
И правильно настроим часовой пояс:
Получить список доступных поясов можно командой:
На этом подготовка сервера закончена.
Установка Mail-in-a-Box
Все указанные ниже команды должны выполняться от имени суперпользователя root, поэтому сразу повысим права:
Скачаем и сразу запустим скрипт установки:
Первым делом вас попросят указать почтовый ящик для управления вашим сервером. вводим желаемое значение.
Затем имя хоста, штатно рекомендуется использовать box, но мы же не инкубаторские, поэтому вводим собственное имя в формате FQDN.
Затем можно откинуться на спинку стула и расслабится пока скрипт осуществляет установку и настройку пакетов. По окончании установки вам будет предложено создать первый почтовый ящик, он же будет почтой и логином администратора. Если вы укажете здесь значение отличное от того, что вы ввели на первом шаге, то указанное в самом начале значение будет добавлено к первому ящику как алиас.
На этом установка Mail-in-a-Box закончена.
Возможные проблемы при установке
Так как Mail-in-a-Box устанавливает свой DNS-сервер, точнее сразу два: NSD для управления зоной и BIND для внутренних целей, то после этого в системе может нарушиться разрешение адресов, и вы получите ошибку скачивания пакетов.
В этом случае откройте файл /etc/bind/named.conf.options и добавьте в него опцию:
Перезапустите BIND:
И повторите установку командой:
После завершения установки приведите конфигурацию BIND к исходному виду и еще раз перезапустите сервис.
Начало работы. Административная часть
Для того, чтобы попасть в админ-панель наберите в адресной строке браузера https://имя_сервера/admin и используйте для входа учетные данные созданные вами в конце установки.
Для начала перейдите в System - Status Checks и проверьте статус установки. Особое внимание обратите на ошибки и предупреждения. Как мы уже говорили, у разработчиков свои понятия о правильном, поэтому не все указанные там ошибки являются таковыми, но все равно внимательно изучите список и постарайтесь устранить их по максимуму.
Если вы выбрали размещение зоны прямо на почтовом сервере, то для добавления записей в зону можно использовать раздел System - Custom DNS, но возможности там самые примитивные. Отсюда же можно попасть в систему мониторинга, для этих целей здесь используется Munin. Более подробно о работе с этой системой мониторинга можно прочитать в нашей статье:
Устанавливаем и настраиваем систему мониторинга Munin
Также автоматически настроено резервное копирование, управление им доступно в разделе System - Backup Status. По умолчанию копии делаются локально, но вы можете настроить копирование на внешние узлы через rsync, в S3 хранилища или использовать Backblaze B2.
В целом набор возможностей впечатляет, перед нами действительно современная и продвинутая почтовая система сразу из коробки. Также сразу же настроено автоматическое обновление системы, об этом беспокоиться тоже не надо.
Следующий раздел Mail & Users состоит из трех разделов, первый Instructions - чисто информационный, содержит настройки подключения к серверу. Единственный момент, вместо предлагаемого для подключения клиентов порта 465 следует использовать 587, порт 465 давно признан устаревшим и исключен из спецификаций. Возможность работы почтовых клиентов через 25 порт заблокирована.
Два оставшихся раздела Users и Aliaces позволяют заводить почтовые ящики пользователей и алиасы к ним. Тут все достаточно просто, но приятным дополнением оказывается наличие API, краткая документация к которому доступна прямо в этом разделе, что открывает широкие возможности по автоматизации.
Раздел Contacts/Calendar содержит исключительно ссылки на веб-доступ к контактам и календарю.
Настройка DKIM-записи
Если вы используете внешние DNS, то вам потребуется добавить открытый ключ для проверки подлинности отправителя почты - DKIM, для этого перейдите в раздел System - External DNS и найдите в нем DKIM-запись.
Ее содержимое следует перенести на ваш DNS-хостинг.
Настройка дополнительных функций
Как мы уже говорили, Mail-in-a-Box - весьма современный и продвинутый сервер, предоставляющий массу возможностей, одна из них - автообнаружение настроек почтовыми клиентами. Или MTA-STS (Mail Transfer Agent-Strict Transport Security) - тонкая настройка политик использования TLS при почтовом обмене.
Подробный обзор этих технологий выходит за рамки данной статьи, но все что нужно знать - что они уже есть и настроены. Чтобы их использовать вам потребуется только добавить нужные DNS-записи, дождаться пока они заработают и получить сертификаты.
Начать следует с раздела System - External DNS, где перечислены все примеры нужных записей, просто переносим их копированием на свой DNS-сервер. Рядом с каждой записью присутствует краткое описание.
После того, как добавленные записи заработают, в частности это касается А-записей для служебных поддоменов, переходим в System - TLS (SSL) Certificates и получаем для них сертификаты.
Как видим - ничего сложного, если вы выбрали полностью автономный вариант системы, то все это будет работать у вас из коробки.
Начало работы. Пользовательская часть
В качестве веб-клиента в Mail-in-a-Box используется Roundcube, а календарь и адресная книга используются от Nextcloud. Для того, чтобы попасть в веб-почту просто наберите в адресной строке https://имя_сервера/mail. Сразу же стоит перейти в настройки почтового ящика и установить в качестве адресной книги по умолчанию ownCloud, в противном случае Roundcube будет использовать собственную книгу, которая не будет синхронизироваться между клиентами.
Затем проверьте оправку почты, начните с локальной, потом на внешние сервера. Не ленитесь заполнять все поля и прикреплять вложения, если там есть какие-то проблемы, то лучше узнать о них сейчас, а не от пользователей.
На принимающей стороне убедитесь, что письмо проходит проверку подлинности отправителя, имеет подпись и используются защищенные каналы связи.
Календарь и контакты стандартные от Nextcloud, но это отдельный веб-интерфейс с отдельной аутентификацией:
Если вы хотите обмениваться событиями и приглашать коллег - добавьте в настройках свой адрес электронной почты. А внизу, в Calendar Settings вы можете скопировать ссылку для подключения календаря и адресной книги на почтовом клиенте если вы не стали настраивать автообнаружение, либо оно по какой-то причине не работает. Структура ссылки там всегда такая: https://имя_сервера/cloud/remote.php/dav.
Если вы настроили автообнаружение, то почтовый клиент получит настройки автоматически, иначе потребуется указать нужные параметры руками и отдельно подключить календарь и адресную книгу. Если вы все сделали правильно, то будет работать синхронизация и вы сможете спокойно работать и в почтовом клиенте, и через веб-интерфейс.
Подводя итоги, можно сказать, что Mail-in-a-Box - интересный, хотя и достаточно неоднозначный продукт. С одной стороны он позволяет быстро развернуть современную почтовую систему с массой возможностей, с другой - какая-либо гибкость настроек отсутствует и вам придется соглашаться с тем, каким видят почтовый сервер разработчики продукта. Но в любом случае данная сборка заслуживает внимания, особенно если вы не чувствуете себя готовым глубоко погружаться в работу электронной почты.