Коротко
SPF (Sender Policy Framework) — це список серверів, яким дозволено надсилати пошту від імені вашого домену. Список публікується як TXT-запис у DNS, а приймальний сервер під час доставки звіряється з ним: «лист прийшов з цієї адреси — вона тут є?»
Як виглядає запис
v=spf1 include:_spf.google.com include:spf.protection.outlook.com ~all
Читається зліва направо:
v=spf1— версія, з якої починається будь-який запис SPF.include:— «сервери цього сервісу теж мої». Найпоширеніший механізм: сервіси самі підтримують свої списки адрес.ip4:/ip6:— конкретна адреса або підмережа, якщо ви надсилаєте пошту з власного сервера.~allабо-all— що робити з усім, що не потрапило у список.
Останній елемент важливий:
| Кваліфікатор | Значення | Коли використовувати |
|---|---|---|
~all |
Softfail — «швидше за все чуже, але пропустіть» | Поки ви ще не впевнені, що перелічили всіх відправників |
-all |
Fail — «чуже, відхиляйте» | Коли список повний і перевірений |
+all |
Дозволити всім | Ніколи. Це скасовує сенс SPF |
Два правила, на яких спотикаються найчастіше
Одна запис на домен. Дві окремі записи v=spf1 — гарантований збій перевірки, незалежно від їхнього вмісту. Новий сервіс додається як ще один include: до наявної записи, а не окремим рядком у DNS.
Не більше 10 DNS-запитів. Кожен include:, a, mx і redirect витрачає щонайменше один запит, а вкладені include: витрачають свої. Пошта плюс CRM плюс хелпдеск плюс сервіс розсилок — і ліміт вичерпано. За перевищення перевірка повертає permerror, і SPF перестає працювати повністю: навіть ті сервери, які ви перелічили явно, більше не вважаються дозволеними.
Порахувати запити й зібрати коректну запис допоможе генератор SPF.
Чого SPF не вміє
Три обмеження, через які SPF сам собою не захищає домен:
SPF перевіряє технічний адрес, а не той, який бачить людина. Перевіряється домен зі зворотного шляху (
Return-Path), а в поштовому клієнті видно полеFrom:. Це різні речі, і зловмисник може мати бездоганний SPF за власним доменом, показуючи уFrom:ваш. Закриває цей розрив тільки узгодження DMARC.SPF ламається при пересиланні. Якщо одержувач налаштував пересилання, лист надсилає вже сервер посередника — його адреси у вашому списку немає, і перевірка провалюється. Це нормальна поведінка протоколу. Саме тому в парі з SPF потрібен DKIM, підпис якого пересилання переживає.
SPF нічого не каже про те, що робити з листом. Він лише повертає результат. Інструкцію для приймального сервера задає DMARC.
Порядок дій
- Складіть список усіх сервісів, які надсилають пошту від вашого імені.
- Зберіть з них один запис SPF, тримаючись у межах десяти запитів.
- Поки не впевнені у повноті списку, залиште
~all. - Коли звіти DMARC підтвердять, що легітимних джерел поза списком немає, переходьте на
-all.
Подивитися поточний запис SPF свого домену можна безкоштовною перевіркою.