Docker 5.1 Почтовый сервер на Docker Mailserver - настройка домена
В этом посте, я расскажу как настроить домен для собственного почтового сервера.
Дополнительные материалы
Для скачивания материалов необходимо войти или зарегистрироваться
Файлы также можно получить в Telegram-боте по коду: 284512
Реклама
В посте "Django 12. Настройка отправки почты", я описывал как в Django можно настроить отправку почты используя обычный почтовый ящик и упоминал про возможность отправлять почту от имени домена используя специальные сервисы.
Поскольку меня не устраивали эти варианты, я начал изучать вопрос поднятия своего сервера для отправки/получения почты.
Решений нашлось не мало, от сборки своего сервера с нужными компонентами, до готовых комбайнов.
Сборка своего, даже из готовых компонентов, достаточно нетривиальная задача, требующая массу времени и знаний в этой области, оставим это Dev-ops инженерам и администраторам.
Выбор пал на готовые решения, но и тут не всё так просто. Есть масса вариантов, от совсем простеньких, до комбайнов, включающих в себя массу модулей и возможностей. Тут уже стоит исходить из потребностей, требуемых возможностей и, что немаловажно из системных требований решения. Поскольку в ресурсах я ограничен двумя Гигабайтами оперативной памяти на моём сервере, я выбрал в качестве почтового сервера - Docker Mailserver
.
Окружение.
Действия в данном посте подразумевают, что у вас имеется домен и доступ к управлению DNS-записями.
В следующем посте понадобится VPS-сервер и действующий SSL-сертификат.
Могу порекомендовать два хостинга:
- HSHP - достаточно дешевые сервера в Германии, отлично подойдут для тестов или, например, настроить собственный VPN.
- TimeWeb Cloud - наверное, самый надёжный хостинг из всех, что я пробовал. Также тут удобно приобретать или подключать свои домены.
(Ссылки реферальные - вам не сложно, а мне приятно, спасибо.)
Используемый сервер:
- CPU: 1x 3.3ГГц
- RAM: 2Гб
- SSD: 20Гб NVMe
- OS: Debian 12
Docker Mailserver.
Docker Mail Server, или DMS, представляет собой готовый к работе полнофункциональный, но простой почтовый сервер.
Ключевые особенности:
- Поддерживает протоколы SMTP, IMAP, POP3 и LDAP.
- Используются только файлы конфигурации, без базы данных SQL.
- Поддержка антиспам фильтра SpamAssassin и антивируса ClamAV.
Настройка домена.
Начнём с подготовки домена для правильной работы с почтой.
Нам необходимо добавить шесть записей к домену, а именно: MX
, A
, PTR
, DKIM
, DMARC
, SPF
.
Вернее пять, поскольку DKIM-запись
будем добавлять на этапе запуска сервера.
Для почты будем использовать поддомен mail.<имя_домена>. В моём случае это - mail.pressanybutton.ru, он же будет далее по тексту.
Необходимо его создать.
Все примеры будут на основе панели управления хостинга TimeWeb
PTR.
PTR (Pointer) - обратная запись ресурсов DNS. Она связывает IP-адрес с доменным именем, позволяя определить, какому домену принадлежит IP-адрес отправителя электронной почты.
Чаще всего данную запись нельзя установить из панели управления. Если такая возможность отсутствует у вашего хостинг-провайдера, то для установки вам необходимо обратиться в службу поддержки.
Установка на TimeWeb:
Открываем страницу "Облачные серверы" и выбираем vps, на котором будет располагаться почтовый сервер.
Выбираем вкладку "Сеть".
Там внизу находим IP-адрес сервера и нажимаем на шестерёнку. На открывшейся странице указываем доменное имя для почты.
MX.
MX (Mail eXchanger) - это записи ресурсов DNS, которые определяют серверы, принимающие почту для конкретного домена. MX-запись содержит приоритет и доменное имя сервера, который будет использоваться для обработки почты. Чем меньше числовое значение приоритета, тем выше приоритет сервера.
Установить запись можно в настройках DNS вашего хостинг-провайдера или у регистратора домена.
Запись должна быть вида: 10 mail.pressanybutton.ru
.
Где 10 - это приоритет, а mail.pressanybutton.ru - почтовый домен.
Установка на TimeWeb(если домен приобретён или делегирован на сервера TimeWeb):
Открываем раздел "Домены". Выбираем нужный домен и переходим на вкладку DNS.
Если имеются mx-записи, удаляем. Затем нажимаем кнопку "Добавить запись" и выбираем MX.
Выбираем службу "Другое" и прописываем приоритет и почтовый домен.
То же самое делаем для поддомена.
A.
A (Address) - запись ресурсов DNS, которая сопоставляет доменное имя с его IP-адресом. Она используется для определения местоположения сервера, на котором находится сайт или почтовый сервер.
Также прописываем и для поддомена.
Установка такая же как и для предыдущего пункта.
Отличия лишь в том, что мы выбираем вместо mx-записи - a-запись. В значении указываем IP-адрес сервера.
Для поддомена в TimeWeb, А-запись не создаём, запись будет создана автоматически.
DMARC.
DMARC (Domain-based Message Authentication, Reporting and Conformance) - стандарт, который позволяет доменам определять политики обработки сообщений, отправленных с поддельных адресов электронной почты. DMARC включает в себя три компонента: аутентификацию, отчетность и соответствие.
Необходимо создать TXT-запись.
Хост: _dmarc.pressanybutton.ru
Значение: v=DMARC1; p=quarantine; sp=quarantine; fo=0; adkim=r; aspf=r; pct=100; rf=afrf; ri=86400; rua=mailto:dmarc.report@example.com; ruf=mailto:dmarc.report@example.com
Изменить адреса почты на ваши.
Установка на TimeWeb:
В том же разделе, что и ранее выбираем "Добавить запись" - "TXT".
В пункте "Хост" выбираем "Ввести вручную" и вводим _dmarc
Значение вводим такое же, что указано выше.
SPF.
SPF (Sender Policy Framework) - механизм, который помогает определить, является ли домен, указанный в поле “от”, авторизованным для отправки электронной почты от имени этого домена. SPF-запись в DNS содержит список серверов, которые авторизованы для отправки почты от имени домена.
Необходимо отредактировать имеющуюся TXT-запись с spf-записью или добавить новую TXT-запись.
Если TXT-записи с spf нет:
Хостом выбираем основной домен pressanybutton.ru
.
В поле значение вводим: v=spf1 mx ~all
Если TXT-запись с spf есть:
Смотрим, что записано в поле значение, если там нет mx
, добавляем через пробел после v=spf1
, также если там нет ~all
, то добавляем через пробел в самый конец.
У меня имелась запись: v=spf1 include:_spf.timeweb.ru ~all
Новая стала выглядеть так: v=spf1 mx include:_spf.timeweb.ru ~all
Установка на TimeWeb:
Так же как и в предыдущем пункте, только выбираем хостом основной домен и всё.
На этом подготовка домена закончена. В следующем посте будем запускать и настраивать сервер.
Все статьи