Відмінності між версіями «SPF»
| Рядок 19: | Рядок 19: | ||
Поддерживаются такие механизмы (подробнее см. описание формата записей SPF): | Поддерживаются такие механизмы (подробнее см. описание формата записей SPF): | ||
| − | * all - описывает весь диапазон IP-адресов. | + | * '''all''' - описывает весь диапазон IP-адресов. |
| − | * ip4:addresslist - диапазон адресов IPv4 в формате aa.bb.cc.dd или aa.bb.cc.dd/masklen (например, ip4:127.0.0.1 или или ip4:127.0.0.0/8). | + | * '''ip4:addresslist''' - диапазон адресов IPv4 в формате aa.bb.cc.dd или aa.bb.cc.dd/masklen (например, ip4:127.0.0.1 или или ip4:127.0.0.0/8). |
| − | * ip6:addresslist - диапазон адресов IPv6 (аналогично ip4). | + | * '''ip6:addresslist''' - диапазон адресов IPv6 (аналогично ip4). |
| − | * a:hostname - все IP-адреса машины hostname. | + | * '''a:hostname''' - все IP-адреса машины hostname. |
| − | * mx - все IP-адреса MX-серверов данного домена. | + | * '''mx''' - все IP-адреса MX-серверов данного домена. |
| − | * ptr:domain - IP-адреса, PTR-записи которых указывают на domain. | + | * '''ptr:domain''' - IP-адреса, PTR-записи которых указывают на domain. |
| − | * include:domain - ссылка на SPF-политику домена domain. | + | * '''include:domain''' - ссылка на SPF-политику домена domain. |
| − | * exists:macro - позволяет с помощью макроязыка сконструировать сложное доменное имя, затем проверить его существование в DNS. Например, запись вида "exists:%{l}._spf.domain.name" для адреса отправителя вида [email protected] развернется в user._spf.domain.name. Если на запрос полученного доменного имени вернется положительный ответ, значит механизм "сработал" ("match"). Подробнее механизм exists описан в отдельном разделе ниже. | + | * '''exists:macro''' - позволяет с помощью макроязыка сконструировать сложное доменное имя, затем проверить его существование в DNS. Например, запись вида "exists:%{l}._spf.domain.name" для адреса отправителя вида [email protected] развернется в user._spf.domain.name. Если на запрос полученного доменного имени вернется положительный ответ, значит механизм "сработал" ("match"). Подробнее механизм exists описан в отдельном разделе ниже. |
При анализе SPF-записи все механизмы перебираются слева направо, и если какой-то из них описывает IP-адрес посылающей сообщение стороны, то механизм "сработал". Тогда следует выполнить действие, рекомендуемое владельцем домена. Действия определяются префиксами перед механизмами: | При анализе SPF-записи все механизмы перебираются слева направо, и если какой-то из них описывает IP-адрес посылающей сообщение стороны, то механизм "сработал". Тогда следует выполнить действие, рекомендуемое владельцем домена. Действия определяются префиксами перед механизмами: | ||
| − | + (или отсутствие префикса) - положительный префикс, сообщение рекомендуется принять. | + | '''+ (или отсутствие префикса)''' - положительный префикс, сообщение рекомендуется принять. |
| − | - (минус) - запрещающий префикс, сообщение принимать не рекомендуется. | + | '''- (минус)''' - запрещающий префикс, сообщение принимать не рекомендуется. |
~ - "нейтрально-отрицательный" префикс, означающий "адрес посылающей стороны может быть не в разрешенном диапазоне". Сообщение рекомендуется не отвергать, но возможно подвергнуть дополнительным проверкам. | ~ - "нейтрально-отрицательный" префикс, означающий "адрес посылающей стороны может быть не в разрешенном диапазоне". Сообщение рекомендуется не отвергать, но возможно подвергнуть дополнительным проверкам. | ||
| Рядок 40: | Рядок 40: | ||
Кроме механизмов, определены следующие модификаторы: | Кроме механизмов, определены следующие модификаторы: | ||
| − | redirect:domainname - "подменяет" проверяемое доменное имя с домена отправителя на domainname. | + | '''redirect:domainname''' - "подменяет" проверяемое доменное имя с домена отправителя на domainname. |
| − | exp:строка - определяет диагностическое сообщение, выдаваемое при неприеме почты. | + | '''exp:строка''' - определяет диагностическое сообщение, выдаваемое при неприеме почты. |
Таким образом, для поддержки SPF на посылающей стороне достаточно перечислить в DNS-записи все адреса почтовых серверов, посылающих почту "наружу", после чего протокол будет поддержан. Конечно, реализация сложных случаев (макросы с exists) потребует специального ПО, но для простых случаев exists не нужен. | Таким образом, для поддержки SPF на посылающей стороне достаточно перечислить в DNS-записи все адреса почтовых серверов, посылающих почту "наружу", после чего протокол будет поддержан. Конечно, реализация сложных случаев (макросы с exists) потребует специального ПО, но для простых случаев exists не нужен. | ||
SPF-записи помещаются в стандартные для DNS записи типа TXT, следовательно, никакой модификации программного обеспечения DNS серверов и клиентов не требуется. | SPF-записи помещаются в стандартные для DNS записи типа TXT, следовательно, никакой модификации программного обеспечения DNS серверов и клиентов не требуется. | ||
Версія за 06:15, 30 березня 2009
Публикация SPF-политики
Если какой-то домен (его владелец/администратор) хочет поддержать SPF для целей верификации сообщений, исходящих из данного домена (т.е. имеющих адрес отправителя в этом домене), то для этого в DNS-записи домена добавляется строка приблизительно такого вида:
domain.name. IN TXT "v=spf1 ip4:192.168.0.0/16 +a:www.another.domain.com -all".
Данный пример означает:
1. Поддержан протокол SPF версии 1 (v=spf1); 2. Почта с From: [email protected] может приходить (рекомендовано принимать) с: 1. IP-адресов диапазона 192.168.0.0/16 (192.168.0.0-192.168.255.255) 2. Сервера с именем www.another.domain.com 3. Почта с From: из данного домена не может приходить (не рекомендовано принимать) более ниоткуда (-all).
В терминах технологии SPF, 'ip4', 'a', 'all' - это "механизмы" (mechanism), а префиксы (+,-,?,~) перед названием механизма так и называются "префиксы" (prefix).
Поддерживаются такие механизмы (подробнее см. описание формата записей SPF):
* all - описывает весь диапазон IP-адресов.
* ip4:addresslist - диапазон адресов IPv4 в формате aa.bb.cc.dd или aa.bb.cc.dd/masklen (например, ip4:127.0.0.1 или или ip4:127.0.0.0/8).
* ip6:addresslist - диапазон адресов IPv6 (аналогично ip4).
* a:hostname - все IP-адреса машины hostname.
* mx - все IP-адреса MX-серверов данного домена.
* ptr:domain - IP-адреса, PTR-записи которых указывают на domain.
* include:domain - ссылка на SPF-политику домена domain.
* exists:macro - позволяет с помощью макроязыка сконструировать сложное доменное имя, затем проверить его существование в DNS. Например, запись вида "exists:%{l}._spf.domain.name" для адреса отправителя вида [email protected] развернется в user._spf.domain.name. Если на запрос полученного доменного имени вернется положительный ответ, значит механизм "сработал" ("match"). Подробнее механизм exists описан в отдельном разделе ниже.
При анализе SPF-записи все механизмы перебираются слева направо, и если какой-то из них описывает IP-адрес посылающей сообщение стороны, то механизм "сработал". Тогда следует выполнить действие, рекомендуемое владельцем домена. Действия определяются префиксами перед механизмами:
+ (или отсутствие префикса) - положительный префикс, сообщение рекомендуется принять.
- (минус) - запрещающий префикс, сообщение принимать не рекомендуется.
~ - "нейтрально-отрицательный" префикс, означающий "адрес посылающей стороны может быть не в разрешенном диапазоне". Сообщение рекомендуется не отвергать, но возможно подвергнуть дополнительным проверкам.
? - "нейтральный" префикс, указывает на принципиальную неполноту данных (то есть владелец домена не может указать все IP-адреса источников почты из своего домена).
Кроме механизмов, определены следующие модификаторы:
redirect:domainname - "подменяет" проверяемое доменное имя с домена отправителя на domainname.
exp:строка - определяет диагностическое сообщение, выдаваемое при неприеме почты.
Таким образом, для поддержки SPF на посылающей стороне достаточно перечислить в DNS-записи все адреса почтовых серверов, посылающих почту "наружу", после чего протокол будет поддержан. Конечно, реализация сложных случаев (макросы с exists) потребует специального ПО, но для простых случаев exists не нужен.
SPF-записи помещаются в стандартные для DNS записи типа TXT, следовательно, никакой модификации программного обеспечения DNS серверов и клиентов не требуется.