SPF запись для почтового сервера


SPF запись для почтового сервера добавляется DNS доменного имени для ограничения количества серверов с которых могут отправляться письма подписываемые доменом.

Каждый раз сервер, принимающий почту делает запрос к DNS и выясняет имеется ли запись типа SPF — если запись есть он анализирует ее и поступает с полученным письмом так как запись предписывает.


Как проверяется SPF запись DNS



SPF запись для почтового сервера


Записи SPF задаются в конфигурационном файле BIND или, на практике, часто в личном кабинете компании на NS серверы которого делегировано доменное имя.



Для домена example.com запись может выглядеть так:

.IN TXTv=spf1 mx -all

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



v=spf1 — указывает версию, данный элемент присутствует всегда

mx— говорит о том, что письма могут отправляться от всех хостов заданных в MX записях домена, аналогом может быть a:mail.example.com, т.е. указание определенного доменного имени. mx используется значительно чаще.

-all — предписывает отвергать все письма, поступающие с хостов, включение которых не предполагается mx/a тэгами. Альтернативой является задание ~all с тильдой в качестве первого знака, письма при этом будут доставляться, но в служебных заголовках будет пометка о том, что отправитель подделан. Эта опция используется чаще поскольку снижает риск потери нужным писем.

SPF запись в отличие от DKIM может присутствовать в DNS при отсутствии конфигурации Postfix, в случае с DKIM добавлять запись не рекомендуется.



Добавление SPF записи для почтового сервера на примере Postfix

Настройки позволят почтовому серверу осуществлять проверку наличия SPF записи и её значения.

Операционная система сервера команды для которого приведены ниже — Debian/Ubuntu.


Прежде всего установим необходимые пакеты:

apt-get install postfix-policyd-spf-python postfix-pcre



Открываем для редактирования файл /etc/postfix/master.cf в его конец дорбавляем две строки, которые обеспечат поддержку policyd-spf

mcedit /etc/postfix/master.cf

policyd-spf unix — n n — 0 spawn
user=policyd-spf argv=/usr/bin/policyd-spf



Также увеличим таймаут Postfix, это не даст пакету завершить процесс принудительно если транзакция выполняется слишком долго

mcedit /etc/postfix/main.cf

policyd-spf_time_limit = 3600


В этот же конфигурационный файл добавим check_policy_service entry:

smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination,check_policy_service unix:private/policyd-spf



Значения лучше указывать друг за другом через запятую без пробелов, иначе могут возникать ошибки. Опция reject_unauth_destination обязательна должна идти перед check_policy_service unix:private/policyd-spf

Перезапускаем Postfix

/etc/init.d/postfix restart



Чтобы проверить все ли получилось отправляем письмо из командной строки

mail [email protected] -s 'testing SPF' < /dev/null

Получив письмо просматриваем служебные заголовки — spf=pass будет свидетельствовать об успехе. SPF запись для почтового сервера добавлена.

Сказать спасибо