Частина 14. Налаштування DNS для роботи поштового сервера. SPF, DKIM, DMARC
- Деталі
- Категорія: Поштовий сервер
- Опубліковано: Понеділок, 09 вересня 2019, 14:01
- Автор: Super User
- Перегляди: 4277
Для коректної роботи поштового сервера треба правильно налаштувати DNS.
В описі нашої доменної зони треба, як мінімум, зробити MX-записи. Також бажано прописати зворотню зону, SPF, DKIM та DMARC
Основні налаштування DNS
Для того, щоб інші сервера знали, що саме наш сервер приймає пошту для нашого домену, в описі зони треба зробити наступні налаштування:
- Зробити A-запис для нашого сервера (пряма зона)
- Зробити MX-запис з вказанням приорітету та нашим доменним іменем
- Надіслати заявку провайдеру, хостеру, чи іншій організації яка надала нам IP-адресу, з проханням прописати зворотню зону (PTR-запис) для нашої 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
Після створення записів 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"
В електронному вигляді