Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

blog:кратко_о_sender_policy_framework_spf [2017/01/11 17:04] (текущий)
admin
Строка 1: Строка 1:
 +====== Кратко о Sender Policy Framework (SPF) ======
 +
 +SPF является одним из инструментов для борьбы со спамом и поддельными письмами. Он позволяет получателю проверить - имеет ли право приславший почту хост отправлять почту от имени данного домена.\\
 +Выражение SPF хранится в обычной TXT записи доменной зоны и имеет следующий вид:
 +<​code>"​ver=spf1 <​механизмы>"</​code>​
 +
 +=== Результаты выражения ===
 +
 +|Результат|Описание|Ожидаемое действие|
 +|Pass|Отправитель имеет право отправлять почту|принять|
 +|Fail|Отправитель не имеет прав на отправку почты|отклонить|
 +|SoftFail|Отправитель не имеет прав на отправку почты, но |принять,​ но пометить|
 +|Neutral|Выражение не может составить мнение об отправителе|принять|
 +|None|Домен не содержит SPF запись,​ или она не выдала никакого результата|принять|
 +|PermError|Перманентная ошибка (например неверный синтаксис SPF записи)|неопредлено|
 +|TempError|Временная ошибка|принять или отклонить|
 +
 +=== Префиксы ===
 +
 +''​+''​ - Разрешено\\
 +''​-''​ - Запрещено\\
 +''​~''​ - SoftFail (запрещено,​ но письмо будет принято),​ может использоваться для анти-спама\\
 +''?''​ - Нейтральный результат,​ данная spf запись не может дать свое мнение о конкретном хосте
 +
 +=== Механизмы ===
 +
 +<​code>​all</​code>​
 +Всегда совпадает с запросом,​ обычно располагается в конце правила.
 +<​code>​ip4:<​ip4-network>​
 +ip4:<​ip4-network>/<​prefix-length>​
 +</​code>​
 +Указание конкретного адреса хоста или подсети.
 +<​code>​a
 +a/<​prefix-length>​
 +a:<​domain>​
 +a:<​domain>/<​prefix-length></​code>​
 +Проверяет все A записи на точное совпадение IP отправителя,​ если не указан ''<​prefix-length>''​. При указании префикса поиск будет происходит по всей подсети полученных адресов. Если указан параметр ''<​domain>'',​ то поиск будет производится по указанному домену,​ нежели по домену отправителя.
 +<​code>​mx
 +mx/<​prefix-length>​
 +mx:<​domain>​
 +mx:<​domain>/<​prefix-length></​code>​
 +Та же логика и для ''​mx''​ записей,​ только они проверяются по приоритету который им назначен в зоне DNS. **Проверяется только MX запись с наименьшим весом, остальные MX записи не проверяются.**
 +<​code>​ptr
 +ptr:<​domain></​code>​
 +Сначала идет поиск PTR записи отправителя,​ затем происходит валидация по A записи:​ хотя бы одна из A записей указанных в PTR разрешается в IP адрес отправителя,​ то выражение возвращает ''​Pass''​. ​
 +<​code>​exists:<​domain></​code>​
 +Проверка на существование домена. Если домен существует,​ то результат будет положительным //​независимо//​ от того, в какой адрес он разрешился.
 +<​code>​include:<​domain></​code>​
 +Выдает результат проверки SPF располагающейся на другом домене. Если эта запись не вернет совпадения или ошибки,​ то обработка перейдет к следующему механизму в текущей SPF записи. **Внимание!** Если на указанном домене не существует SPF запись,​ то выражение вернет PermError.
 +
 +=== Примеры ===
 +<​code>"​ver=spf1 mx -all"</​code>​
 +Запретить отправлять почту всем кроме хостов указанных в MX записях.
 +<​code>"​ver=spf1 a mx -all"</​code>​
 +Запретить отправлять почту всем кроме хостов указанных в А и MX записях.
 +<​code>"​ver=spf1 -mx ~all"</​code>​
 +Хостам указанным в MX записях не разрешено отправлять почту. Всем остальным хостам тоже не разрешено,​ тем не менее почта будет обработана.
 +<​code>"​ver=spf1 include:​spf.example.com ~all"</​code>​
 +Сначала будет интерпретирована запись на домене ''​spf.example.com'',​ если она не вернет определенного значения,​ то применится механизм ''​~all'',​ который говорит,​ что почту можно пропустить,​ но сделать отметку.
 +<​code>"​ver=spf1 mx/24 -all"</​code>​
 +Допустим mx.example.com с адресом 192.168.10.10 отправляет письмо. Данная SPF запись говорит получателю проверить диапазон сети 192.168.10.10/​24 на наличие IP адреса отправителя,​ т.к. mx.example.com может принимать почту на одном IP адресе,​ а отправлять с разных.
 +
 +
 +[[http://​www.openspf.org/​SPF_Record_Syntax | По мотивам данного материала]]
 +
 +
 +{{tag>​email spf dns internet}}
 +
 +
 +~~DISCUSSION~~