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

Google обнаруживает, что DMARC не подписан

У меня на сервере такая проблема:

Example.com и example2.com.mx это домены из server.example.com , когда я отправляю электронное письмо через аккаунт account@example.com в Gmail пройти и показать подписанный DKIM, но когда я пытаюсь отправить электронное письмо из формы php в example2.com.mx с электронной почтой account@example.com падение DKIM показывает, что учетная запись является логином, но не подписана.

Система в example2.com.mx имеет фреймворк php и Zend 1, а server.example.com имеет WHM centos 6 и Cpanel в доменах example.com и example2.com.

И Gmail возвращает это, например, в электронном письме с php:

dmarc = fail (p = NONE sp = NONE dis = NONE) header.from = example.com

Я надеюсь, что вы можете помочь мне
Спасибо

Давайте разберемся в этом, поскольку здесь на вас работают несколько разных компонентов.

Если я правильно понимаю, все электронные письма имеют адрес электронной почты @ example.com (независимо от того, какой сервер их отправляет), поэтому мои элементы ниже настроены для отправки с @ example.com

Кроме того, ваша настоящая проблема, похоже, связана с DKIM (поскольку вы получаете электронное письмо, просто не видите его как подписанного). Я добавляю другие вещи, которые нужно очистить, которые помогут вам в долгосрочной перспективе.


DKIM

Поскольку вы заметили, что иногда вы получаете сообщения в Gmail, в которых говорится, что они подписаны DKIM, я предполагаю, что у вас есть правильная часть выбора и что сервер исходящей почты правильно добавляет подписи DKIM к вашим исходящим сообщениям. Проблема звучит так, будто у вас нет исходящего почтового сервера для настройки веб-страницы PHP для подписи DKIM. Самый простой способ - заставить ваш веб-сервер отправлять электронную почту через тот же почтовый сервер, который вы используете для почтовых ящиков; они уже доказали, что правильно подписывают сообщения, и это может объединить ваш почтовый поток в один маршрут.

Это важно, потому что DKIM - единственная часть этой настройки, которая требует от вас изменения потока почты. SPF и DMARC - это инструкции на основе DNS для принимающих серверов, в которых рассказывается, как проверять и обрабатывать фальшивую почту, якобы отправленную из вашего домена. DKIM фактически изменяет почту с ваших серверов, так что есть доказательства, что она на 100% исходит от вас. Если в отправляемом электронном письме нет заголовков подписи DKIM, значит, исходящие электронные письма подписываются неправильно, и DMARC позже не сработает.

Ваши текущие записи DKIM в DNS немного большие, на самом деле похоже, что вы включаете некоторые элементы, которые предназначены для заголовков почты, а не для DNS; и у вас плохое значение для флага тестирования с "t = s". Для большей части всего, для чего вам нужен DKIM, запись DNS очень проста; например, всего 2 или 3 элемента, версия DKIM и открытый ключ (и, возможно, флаг тестирования). Кроме того, флаг тестирования установлен с помощью "т = у"иначе у вас возникнут проблемы.

Поскольку мы все еще тестируем это, я добавлю тест флаг, но обязательно удалите его, когда все заработает.

Для тестирования

com.example._domainkey.selector TXT "v = DKIM1; t = y; p = [общедоступный ключ подписи DKIM]"

Для производства (убрать флаг тестирования)

com.example._domainkey.selector TXT "v = DKIM1; p = [общедоступный ключ подписи DKIM]"

Все остальное не нужно, так что давайте немного поправим. Все, что делает запись DNS, - это дает всему миру копию вашего закрытого ключа, чтобы он мог проверить подпись самостоятельно. (и указывается, что этот домен все еще тестирует DKIM, поэтому не отклоняйте сообщение только потому, что оно не прошло проверку DKIM)

Записи DKIM относятся к домену в исходной строке электронного письма. Так что, если ваша почта приходит ОТ @ example.com, то будет использоваться DKIM.


SPF

