Продолжая тему собственной почты, мы рассмотрим еще один почтовый сервер, точнее сборку на основе привычных 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-записей для выбранного имени, уведомит о наборе устанавливаемого ПО и попросит подтвердить установку. После чего, в старых добрых традициях предложит вам сходить выпить кофе, так как процесс этот небыстрый.
По окончании установки скрипт укажет нам адрес административной панели и учетные данные для входа: 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.
В общем случае DNS запись должна выглядеть следующим образом:
modoboa._domainkey TXT "v=DKIM1;k=rsa;p=MIIBIjANBgk...iJPQIDAQAB"
Это позволит серверам-получателям проверить подлинность отправителя и существенно повысит вероятность успешной доставки почты адресату.
Начало работы. Пользовательская часть
Начнем с веб-интерфейса, у Modoboa он свой и на первый взгляд закрывает все основные задачи: почта, адресная книга, календарь. Но сделан он откровенно неудобно, беден функционально и работает достаточно медленно. В общем пользоваться им можно только от безысходности. Но он есть и работает, для проверки сервера сгодится, которую мы начинаем с внутренней отправки.
В русскоязычном интерфейсе глаз сразу цепляется за кнопку отправки, на которой написано Послать. По сути, верно, но в русском языке данное слово имеет ряд не совсем приличных смыслов.
Если между своими ящиками почта бегает, то пробуем отправить почту внешним получателям. Здесь мы столкнулись с багом веб-интерфейса - невозможно прикрепить вложение, колесико крутится вечно и ничего не происходит.
Ну да невелика беда, все равно вряд ли вы будете пользоваться веб-интерфейсом. Остальные разделы также просты, даже примитивны, присутствуют только самые базовые функции. Поэтому просто проверяем отправку внешним получателям.
Реальную работу с почтой лучше всего производить с помощью почтового клиента, подключение стандартное, через iMAP, однако ни календари. ни адресная книга автоматически не находятся и не подключаются.
Но их можно подключить вручную, для этого идем в раздел с календарем и получаем ссылку на него.
Тоже самое делаем и для адресной книги, но для нее также потребуется разрешить синхронизацию в настройках учетной записи. После чего можем полноценно работать с нашим сервером через почтовый клиент.
В целом Modoboa, если не считать примитивный и практически непригодный к использованию веб-интерфейс, позволяет очень быстро и просто развернуть почтовый сервер, который уже через 10 минут будет готов к работе. Если вы предпочитаете использовать почтовые клиенты и хотите при этом иметь полноценную админку, то к нему однозначно стоит присмотреться.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии