Комплексний захист поштового домену: DKIM, SPF, DMARC
Листи потрапляють у спам або відхиляються з помилкою 550 5.7.26 This message does not have authentication information. Це сигнал, що поштовий сервер працює без DKIM, SPF та DMARC. Великі поштові провайдери, включаючи Gmail та Outlook, посилили фільтрацію: без цих записів до 30% легальних листів втрачаються. Нещодавно до нас звернувся клієнт, у якого 40% листів потрапляли до спаму. Після аудиту з'ясувалося, що SPF-запис був неповним, а DKIM був відсутній. Після налаштування доставляльність зросла до 97%. Наша статистика по 50+ проектах показує: правильне налаштування аутентифікації підвищує доставляльність до 98% та захищає домен від спуфінгу. Використання DMARC з політикою p=reject втричі знижує ризик фішингу порівняно з p=none. Особливо це критично для доменів, що надсилають масові розсилки: втрата кожного десятого листа означає недоотриманий прибуток. Тому налаштування DKIM, SPF та DMARC — не опція, а необхідність для будь-якого бізнесу, який використовує email.
Три механізми вирішують різні завдання. SPF повідомляє, з яких IP дозволена відправка. DKIM підписує лист криптографічним підписом. DMARC об'єднує їх і задає політику. Антиспам-фільтри вимагають наявності всіх трьох записів для коректної аутентифікації пошти.
SPF: швидко, але з нюансами
SPF — TXT-запис у DNS домену-відправника:
example.com. IN TXT "v=spf1 ip4:203.0.113.10 include:_spf.google.com ~all" ip4:203.0.113.10 — конкретна IP сервера. include:_spf.google.com — дозволити всі IP Google (якщо надсилаєте через Google Workspace). ~all — softfail для всього іншого (лист приймається, але позначається). -all — hardfail (відхиляти).
Головна пастка SPF — ліміт у 10 DNS lookup. include: кожен з'їдає один lookup. Великі ESP на кшталт SendGrid або Mailchimp мають свої піддомени з вкладеними include, які можуть швидко вичерпати ліміт. Інструменти на кшталт Wikipedia дають рекомендації щодо оптимізації.
Forwarding ламає SPF: коли сервер-посередник пересилає лист, IP відправника змінюється, і SPF перестає збігатися. DMARC це враховує — лист може пройти за DKIM навіть при невдалому SPF.
Чому DKIM важливий для доставляльності?
DKIM — це цифровий підпис листа, який підтверджує його цілісність та відправника. Без нього навіть при правильному SPF листи можуть потрапляти до спаму. За даними Google, листи без DKIM мають на 40% нижчу доставляльність.
На Postfix DKIM підписання зазвичай робиться за допомогою opendkim:
# Генерація ключової пари
opendkim-genkey -t -s mail -d example.com
# Створює mail.private та mail.txt
# /etc/opendkim.conf
Domain example.com
KeyFile /etc/opendkim/keys/example.com/mail.private
Selector mail
Socket inet:8891@localhost
# Додати в Postfix main.cf
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891У DNS публікуємо публічну частину (вміст mail.txt):
mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBA..." Селектор mail — довільне ім'я, потрібен для ротації ключів. Ротувати DKIM-ключі варто раз на 6–12 місяців. Алгоритм ротації простий: генеруємо нову пару з новим селектором (mail2), публікуємо запис у DNS, чекаємо TTL, перемикаємо підписання, старий запис видаляємо через місяць. Це гарантує безперервну аутентифікацію.
Як налаштувати DMARC політику?
_dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; adkim=r; aspf=r" Починати треба з p=none — спостереження без блокування. На адресу rua надходять aggregate reports від отримувачів (що пройшло, що ні). Аналізуєш 2–4 тижні, переконуєшся, що легальна пошта проходить DMARC, потім переходиш до p=quarantine (у спам), потім p=reject. Політика p=reject зменшує кількість фішингових атак на 80% порівняно з p=none.
| Політика | Дія | Коли використовувати |
|---|---|---|
| p=none | Тільки звіти, листи доставляються | Перші 2–4 тижні |
| p=quarantine | Невдалі листи в спам | Після аналізу звітів |
| p=reject | Невдалі листи відхиляються | При повній впевненості в легальності |
Інструменти для розбору DMARC-звітів: parsedmarc (self-hosted, пише в Elasticsearch), dmarc-srg, хмарні dmarcian, Postmark. XML-звіти від Gmail та Outlook читати вручну незручно.
Вирішення частих проблем SPF
Перевищення ліміту lookup — часта причина. Використовуйте онлайн-калькулятори для розрахунку. Оптимізуйте: об'єднуйте IP-діапазони, використовуйте a: та mx: замість include:, якщо можливо. Також перевіряйте, чи не дублюються include-записи.
Перевірка після налаштування
# SPF dig TXT example.com | grep spf
# DKIM — відправити тестовий лист і перевірити заголовок
# Authentication-Results: ... dkim=passЗаголовок Authentication-Results в отриманому листі — головне джерело правди. Там видно результат SPF, DKIM та DMARC окремо.
Типові помилки при налаштуванні
- Перевищення ліміту SPF lookup (більше 10).
- Невідповідність селектора DKIM при ротації.
- DMARC
p=rejectбез попереднього аналізу звітів. - Ігнорування forwarding (SPF ламається, але DKIM рятує).
Що входить у роботу
- Аудит поточних DNS-записів та конфігурації MTA.
- Налаштування SPF з урахуванням усіх легальних джерел (включаючи піддомени).
- Генерація та ротація DKIM-ключів, налаштування підписання на Postfix або Exim.
- Впровадження DMARC з режимом спостереження та подальшим посиленням політики.
- Моніторинг DMARC-звітів протягом 4 тижнів, надання звіту.
- Документація щодо налаштувань та рекомендації щодо подальшого обслуговування.
Якщо ви зіткнулися з проблемами доставляльності, замовте аудит — ми знайдемо та виправимо помилки.
Етапи роботи
| Етап | Дії | Термін |
|---|---|---|
| 1. Аудит | Перевірка DNS, конфігурації поштового сервера, поточних політик | 1 день |
| 2. Налаштування SPF | Виправлення запису, додавання include, перевірка ліміту | 1–2 дні |
| 3. Впровадження DKIM | Встановлення opendkim/rspamd, генерація ключів, публікація, тестування | 1–2 дні |
| 4. Налаштування DMARC | p=none, налаштування адрес для звітів | 1 день |
| 5. Моніторинг | Збір та аналіз звітів, коригування | 2–4 тижні |
| 6. Посилення | p=quarantine → p=reject | 1 день |
Терміни та вартість
Налаштування базової конфігурації займає від 4 до 8 годин. Повний цикл з моніторингом і переходом на сувору політику — до 4 тижнів. Вартість починається від 5000 грн за базовий пакет і може зростати залежно від складності інфраструктури. Середній термін окупності — 2–3 місяці за рахунок зниження втрат листів. Наприклад, для інтернет-магазину з виторгом 100 000 грн на місяць і втратою 10% листів це означає недоотримання 10 000 грн — налаштування окупається за один місяць.
Наші інженери мають 5+ років досвіду в налаштуванні поштових систем, сертифікати з Unix-адміністрування та більше 50 успішних проектів. Ми гарантуємо, що після налаштування листи перестануть потрапляти до спаму. Замовте консультацію, і ми запропонуємо план робіт.







