Установка и настройка почтового сервера Modoboa в Debian или Ubuntu

  • Автор:

modoboa-install-debian-ubuntu-000.pngПродолжая тему собственной почты, мы рассмотрим еще один почтовый сервер, точнее сборку на основе привычных Open Source программ - Modoboa. Под капотом у нее всё та же связка из Postfix и Dovecot плюс стандартный обвес из антивируса, антиспама и прочих утилит. Почему снова сборка? Потому что создание полноценного почтового сервера вручную - процесс долгий и достаточно сложный и вряд-ли начинающий администратор сможет сразу это сделать без ошибок. В то время как сборка дает гарантированно рабочий результат, а при необходимости вы всегда можете углубиться в настройки.

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

Доменные имена и DNS-зона

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

Итак:

  • it-31.ru - используемый домен
  • mk-52 - почтовый сервер, полное доменное имя (FQDN) mk-52.it-31.ru
  • email - псевдоним для более удобного обращения к почте, в данном случае мы выбрали email, так как mail уже используеся нами для другого сервера.
  • 203.0.113.25 - IP-адрес почтового сервера

Итак, нам потребуется следующий базовый набор записей:

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

Обратите внимание, что в качестве MX-записи мы используем реальное имя сервера, а не IP-адрес и не запись псевдонима.

Также сразу добавим SPF и DMARС-записи:

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

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

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

Затем просим провайдера или хостера, предоставившего нам выделенный IP-адрес добавить в обратную зону PTR-запись:

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

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

Перед тем, как приступать к дальнейшим настройкам следует убедиться, что работают как минимум A и MX-записи.

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

Так как мы работаем с системами на базе Debian, то для установки выбрали актуальный на текущий момент Debian 11, но вы можете использовать также Debian 10 или Ubuntu начиная с версии 18.04 LTS. Установку следует производить в чистую систему, поэтому следует выполнить минимальную установку Debian или заказать сервер в минимальной конфигурации. Для этого можете воспользоваться нашими руководствами:

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

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

timedatectl set-timezone Europe/Moscow

Получить список зон можно командой:

timedatectl list-timezones

Теперь установим имя хоста:

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

Важно - в данной команде следует указать полное имя сервера - FQDN.

Затем установим СУБД и необходимые зависимости:

apt install git postgresql

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

Установка и базовая настройка Modoboa

Перейдем в домашнюю директорию с клонируем git-репозиторий со скриптами установки.

cd ~
git clone https://github.com/modoboa/modoboa-installer

Теперь перейдем в директорию со скриптами и создадим файл настроек для будущей установки:

cd modoboa-installer
python3 ./run.py --stop-after-configfile-check it-31.ru

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

Теперь откроем файл installer.cfg и отредактируем в нем некоторые секции.

Начнем с имени сервера, по умолчанию предполагается mail, если вы планируете использовать другое имя, то измените его в следующей секции:

[general]
hostname = email.%(domain)s

В нашем случае имя сервера будет email.

По умолчанию предполагается использование самоподписанного сертификата, поэтому сразу переключаем на получение через Let's Encrypt. Для успешного выполнения данной операции у вас должна существовать A или CNAME запись для выбранного имени сервера. Крайне желательно сделать ее заранее, чтобы изменения успели распространиться по системе DNS.

[certificate]
generate = true
type = letsencrypt

[letsencrypt]
email = admin@it-31.ru

В секции letsencrypt указываем существующий почтовый ящик (либо обязательно создайте его позднее), так как на него будут отправляться уведомления при возникновении проблем с сертификатом.

Также проверяем следующую секцию и убеждаемся, что выбрана СУБД PostgrSQL:

[database]
engine = postgres
host = 127.0.0.1
install = true

Сохраняем изменения и переходим к установке.

 python3 ./run.py  it-31.ru

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

modoboa-install-debian-ubuntu-001.pngПо окончании установки скрипт укажет нам адрес административной панели и учетные данные для входа: admin:password.

Но не будем спешить, а выполним настройку ClamAV для возможности скачивать обновления антивирусных баз, так как официальные сервера не доступны из РФ. Откройте файл /etc/clamav/freshclam.conf и закомментируйте в нем все строки начинающиеся на DatabaseMirror, а затем добавьте ниже строку:

DatabaseMirror https://pivotal-clamav-mirror.s3.amazonaws.com

