Назад | Перейти на главную страницу

Почему электронная почта доставляется нормально, несмотря на «жесткий сбой» SPF?

Я пытаюсь понять, почему поддельная электронная почта доставляется основным поставщикам услуг электронной почты (gmail.com, outlook.com), хотя электронная почта отмечена SPF hardfail. Электронное письмо также доставляется в Microsoft Exchange, что вызывает PermError для той же записи SPF.

Я отправляю электронное письмо с использованием домена SOME_DOMAIN.com, который определяет неработающую запись SPF. Электронная почта передается с моего собственного IP-адреса, который явно не указан в записи SPF SOME_DOMAIN.com. Запись SPF для SOME_DOMAIN.com имеет следующие три свойства, первые два являются нарушением SPF RFC-4408:

  1. Требуется более 10 DNS-запросов для разрешения всей записи SPF из-за include:.
  2. Ошибка синтаксиса в одной из записей SPF, python-spf выдает ошибку синтаксического анализа.
  3. Запись SPF содержит как правила ~all и -all, оба говорят, что набор всех адресов должен softfail и hardfail

Электронное письмо, отправленное на адрес outlook.com, выдающий себя за admin@SOME_DOMAIN.com, будет содержать следующую ошибку в заголовке SMTP доставленного сообщения. Это письмо было доставляется нормально в почтовый ящик пользователя:

Received-SPF: PermError (: domain of SOME_DOMAIN.com used an invalid SPF mechanism)

Gmail также доставит письмо в почтовый ящик пользователя, но выдаст другую ошибку SPF:

spf=hardfail (google.com: domain of admin@SOME_DOMAIN.COM does not designate x.x.x.x as permitted sender) smtp.mail=admin@SOME_DOMAIN.COM

и так, что здесь происходит? Почему электронная почта доставляется, несмотря на SPF hardfail? Означает ли наличие неработающей записи SPF, что другие SMTP-серверы полностью игнорируют SPF? Или мне здесь чего-то не хватает ...

SPF настолько плохо настроен на таком большом количестве сайтов, что получение MTA часто считается hardfail только в качестве рекомендации и просто учитывайте это в своих оценках обнаружения спама. В конце концов, администратор MTA решает, как будут обрабатываться сбои SPF.

Состояния ошибки SPF ничего не говорят о желаемой политике. Как таковые они не дают никаких указаний относительно того, принимать ли сообщение или нет. Вполне возможно, что предполагаемая политика +all. В этом случае прием почты является нормальным. Похоже, Google снисходительно относится к несоответствию этого домена стандарту.

Даже отказ от политики SPF (-all) ненадежны при проверке адресов отправителя. Есть ряд случаев, когда отклонение такой почты было бы неуместным, в том числе:

  • Письмо, отправленное контрактными почтовыми службами (этим людям платят за нарушение политики);
  • Почта, отправляемая из веб-форм и других подобных автоматизированных систем;
  • Пересылка почты с помощью списков рассылки или других механизмов пересылки; и
  • Простая неправильная конфигурация записей SPF (нечасто, но не достаточно редко).

У меня довольно маленький сервер, на котором я могу отложить отказ в случае серьезных сбоев. Это позволяет мне занести в белый список допустимых ошибок. Если отправитель замечает, что почта не доставляется, он может исправить свою конфигурацию. В некоторых случаях я попытаюсь связаться с соответствующим postmaster, но многие домены не имеют postmaster адрес.

Пользователи, которые хотят применить более строгую политику, могут использовать DMARC, который еще не стал стандартом. Почта по-прежнему будет доставлена, но может быть помещена в карантин или отклонена, как указано в этой политике. Почта, которая не соответствует политике, может быть доставлена ​​в папку для спама, а не в обычный почтовый ящик.

Жесткие сбои SPF кажутся надежными для проверки подлинности отправляющего сервера. Некоторое время назад я провел некоторое исследование и обнаружил, что даже мягкие сбои для имени HELO являются разумной причиной сбоя или задержки входящих сообщений.

Многие почтовые серверы не имеют записи SPF. Если на почтовом сервере нет записи SPF, я проверяю наличие записи SPF в родительском домене. Это нестандартно, но эффективно. Я рекомендую администраторам электронной почты обеспечить наличие записи SPF для IP-адресов серверов, указанных в записи PTR. Ваш сервер также должен идентифицировать себя по имени, возвращаемому его записью PTR. Убедитесь, что у вас есть соответствующая запись A для обратной проверки DNS.