Частина 14. Налаштування DNS для роботи поштового сервера. SPF, DKIM, DMARC

Налаштування поштового сервера на базі Postfix, Dovecot та RoundCube. Зміст



Для коректної роботи поштового сервера треба правильно налаштувати DNS.
В описі нашої доменної зони треба, як мінімум, зробити MX-записи. Також бажано прописати зворотню зону, SPF, DKIM та DMARC

Основні налаштування DNS

Для того, щоб інші сервера знали, що саме наш сервер приймає пошту для нашого домену, в описі зони треба зробити наступні налаштування:
  • - Зробити A-запис для нашого сервера (пряма зона)
  • - Зробити MX-запис з вказанням приорітету та нашим доменним іменем
  • - Надіслати заявку провайдеру, хостеру, чи іншій організації яка надала нам IP-адресу, з проханням прописати зворотню зону (запис) для нашої IP-адреси з нашим іменем з прямої зони

Налаштування SPF

SPF запис — це запис в DNS, в якому вказується, які саме сервера мають право відправляти пошту від імені даного домену.
SPF — це TXT запис, який знаходиться в налаштуваннях DNS зони. Наприклад:
"v = spf1 +a + mx +a:mail.study.local ~all"

Пояснення вмісту запису:
  • + дозволено
  • - заборонено
  • ~ можна, але не бажано
  • v = spf1 використовуємо запис версії 1
  • +a можна відправляти пошту з А запису (тобто з основної адреси домену)
  • +mx можна відправляти пошту з серверів, для яких прописані MX (тобто поштові сервери даного домену)
  • +a:mail.study.local можна відправляти пошту з хоста mail.study.local (можна вказувати хост не з цього домену)
  • ~all від інших пошту приймати можна, але довіри система виставить менше.


Налаштування DKIM

DKIM — це цифровий підпис, який поштовий сервер вставляє в кожен лист на підставі закритого ключа openpgp. Відкритий ключ зберігається в DNS і сервер одержувача перевіряє валідність відправника на підставі відкритого ключа і цифрового підпису.


Налаштування DKIM на сервері Postfix

Встановимо необхідні програми: # apt install opendkim opendkim-tools
Далі створюємо теку /etc/mail і переходимо в неї. Там ми генеруємо ключі командою
opendkim-genkey -t -s mail -d study.local
де
mail — це так званий селектор ключа (ім'я) береться довільно
study.local — домен для якого створюємо пару ключів
В результаті команди в теці /etc/mail з'являться два файли mail.txt і mail.private — це і є ключі.

Далі редагуємо файл /etc/default/opendkim
Вписуємо в нього рядок:
SOCKET="inet:8891@localhost"
тут ми вказуємо, де буде слухати з'єднання OpenDKIM.
Файл /etc/opendkim.conf приводимо до вигляду:

Syslog yes
UMask 002
Domain study.local # ім'я домену який буде верифікуватися
KeyFile /etc/mail/mail.private
Selector mail #селектор заданий при генерації ключа
AutoRestart yes
Background yes
Canonicalization relaxed/relaxed
DNSTimeout 5
Mode sv
SignatureAlgorithm rsa-sha256
SubDomains no
X-Header no
OversignHeaders From
Statistics /var/log/dkim-filter/dkim-stats #файл логу dkim

Додаємо рядки в кінець файлу /etc/postfix/main.cf:
# DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891 # рядок має співпадати з рядком /etc/default/opendkim
non_smtpd_milters = inet:localhost:8891 # рядок має співпадати з рядком /etc/default/opendkim

Налаштування DKIM в DNS

В DNS для нашого домену додаємо новий запис типу TXT та іменем — mail._domainkey. Значення цього запису — це вміст файлу /etc/mail/mail.txt, тобто відкритий ключ для нашого домену.
Для файлу опису зони bind9, наприклад, цей рядок буде виглядати так:
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; t=y; " " p=MIGfMA5GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhL5g8W+AVPOgiiZyPdayinqMwCasbDh06K9Ixy5D575iYWQZYMGyzlDlUIJLqLDBBCFxRRs36tb4p/EY0OkmyHNisK/Y4cB/joVnQmK/7XVwkQt1GVNuzodRjcQPXGFx5VEaQi7+O54gEF2eOEyGt/FPWG882AFAFpkrJekuiawIDAQAB" )

Тепер треба перезапустити Postfix і через деякий час, коли оновляться DNS-записи, листи від нашого сервера можна буде перевіряти через DKIM.

Налаштування DMARC

s Після створення записів SPF і DKIM необхідно налаштувати перевірку DMARC, додавши в записи DNS домену правила у вигляді TXT-запису.
DMARC задає політику, як перевіряти пошту в домені і що робити, якщо лист не проходить перевірку SPF або DKIM.
Базовий запис DMARC виглядає так:
_dmarc.study.local IN TXT "v = DMARC1; p =;"
p -— policy -— політика, може бути:
  • none -— не приймати ніяких особливих дій, все на розсуд поштового сервера;
  • quarantine -— відправити в спам;
  • reject -— не приймати лист.
Але таке налаштування підходить тільки в разі одиничного сервера. Більш правильна політика, яка враховує наявність піддоменів з яких може слатися пошта і дозволяє отримувати звіти, виглядає так:

_dmarc. study.local IN TXT "v=DMARC1; p=none; sp=none; rua=mailto:postmaster@study.local "

sp — subdomain policy — може приймати значення ті ж що і policy;
rua — reporting URI for aggregate reports — задає поштову адресу в форматі mailto:mbox@ study.local на який раз на добу будуть приходити звіти в XML.

Налаштування поштового сервера на базі Postfix, Dovecot та RoundCube. Зміст

Возврат к списку