Установка и настройка почтового сервера Mail-in-a-Box в Ubuntu 22.04

  • Автор:

Mail-in-a-Box-install-ubuntu-2204-000.pngПродолжая рассматривать решения для собственной почты, нельзя обойти вниманием еще один Open Source проект - Mail-in-a-Box. Пожалуй, это одна из самых продвинутых в техническом плане сборок, но и самая своеобразная. Общая идея этого продукта заложена в названии - Mail-in-a-Box (Почта в коробке) и предполагает развертывание полноценного и современного почтового сервера в одно действие. Но, в отличие от иных сборок, мнение пользователя здесь не учитывается, разработчики считают, что они лучше знают, каким должен быть почтовый сервер и мы либо играем по их правилам, либо не играем вообще.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Да, вы не ослышались, 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-сервере, обслуживающем вашу зону следующие записи:

ns1.mk-52 IN A 203.0.113.25
ns2.mk-52 IN A 203.0.113.25

Это так называемые Glue (склеивающие) записи, позволяющие определить адреса сервером имен если они находятся в обслуживаемом ими домене.

Затем здесь же изменим записи, определяющие сервера имен зоны:

@ IN NS ns1.mk-52.it-31.ru.
@ IN NS ns2.mk-52.it-31.ru.

В NS-записях следует использовать только полные (FQDN) имена узлов и обязательно заканчивать их точкой.

Имейте ввиду, что не все DNS-хостинги позволят вам внести такой набор записей, так как по спецификации зону должны обслуживать не менее двух NS-серверов в разных IP-подсетях.

Если же мы используем внешние DNS-сервера, то вносим на них стандартный набор записей, сначала MX и А:

@ IN MX 10 mk-52
mk-52 IN A 203.0.113.25

Затем SPF и DMARC:

@ IN TXT "v=spf1 +a +mx ~all"
_dmarc TXT "v=DMARC1; p=none; rua=mailto:report@it-31.ru"

Мы указали достаточно мягкие правила, согласно которым почту могут отправлять узлы перечисленные в A и MX-записях домена, а политика DMARC предписывает только присылать отчеты, если почта не прошла проверку у получателя. Более подробно с этими записями и их настройкой вы можете ознакомиться в статье:

Настраиваем свой почтовый сервер. Что нужно знать. Ликбез

Далее, вне зависимости от того какой способ управления DNS вы выбрали, вам нужно обратиться к провайдеру или хостеру, тому кто выдал вам IP-адрес, и попросить создать обратную запись (PTR) с именем вашего хоста, пример такой записи для нашего случая:

25.113.0.203 IN PTR mk-52.it-31.ru.

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

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

Для установки Mail-in-a-Box потребуется Ubuntu 22.04 LTS, другие операционные системы не поддерживаются. Также важно использовать для этого чистую минимальную установку, так как установщик будет настраивать систему по собственному усмотрению, в т.ч. и удаляя ненужные, на его взгляд, пакеты, например, apache.

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

Linux - начинающим. Установка и первоначальная настройка Ubuntu 22.04 LTS для сервера

В процессе предварительной подготовки нам нужно задать правильное имя сервера, используя для этого FQDN:

hostnamectl set-hostname mk-52.it-31.ru

Затем откроем файл /etc/hosts и приведем записи в нем к виду:

127.0.0.1 localhost
127.0.1.1 mk-52.it-31.ru mk-52

И правильно настроим часовой пояс:

timedatectl set-timezone Europe/Moscow

Получить список доступных поясов можно командой:

timedatectl list-timezones

На этом подготовка сервера закончена.

Установка Mail-in-a-Box

Все указанные ниже команды должны выполняться от имени суперпользователя root, поэтому сразу повысим права:

sudo -s

Скачаем и сразу запустим скрипт установки:

curl -s https://mailinabox.email/setup.sh | bash

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

Mail-in-a-Box-install-ubuntu-2204-001.pngЗатем имя хоста, штатно рекомендуется использовать box, но мы же не инкубаторские, поэтому вводим собственное имя в формате FQDN.

Mail-in-a-Box-install-ubuntu-2204-002.pngЗатем можно откинуться на спинку стула и расслабится пока скрипт осуществляет установку и настройку пакетов. По окончании установки вам будет предложено создать первый почтовый ящик, он же будет почтой и логином администратора. Если вы укажете здесь значение отличное от того, что вы ввели на первом шаге, то указанное в самом начале значение будет добавлено к первому ящику как алиас.

Mail-in-a-Box-install-ubuntu-2204-003.pngНа этом установка Mail-in-a-Box закончена.

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

Так как Mail-in-a-Box устанавливает свой DNS-сервер, точнее сразу два: NSD для управления зоной и BIND для внутренних целей, то после этого в системе может нарушиться разрешение адресов, и вы получите ошибку скачивания пакетов.

Mail-in-a-Box-install-ubuntu-2204-004.pngВ этом случае откройте файл /etc/bind/named.conf.options и добавьте в него опцию:

forwarders { 8.8.8.8; };

Перезапустите BIND:

systemctl restart named

И повторите установку командой:

mailinabox

После завершения установки приведите конфигурацию BIND к исходному виду и еще раз перезапустите сервис.

Начало работы. Административная часть

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

Для начала перейдите в System - Status Checks и проверьте статус установки. Особое внимание обратите на ошибки и предупреждения. Как мы уже говорили, у разработчиков свои понятия о правильном, поэтому не все указанные там ошибки являются таковыми, но все равно внимательно изучите список и постарайтесь устранить их по максимуму.

