Cat

Docker 5.1 Почтовый сервер на Docker Mailserver - настройка домена

В этом посте, я расскажу как настроить домен для собственного почтового сервера.

Все статьи

Icon Link

Дополнительные материалы

Icon Link

Реклама

Icon Link
Применение Docker proDream 25 Сентябрь 2023 Просмотров: 570

В посте "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:
Так же как и в предыдущем пункте, только выбираем хостом основной домен и всё.

На этом подготовка домена закончена. В следующем посте будем запускать и настраивать сервер.

Автор

    Нет комментариев

    Реклама