Mail: SPF и DKIM + Hmailserver

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

Об авторе Alex

Работаю Администратором. В основном Windows. Специализируюсь на Hyper-V
Запись опубликована в рубрике Mail, Windows, Администрирование с метками , . Добавьте в закладки постоянную ссылку.

3 комментария: Mail: SPF и DKIM + Hmailserver

  1. Алексей говорит:

    Хотел настроить для рассылки MailChimp:

    Set a TXT (SPF) record for stamina.ru to:
    v=spf1 include:servers.mcsv.net ?all

    Set the CNAME record for k1._domainkey.stamina.ru to:
    dkim.mcsv.net

    Вопрос:
    1) «?all» — это опечатка (~all) или так и надо?
    2) «Полученный приватный ключ сохраняем на сервер в папку, к которой имеет доступ почтовый сервер.В конфигурации домена в hMailServer»
    Это уже в саппорт к хостеру обращаться?

  2. Alex говорит:

    Это опечатка (~all) -all

  3. Alex говорит:

    Не уверен что хостер это сделает для вас. В mailenable чуть проще, он сам генерирует пару ключей.

Добавить комментарий