Как настроить запись SPF DNS для почтового сервера
Введение
SPF (Sender Policy Framework) используется MTA (агентом пересылки почты или почтовым сервером) для проверки того, что входящая электронная почта исходит от почтового сервера, откуда она была отправлена.В этом руководстве будет показано, как настроить запись TXT DNS для SPF в вашем домене, чтобы предотвратить отправку электронной почты на почтовый сервер, проверяющий SPF, кем-либо другим, пытающимся подделать ваш почтовый сервер.
Это выгодно, так как это будет означать, что ваша электронная почта с меньшей вероятностью попадет в папки для спама, что затруднит другим пользователям выдавать себя за ваш почтовый сервер.
Предпосылки
- Рабочий почтовый сервер, использующий домен
- Доступ к серверу имен вашего домена, чтобы иметь возможность изменять записи DNS для вашего домена
Шаг 1 - Понимание SPF
Запись SPF в домене используется, чтобы сообщить почтовым серверам, обрабатывающим входящую почту, как поступать с почтой, утверждающей, что она пришла из вашего домена; например, проверка соответствия IP-адреса сервера, отправляющего входящую почту, IP-адресу, указанному в записи SPF. Это может помешать кому-то другому маскироваться под ваш домен при отправке электронной почты в домен, который проверяет SPF, путем сопоставления информации, такой как IP-адрес подключающегося MTA, с записью SPF, если это указано для этого.Включение SPF в вашем домене повысит вероятность того, что отправляемое вами электронное письмо не попадет в спам или не будет полностью отклонено, поскольку многие программы фильтрации спама, такие как SpamAssassin, проверяют наличие действительной записи SPF и принимают это во внимание при принятии решения о том, письмо должно быть помечено как спам.
Даже если у вас нет почтового сервера, наличие настройки записи SPF для блокировки всей электронной почты, утверждающей, что она принадлежит вашему домену, может затруднить кому-либо попытку отправки электронной почты из вашего домена, даже если ваш сервер был взломан.
Записи SPF состоят из 3 частей. Чтобы показать это, вот пример записи SPF:
v=spf1 mx ip4:10.0.0.1 ip6:2001:db8:1 -all
v=spf1
сообщает MTA, что запись SPF - это версияspf1
, наиболее часто используемая версия SPF. Это обязательно.mx ip4:10.0.0.1 ip6:2001:db8:1
говорит, что электронная почта может быть принята с IP-адреса любых найденных записей MX в дополнение к указанным IP-адресам. Эта часть не является обязательной.-all
заставляет MTA отклонять всю почту, которая не соответствует критериям, указанным во втором разделе записи SPF.
a
- соответствует IP-адресу любой A / AAAA-записи домена, если она существуетa:[domain]
- совпадает с IP-адресом любой записи A / AAAA указанного домена, если она существует, может использоваться более одного разаexists
- соответствует, если домен разрешается на любой IP-адресip4:[IPv4Address]
- соответствует IPv4-адресу или подсети, может использоваться более одного разаip6:[IPv6Address]
- соответствует IPv6-адресу или подсети, может использоваться более одного разаinclude:[domain]
- использует SPF-политику указанного домена, если она существуетmx
- соответствует домену, используемому в записи MX
+
- PASS (разрешить почту, по умолчанию, если не указан модификатор)?
- НЕЙТРАЛЬНО (никаких действий не предпринималось)~
- SOFTFAIL (обычно не отклоняет, а помечает почту)-
- FAIL (отклоняет почту)
-all
либо ~all
в конце, чтобы отклонить все сообщения электронной почты, которые не соответствуют никаким другим критериям (если они указаны). В качестве альтернативы вы можете использовать ?all
менее строгую настройку SPF. v=spf1 -all
является допустимой записью SPF и может использоваться для предотвращения попыток отправки электронной почты кем-либо из вашего домена - однако это непрактично, если вы используете почтовый сервер, поскольку любой MTA, настроенный для проверки SPF, заблокирует вашу электронную почту.Из приведенных выше вариантов вы можете создать запись SPF, адаптированную к потребностям вашего почтового сервера.
Шаг 2 - Добавление записи SPF в DNS
После того, как вы определили параметры, которые вы хотите использовать для своей записи SPF в рамках шага 1, вам необходимо добавить запись DNS TXT, которая будет содержать сведения о SPF.В этом руководстве будет использоваться предыдущий пример записи SPF, чтобы показать, как она настраивается.
Откройте настройки записи DNS вашего домена, она часто размещается либо у регистратора домена, либо у хоста сервера.
Создайте новую запись TXT в своем домене с именем хоста в качестве корня вашего домена или @ и поместите свою запись SPF в раздел «значение». TTL (время жизни) сообщает преобразователю DNS, как долго содержимое записи DNS должно быть кэшировано в секундах - большинство записей DNS имеют TTL от 1 часа (3600 секунд) до 24 часов (86400 секунд).
Вот скриншот того, как должна выглядеть ваша DNS-запись:
Если вы размещаете свои собственные серверы имен для своего домена, вам, вероятно, потребуется вручную отредактировать файл зоны домена и добавить строку, подобную этой:
@ IN TXT "v=spf1 mx ip4:10.0.0.1 ip6:2001:db8:1 -all"
Шаг 3 - Проверка записи SPF
Теперь, когда запись SPF добавлена, нам нужно убедиться, что мы ее видим и действительна. Для этого мы будем использоватьdig
инструмент, предоставленный в bind-tools
пакете. Возможно, вам потребуется установить его с помощью диспетчера пакетов, если он еще не установлен.Чтобы проверить,
example.com
есть ли у него запись SPF, нам нужно запустить следующее:dig example.com TXT
; <<>> DiG 9.13.0 <<>> example.com TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50010
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com. IN TXT
;; ANSWER SECTION:
example.com. 3600 IN TXT "v=spf1 mx ip4:10.0.0.1 ip6:2001:db8:1 -all"
;; Query time: 32 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Sep 04 00:00:00 UTC 2020
;; MSG SIZE rcvd: 100
v=spf1
, поскольку это будет добавленная вами запись SPF.Если он не появляется, возможно, вам придется немного подождать, прежде чем изменение вашего DNS будет облегчено.
Чтобы проверить действительность вашей записи SPF, вы можете воспользоваться услугами, доступными на таких сайтах, как kitterman.com или mxtoolbox.com . Здесь можно увидеть успешный пример результатов использования проверки SPF на kitterman.com:
Input accepted, querying now...
evaluating v=spf1 mx ip4:10.0.0.1 ip6:2001:db8:1 -all ...
SPF record passed validation test with pySPF (Python SPF library)!
Вывод
Теперь у вас должна быть рабочая запись SPF DNS для вашего почтового сервера, повышающая аутентичность вашего почтового сервера для вас и людей, которые его используют, и снижающая вероятность того, что электронная почта, отправленная с вашего сервера, будет помечена как спам.Вот несколько вещей, которые вы можете сделать после настройки записи SPF для дальнейшего улучшения вашего почтового сервера:
- Настройте свой почтовый сервер, чтобы проверять входящую электронную почту на предмет наличия SPF и проверять, действительна она или нет. Это можно сделать в большинстве MTA, таких как Postfix, с помощью транспорта.
- Добавление DKIM (DomainKeys Identified Mail) на ваш почтовый сервер для дальнейшего предотвращения спуфинга электронной почты с помощью подписей открытого / закрытого ключей, встроенных в заголовки электронной почты, и проверки входящего MTA на соответствие открытого ключа в записи DKIM TXT.
- Этого можно добиться за счет использования DMARC (Domain-based Message Authentication Reporting and Conformance), формы аутентификации электронной почты, которая требует наличия как SPF, так и DKIM в качестве предварительных условий.
Комментариев 0