Настройка SPF и DKIM


SPF и DKIM

Суть такова, что будем настраивать SPF и DKIM для почты на основе Hmailserver. Принцип похож и для других почтовых серверов

 

 

 

SPF запись — проверка отправителя. SPF позволяет владельцу домена указать в TXT-записи домена специальным образом сформированную строку, указывающую список серверов, имеющих право отправлять email-сообщения с обратными адресами в этом домене.

DKIM — (DomainKeys Identified Mail) Технология объединяет несколько существующих методов антифишинга и антиспама с целью повышения качества классификации и идентификации легитимной электронной почты. Вместо традиционного IP-адреса, для определения отправителя сообщения DKIM добавляет в него цифровую подпись, связанную с именем домена организации. Подпись автоматически проверяется на стороне получателя, после чего, для определения репутации отправителя, применяются «белые списки» и «чёрные списки».

Настройка SPF:

Для этого необходимо средстве управления доменом. проделать следующие действия. К примеру у нас домен Formyexample.ru

Добавляем в него TXT запись:

TXT = "v=spf1 +a +mx ~all exp=spf.Formyexample.ru"

  • «+a» — разрешает прием писем от узла, IP-адрес которого совпадает с IP-адресом в A-записи для Formyexample.ru;»
  • +mx» — разрешает прием писем, если отправляющий хост указан в одной из MX-записей для Formyexample.ru;
  • «~all» — принимать письма со всех остальных серверов, но помечать их как СПАМ
  • «exp» — использование даной опции позволяет задать сообщение о ошибке, которое будет передано отправителю при возникновении таковой. Размещается в конце SPF-записи, даже после опции all. Рассмотрим более детально механизм работы опции exp.

Далее создаём домен 3 уровня spf.Formyexample.ru и в нём делаем TXT запись

TXT = "You host not allowed e-mail to me"

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

Received-SPF: OK

Настройка DKIM:

Для настройки DKIM нужно чуть больше.

  1. Сгенерировать пару ключей.
  2. Добавить публичный ключ в TXT запись домена
  3. Установитьнастроить MTA сервер (SMTP).

1. Пару ключей можно сгенерировать тут. Небольшое пояснение по поводу некого поля «domain selector». Данное поле позволяет привязать к одному домену несколько DKIM записей для разных нужд (например для разных почтовых серверов). В моём случае у меня только один почтовый сервер и у меня нет необходимости в селекторе, так что в роли селектора я выбрал просто «mail». Полученный приватный ключ сохраняем на сервер в папку, к которой имеет доступ почтовый сервер.В конфигурации домена в hMailServer нам необходимо указать путь к приватному файлу ключа, а так же указать выбранный селектор

В файле DNS-зоны нам необходимо указать записи вида:

_domainkey.Formyexample.ru. TXT "t=s; o=~;"

mail._domainkey.Formyexample.ru. TXT "k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQmO9AuWRbWPgl/jzDPQodrLfFLFq"

Где «mail» перед _domainkey во второй записи — это не что иное, как наш выбранный селектор, а длинный набор символов в той же записи идущий после «p=» — это наш публичный ключ.

Для получения пары ключей без использования внешних сервисов можно воспользоваться OpenSSL:

openssl.exe genrsa -out tstpriv.pem 1024 — генерим секретный ключ (1024 — длина ключа).

openssl.exe rsa -pubout -in tstpriv.pem -out tstpub.pem — получаем публичный ключ из секретного

Так же можно у домена прописать ADSP запись (RFC5617) — это позволит принимающему серверу понять, должно ли ваше письмо быть подписано или нет.

Запись выгладит таким образом:

_adsp._domainkey.example.com. TXT "dkim=all"

По мотивам habrahabra

http://alexwhite.ru/2014/05/15/mail-spf-i-dkim-hmailserver/

Губарь Маргарита Александровна