Платформа политики отправителя определяет, каким серверам разрешено отправлять электронные письма, которые утверждают, что они исходят из вашего домена. У вас есть несколько элементов, перечисленных в вашей записи SPF, которые обычно не используются в сильной настройке. Также существует общая синтаксическая ошибка: вы используете слишком много символов «+». Вам не нужен знак «+» перед каждым элементом. Фактически, учитывая ваши записи, вам не нужен «+» в ваших записях SPF, избавьтесь от них.

  • mx : Это означает, что любой из серверов, которые могут получать почту для домена (почтовые eXchangers), также могут отправлять исходящую почту из вашего домена. Этот элемент довольно распространен, особенно в небольших почтовых системах.
  • а : Это меня немного беспокоит. Этот элемент говорит, что «все, что имеет A-запись в моем домене, может отправлять электронную почту из моего домена». Обычно это слишком разрешительно и может позволить отправлять слишком много вещей (буквально любой хост в вашем DNS). Я бы подумал об удалении этого элемента, если он вам не нужен.
  • ip4 : Это прямолинейно. Разрешить этому IP-адресу отправлять электронную почту для этого домена. Если у вас есть статические IP-адреса, которые никогда не должны меняться, тогда это достойный способ. Если вы укажете IP-адреса всех авторизованных служб отправки, то вам не понадобится а или mx элементы, поскольку они были бы избыточными.
  • включают : Этот элемент означает, что вы хотите использовать запись SPF, расположенную по адресу, прикрепленному к элементу include. Это используется только тогда, когда у вас есть хорошая установка SPF где-то еще и вам нужно добавить ее в другие места. Чаще всего это наблюдается, когда вы используете стороннего поставщика электронной почты (O365 / Outlook / Hotmail, Google Apps, Yahoo for Biz и т. Д.) И настраиваете свой домен, чтобы их серверы могли отправлять сообщения от имени вашего doamin. Это также полезно, если вы используете компанию электронного маркетинга для рассылки массовых рассылок от вашего имени. Я считаю крайне маловероятным, что вам понадобятся включения с 4 разных почтовых хостов, вам, вероятно, следует удалить большинство из них, если не все. (если вы используете один из этих хостов, обязательно используйте ТОЧНОЕ включение, которое они дают в своих инструкциях).
  • -все : Это важная запись. Это специальный подстановочный знак «все», измененный на «-». Это означает, что все, что не соответствует ни одной из предыдущих записей, должно быть отклонено и заблокировано. Это упорный индикатор и его полезно использовать, когда у вас все работает так, как вы хотите. * Если вы уже используете этот домен для электронной почты и только что настраиваете SPF (или DMARC), вы можете временно использовать символ "~" мягкий провал показатель. При этом электронные письма будут доставлены (хотя они могут быть помечены как подозрительные или пройти дополнительное обнаружение спама из-за программного сбоя). После того, как все настроено и работает так, как вы хотите, вернитесь к жесткой ошибке «-». *

Не зная ваших доменов, я не могу проверить ваши а и mx записи через DNS. Но поскольку у вас есть большое количество перечисленных элементов IPv4, я бы упростил записи SPF до чего-то вроде этого.

Для тестирования

com.example. TXT "v = spf1 ip4: [IP-адрес сервера, отправляющего электронные письма] ip4: [IP-адрес server.example2.com.mx] ~ all"

Для производства (отклонение сообщений не с ваших серверов)

com.example. TXT "v = spf1 ip4: [IP-адрес сервера, отправляющего электронные письма] ip4: [IP-адрес server.example2.com.mx] -all"

У вас может быть несколько элементов ip4 :, если вам нужны дополнительные IP-адреса (больше серверов или добавленные интерфейсы на сервере).

Важной частью здесь является то, что запись TXT для SPF создается в DNS для домен что письмо от. И ip4: элементы SPF указывают IP-адреса серверов, которым будет разрешено отправлять почту. Они не обязательно должны быть серверами для одного и того же домена, но должны быть все IP-адреса, которым разрешено отправлять электронную почту для этого домена.


DMARC

DMARC отличается тем, что не выполняет никаких проверок действительности электронного письма, он просто сообщает другому серверу, как обрабатывать электронные письма, если они не проходят проверку SPF или DKIM.

Похоже, ваша запись DMARC сообщает серверам, что они никогда не отклоняют и не помещают сообщения в карантин, даже если это ошибка («p = none; sp = none») в части команды. Это хорошо для тестирования, если вы не забудете включить его на ступеньку выше, когда закончите тестирование.

Кроме того, для элементов выравнивания идентификаторов DKIM и SPF записи по умолчанию установлено значение «смягчено» (рекомендуемая настройка), так что вы можете оставить их, чтобы немного упростить. В остальном это выглядит неплохо.

Для тестирования

com.example._dmarc TXT "v = DMARC1; p = none; sp = none; pct = 100;"

Для производства (с твердым браком отказов »

com.example._dmarc TXT "v = DMARC1; p = reject; sp = reject; pct = 100;"