После чего следует удалить файл freshclam.dat и перезапустить службу:

rm -f /var/lib/clamav/freshclam.dat
systemctl restart clamav-freshclam

На этом установка и начальная настройка сервера закончена.

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

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

modoboa-install-debian-ubuntu-002.pngПри желании можете переключиться на новый административный интерфейс v2.

modoboa-install-debian-ubuntu-003.pngНо что вам потребуется сделать первым делом - это сменить пароль администратора с password на что-либо сложное и надежное.

modoboa-install-debian-ubuntu-004.pngТеперь пробежимся по настройкам сервера, для этого перейдите в раздел Modoboa, настройки собраны по группам, что делает работу с ними более удобной. Настроек достаточно много, все они кратко прокомментированы, но начать придется с изменения пароля по умолчанию, потому что он не соответствует требованиям по уровню сложности и пока вы его не измените никакие другие настройки сохранить не получится.

modoboa-install-debian-ubuntu-005.pngСледующим шагом будет создание почтового домена в разделе Домены, по умолчанию домен не создается. На страничке создания домена можно сразу задать квоты и лимиты, по умолчанию они не устанавливаются. Также обязательно установите флаг Enable DKIM signing и укажите селектор и длину ключа. Если это единственный сервер, то селектор можно оставить по умолчанию, если же серверов в домене несколько, то у каждого должен быть свой уникальный селектор ключа.

modoboa-install-debian-ubuntu-006.pngСледующим шагом вам будет предложено создать администратора домена, который будет иметь возможность создавать почтовые ящики и алиасы в своем домене, но не будет иметь доступа к настройкам сервера.

modoboa-install-debian-ubuntu-007.pngСразу же после этого перейдите в раздел Пользователи, откройте настройки созданного администратора и на вкладке Ресурсы укажите количество доступных ему для создания ящиков и алиасов, для отключения лимитов установите значение как -1.

modoboa-install-debian-ubuntu-008.pngПанель администратора домена отличается отсутствием настроек сервера и разделом домены только на чтение (виден только собственный домен), фактически все управление сводится к разделу Пользователи. Также добавились ссылки на веб-почту, календари и контакты. Создадим нового пользователя, это несложно, достаточно просто указать адрес ящика.

modoboa-install-debian-ubuntu-010.pngКак видим, админка достаточно проста и удобна. Каких-либо сложностей в ее освоении возникнуть не должно.

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

Откройте раздел Домены и перейдите к нужному домену и в информации о нем в строке DKIM key нажмите Show key.

modoboa-install-debian-ubuntu-011.pngВ открывшемся окне появится собственно ключ и готовая запись для Bind.

modoboa-install-debian-ubuntu-012.png

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

modoboa._domainkey TXT "v=DKIM1;k=rsa;p=MIIBIjANBgk...iJPQIDAQAB"

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

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

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

modoboa-install-debian-ubuntu-013.pngВ русскоязычном интерфейсе глаз сразу цепляется за кнопку отправки, на которой написано Послать. По сути, верно, но в русском языке данное слово имеет ряд не совсем приличных смыслов.

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

modoboa-install-debian-ubuntu-014.pngНу да невелика беда, все равно вряд ли вы будете пользоваться веб-интерфейсом. Остальные разделы также просты, даже примитивны, присутствуют только самые базовые функции. Поэтому просто проверяем отправку внешним получателям.

modoboa-install-debian-ubuntu-015.pngРеальную работу с почтой лучше всего производить с помощью почтового клиента, подключение стандартное, через iMAP, однако ни календари. ни адресная книга автоматически не находятся и не подключаются.

modoboa-install-debian-ubuntu-016.pngНо их можно подключить вручную, для этого идем в раздел с календарем и получаем ссылку на него.

modoboa-install-debian-ubuntu-017.pngТоже самое делаем и для адресной книги, но для нее также потребуется разрешить синхронизацию в настройках учетной записи. После чего можем полноценно работать с нашим сервером через почтовый клиент.

modoboa-install-debian-ubuntu-018.pngВ целом Modoboa, если не считать примитивный и практически непригодный к использованию веб-интерфейс, позволяет очень быстро и просто развернуть почтовый сервер, который уже через 10 минут будет готов к работе. Если вы предпочитаете использовать почтовые клиенты и хотите при этом иметь полноценную админку, то к нему однозначно стоит присмотреться.

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

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

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

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



Loading Comments