Продолжая рассматривать решения для собственной почты, нельзя обойти вниманием еще один 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
Первым делом вас попросят указать почтовый ящик для управления вашим сервером. вводим желаемое значение.
Затем имя хоста, штатно рекомендуется использовать box, но мы же не инкубаторские, поэтому вводим собственное имя в формате FQDN.
Затем можно откинуться на спинку стула и расслабится пока скрипт осуществляет установку и настройку пакетов. По окончании установки вам будет предложено создать первый почтовый ящик, он же будет почтой и логином администратора. Если вы укажете здесь значение отличное от того, что вы ввели на первом шаге, то указанное в самом начале значение будет добавлено к первому ящику как алиас.
На этом установка Mail-in-a-Box закончена.
Возможные проблемы при установке
Так как Mail-in-a-Box устанавливает свой DNS-сервер, точнее сразу два: NSD для управления зоной и BIND для внутренних целей, то после этого в системе может нарушиться разрешение адресов, и вы получите ошибку скачивания пакетов.
В этом случае откройте файл /etc/bind/named.conf.options и добавьте в него опцию:
forwarders { 8.8.8.8; };
Перезапустите BIND:
systemctl restart named
И повторите установку командой:
mailinabox
После завершения установки приведите конфигурацию 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 - интересный, хотя и достаточно неоднозначный продукт. С одной стороны он позволяет быстро развернуть современную почтовую систему с массой возможностей, с другой - какая-либо гибкость настроек отсутствует и вам придется соглашаться с тем, каким видят почтовый сервер разработчики продукта. Но в любом случае данная сборка заслуживает внимания, особенно если вы не чувствуете себя готовым глубоко погружаться в работу электронной почты.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии