0

modoboa

Modoboa почтовый сервер

Связка из Postfix и Dovecot плюс стандартный обвес из антивируса, антиспама и прочих утилит.

Доменные имена и 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 Europa/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-записей для выбранного имени, уведомит о наборе устанавливаемого ПО и попросит подтвердить установку. После чего, в старых добрых традициях предложит вам сходить выпить кофе, так как процесс этот небыстрый.

По окончании установки скрипт укажет нам адрес административной панели и учетные данные для входа: 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

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

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

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

При желании можете переключиться на новый административный интерфейс v2.

Но что вам потребуется сделать первым делом – это сменить пароль администратора с password на что-либо сложное и надежное.

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

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

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

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

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

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

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

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

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

modoboa-install-debian-ubuntu-012.png

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

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

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

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

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

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

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

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

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

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

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

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

Облачная платформа

Свежие комментарии

Подписка

Лучшие статьи

Рубрики

Популярное

Keycloak
Previous Story

Установка Keycloak и PostgeSQL в Linux

asterisk
Next Story

Asterisk в контейнере Docker

Latest from Blog

How to set up WireGuard Client on Debian?

WireGuard is an extremely simple yet fast and modern VPN. Setting up the WireGuard VPN client on Debian is straightforward. In this tutorial, we will set up WireGuard VPN client on Debian

Перенос БД из MariaDB/MySQL в PostgreSQL с помощью pgLoader

Краткая инструкция об очень интересном и полезном инструменте pgLoader, который позволяет легко мигрировать базу данных MariaDB или MySQL в PostgreSQL. Для начала нам понадобится развернуть небольшой стенд, к примеру, на Debian GNU/Linux,
Go toTop