Mail-in-a-Box-install-ubuntu-2204-005.pngЕсли вы выбрали размещение зоны прямо на почтовом сервере, то для добавления записей в зону можно использовать раздел System - Custom DNS, но возможности там самые примитивные. Отсюда же можно попасть в систему мониторинга, для этих целей здесь используется Munin. Более подробно о работе с этой системой мониторинга можно прочитать в нашей статье:

Устанавливаем и настраиваем систему мониторинга Munin

Mail-in-a-Box-install-ubuntu-2204-006.pngТакже автоматически настроено резервное копирование, управление им доступно в разделе System - Backup Status. По умолчанию копии делаются локально, но вы можете настроить копирование на внешние узлы через rsync, в S3 хранилища или использовать Backblaze B2.

Mail-in-a-Box-install-ubuntu-2204-007.pngВ целом набор возможностей впечатляет, перед нами действительно современная и продвинутая почтовая система сразу из коробки. Также сразу же настроено автоматическое обновление системы, об этом беспокоиться тоже не надо.

Следующий раздел Mail & Users состоит из трех разделов, первый Instructions - чисто информационный, содержит настройки подключения к серверу. Единственный момент, вместо предлагаемого для подключения клиентов порта 465 следует использовать 587, порт 465 давно признан устаревшим и исключен из спецификаций. Возможность работы почтовых клиентов через 25 порт заблокирована.

Два оставшихся раздела Users и Aliaces позволяют заводить почтовые ящики пользователей и алиасы к ним. Тут все достаточно просто, но приятным дополнением оказывается наличие API, краткая документация к которому доступна прямо в этом разделе, что открывает широкие возможности по автоматизации.

Mail-in-a-Box-install-ubuntu-2204-008.pngРаздел Contacts/Calendar содержит исключительно ссылки на веб-доступ к контактам и календарю.

Настройка DKIM-записи

Если вы используете внешние DNS, то вам потребуется добавить открытый ключ для проверки подлинности отправителя почты - DKIM, для этого перейдите в раздел System - External DNS и найдите в нем DKIM-запись.

Mail-in-a-Box-install-ubuntu-2204-009.pngЕе содержимое следует перенести на ваш DNS-хостинг.

Настройка дополнительных функций

Как мы уже говорили, Mail-in-a-Box - весьма современный и продвинутый сервер, предоставляющий массу возможностей, одна из них - автообнаружение настроек почтовыми клиентами. Или MTA-STS (Mail Transfer Agent-Strict Transport Security) - тонкая настройка политик использования TLS при почтовом обмене.

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

Начать следует с раздела System - External DNS, где перечислены все примеры нужных записей, просто переносим их копированием на свой DNS-сервер. Рядом с каждой записью присутствует краткое описание.

Mail-in-a-Box-install-ubuntu-2204-010.pngПосле того, как добавленные записи заработают, в частности это касается А-записей для служебных поддоменов, переходим в System - TLS (SSL) Certificates и получаем для них сертификаты.

Mail-in-a-Box-install-ubuntu-2204-011.pngКак видим - ничего сложного, если вы выбрали полностью автономный вариант системы, то все это будет работать у вас из коробки.

Начало работы. Пользовательская часть

В качестве веб-клиента в Mail-in-a-Box используется Roundcube, а календарь и адресная книга используются от Nextcloud. Для того, чтобы попасть в веб-почту просто наберите в адресной строке https://имя_сервера/mail. Сразу же стоит перейти в настройки почтового ящика и установить в качестве адресной книги по умолчанию ownCloud, в противном случае Roundcube будет использовать собственную книгу, которая не будет синхронизироваться между клиентами.

Mail-in-a-Box-install-ubuntu-2204-012.pngЗатем проверьте оправку почты, начните с локальной, потом на внешние сервера. Не ленитесь заполнять все поля и прикреплять вложения, если там есть какие-то проблемы, то лучше узнать о них сейчас, а не от пользователей.

Mail-in-a-Box-install-ubuntu-2204-013.pngНа принимающей стороне убедитесь, что письмо проходит проверку подлинности отправителя, имеет подпись и используются защищенные каналы связи.

Mail-in-a-Box-install-ubuntu-2204-014.pngКалендарь и контакты стандартные от Nextcloud, но это отдельный веб-интерфейс с отдельной аутентификацией:

Mail-in-a-Box-install-ubuntu-2204-015.pngЕсли вы хотите обмениваться событиями и приглашать коллег - добавьте в настройках свой адрес электронной почты. А внизу, в Calendar Settings вы можете скопировать ссылку для подключения календаря и адресной книги на почтовом клиенте если вы не стали настраивать автообнаружение, либо оно по какой-то причине не работает. Структура ссылки там всегда такая: https://имя_сервера/cloud/remote.php/dav.

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

Mail-in-a-Box-install-ubuntu-2204-016.pngПодводя итоги, можно сказать, что Mail-in-a-Box - интересный, хотя и достаточно неоднозначный продукт. С одной стороны он позволяет быстро развернуть современную почтовую систему с массой возможностей, с другой - какая-либо гибкость настроек отсутствует и вам придется соглашаться с тем, каким видят почтовый сервер разработчики продукта. Но в любом случае данная сборка заслуживает внимания, особенно если вы не чувствуете себя готовым глубоко погружаться в работу электронной почты.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments