Проект

Общее

Профиль

Приложение 5. Пример настройки DKIM, SPF, DMARC технологий

Преамбула

Протокол SMTP - один из самых старых протоколов, используемых в интернете - был разработан более 50-ти лет назад. В название протокола входит слово "простейший" (Simple). И таковым он живет до сих пор, хотя и оброс большим количеством расширений. Мы настоятельно рекомендуем использовать расширения, которые относятся к механизмам безопасности. Рассмотрим их в этой статье.

DKIM (DomainKeys Identified Mail)

DKIM RFC6376 - механизм, позволяющий проверить является ли отправитель достоверным или нет. Проверка осуществляется с помощью цифровой подписи, публичная часть которой находится в DNS соответствующей зоны. DKIM защищает от отправки сообщения с подменой адреса отправителя.

Чтобы настроить DKIM необходимо:

  1. Создать пару (публичный/приватный) RSA-ключей;
  2. Публичный ключ опубликовать в DNS-зоне;
  3. Приватный ключ отдать своему серверу (он знает как с ним поступить);

Генерация приватного ключа

openssl genrsa -out private.pem 1024

Генерация публичного ключа

rsa -pubout -in private.pem -out public.pem

Пример записи в зоне DNS

mail._domainkey.mbk-lab.ru.        IN    TXT    "v=DKIM1; h=sha256; k=rsa; 
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIDhhzLlxzUP+49LDgA3xq9Xtre6yYCXoBFxk+vAPi
MkvWvZ4MAToJqWlJkYedMKWmyuelDX7KWHi1IVThxB1oNelG1q4H1dVg2BzpFSWx9+G1h/AOm08LxZxPb1
K57O2d44q6lrfNYijSA/99X+Jo0NDv2bO+MbdEg8Drp/w2bQIDAQAB" 
где:
  • mail — селектор;
  • v — версия DKIM, всегда принимает значение v=DKIM1. (обязательный аргумент);
  • k — тип ключа, всегда k=rsa. (по крайней мере, на текущий момент);
  • p — публичный ключ, кодированный в base64. (обязательный аргумент).
  • ; — разделитель.

Но в случае с почтовым сервером Tegu все обстоит намного проще.
Генерировать вручную RSA-ключ нет необходимости. Достаточно зайти в опцию меню DKIM, выбрать один из обслуживаемых сервером интернет-доменов и кнопкой Создать сгенерировать PSA-ключ. Приватную часть ключа сервер оставит себе, а публичную вернет вам для использования в описании DNS-зоны.

В дальнейшем, ключ можно пересоздать или удалить.

SPF (Sender Policy Framework)

SPF RFC7208 - механизм для проверки подлинности сообщения, путем проверки фактического адреса сервера отправителя со списком разрешенных адресов серверов, указанных в соответствующей зоне DNS. SPF не позволяет случиться ситуации, когда от имени вашего домена будут рассылаться мошеннические письма.

Пример записи в зоне DNS

mbk-lab.ru.        IN    TXT    "v=spf1 a mx -all" 
где:
  • v=spf1 - является версией, всегда spf1;
  • a - разрешает отправляет письма с адреса, который указан в A и\или AAAA записи домена отправителя;
  • mx - разрешает отправлять письма c адреса, который указан в mx записи домена;
  • all - означает то, что будет происходить с письмами, которые не соответствуют политике:
    • "-" — отклонять;
    • "+" — пропускать;
    • "~" — дополнительные проверки;
    • "?" — нейтрально.

DMARC (Domain-based Message Authentication, Reporting and Conformance)

DMARC RFC7489 — механизм снижения количества спамовых и фишинговых писем. DMARC описывает действие, которое должен совершить сервер для писем, которые не прошли проверку DKIM и SPF. А также описывает адрес, на который раз в сутки будет отправляться отчет об этих действиях.

Пример записи в зоне DNS

_dmarc.mbk-lab.ru.        IN    TXT    "v=DMARC1; p=quarantine; rua=mailto:abuse@mbk-lab.ru" 
где:
  • v - версия, принимает значение v=DMARC1 (обязательный параметр);
  • p - правило для домена. Может принимать значения none, quarantine и reject, где:
    • p=none не делает ничего, кроме подготовки отчетов;
    • p=quarantine добавляет письмо в СПАМ;
    • p=reject отклоняет письмо;
  • rua - позволяет отправлять ежедневные отчеты на email.

Вывод

Если ваш сервер не удовлетворяет политикам безопасности, то как минимум ваше сообщение будет отвергнуто, как максимум - на ваш сервер в автоматическом режиме будет отправлена "жалоба". Достать домен из списков неблагожелательных бывает долго и трудно.