Почтовый домен. Настройка SPF, DKIM, DMARC

Данная статья являет продолжением темы по настройке почтового сервера. На этот раз будет рассмотрен процесс настройки домена для отправки почтовых сообщений, а именно добавление записей SPF, DKIM и DMARC.

1. Добавление записи SPF

SPF – это расширение для протокола отправки почты через SMTP сервер. С его помощью проверяется легитимность домена отправителя. Владелец домена в TXT-записи указывает перечень серверов которые могут отправлять почту, с обратным адресом в этом домене.

Запись SPF имеет следующие опции:

  • v=spf1 – указывается на используемую версию SPF;
  • + – сообщает серверу, что письма необходимо принимать, является значением по умолчанию;
  •  – сообщает о необходимости отклонить почту;
  • ~ – сообщает о необходимости принять письмо с пометкой СПАМ;
  • ? – нейтральное отношение к принимаемой почте;
  • mx – состоит со всех адресов серверов, указанных в MX-записях домена;
  • a – позволяет добавить какое-либо доменное имя;
  • ip4 – позволяет добавить в запись SPF один или несколько IPv4 адресов;
  • ip6 – позволяет добавить один или несколько IPv6 адресов;
  • include – добавляет сервера, которые включены в запись SPF указанного домена;
  • ptr – проверяет PTR-запись IP-адреса отправителя на сходство с текущим доменом;
  • all – все сервера, которые не были перечислены в текущей записи;
  • exp – позволяет задать текст ошибки, в случае её возникновения;
  • redirect – указывает серверу-получателю, что необходимо проверять запись в заданного домена, вместо текущего.

Простая TXT-запись для сайта site.com имеет вид:

site.com. IN TXT "v=spf1 mx ip4:8.8.8.8 ~all"

В ней сообщается серверу, что необходимо принимать почту со всех серверов, указанных в MXзаписи, а также с сервера 8.8.8.8, остальную же почту принимать, но помечать как СПАМ.

2. Добавление записи DKIM

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

Добавление записи DKIM состоит из двух этапов:

  • генерация публичного и приватного ключей;
  • редактирование DNS.

Для начала, если ранее не делалось, необходимо внести в конфиг Exim информацию о DKIM:

vi /etc/exim/exim.conf

Добавляем в раздел “MAIN CONFIGURATION SETTINGS”:

DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_FILE = /usr/local/etc/exim/${lc:${domain:$h_from:}}.key
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}

Добавляем сразу после:

remote_smtp:  
  driver = smtp

это:

dkim_domain = DKIM_DOMAIN
dkim_selector = mail
dkim_private_key = DKIM_PRIVATE_KEY

Здесь следует заметить, что dkim_selector (в нашем случае имеет значение mail) будет использоваться при внесении записей в DNS.

Следующим шагом является генерация ключей. Сначала генерируем приватный ключ (RSA 2048 бит):

openssl genrsa -out /usr/local/etc/exim/site.com.key 2048

Приватный ключ остается на сервере, с ним ничего делать не нужно. Далее необходимо сгенерировать публичный ключ на основе уже созданного приватного:

openssl rsa -in /usr/local/etc/exim/site.com.key -pubout

После чего будет получен, примерно, следующий результат, который и необходимо добавить в DNS:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxXeojocAWYVt4Z627Rpv
yMFmBt0EIOT8C3gwVKiraKRucZ/oWSbyaXLLnf/JqotTLeOb4zLibMRxVJQJD0f1
Q4hVsiv6N3D8hvhHMQdi26z2FngIVyOyx7/sGkCbybantd0oqzDpSGxJWDZFR3vQ
E0h/LA+SRlg8Uk0wPOeMxB8kIv53EP0PUdf/aT7UP9xA1AWqsyBudf/0VQH4xqiO
AkmLmbQteQj6s0ilGW1+nB3ro5t5cMXCt7Th7Odc/Cg3Lk73Z2psPib0BmXyuP9p
K5KRLzfmyEBKBuRKf/1QQx15Ae2941GnkPAJyLtfJBEdPqnwv8h+EgINTOHBIjg/
jwIDAQAB
-----END PUBLIC KEY-----

Следующим, финальным, шагом является добавление публичного ключа в запись DKIM:

mail._domainkey.site.com. TXT "v=DKIM1; k=rsa; t=s; p=публичный_ключ"

Стоит отметить, что mail в данной записи, это dkim_selector который мы указывали в конфиге Exim.

3. Добавление записи DMARC

DMARC – это техническая спецификация, основной целью которой является борьба с отправителями, которые подделывают обратные адреса. DMARC не является обязательной записью, её основная польза заключается в сохранении чистоты репутации почтовых сервисов и интернет-провайдеров, так как дает возможность исключить несанкционированные рассылки.

DMARC добавляется только после того, как были добавлены записи SPF и DKIM, и сообщает серверу-получателю, что делать с письмами, которые не прошли проверку легитимности отправителя.

Основные опции:

  • v=DMARC1 – версия протокола;
  • p – правило для домена (есть 3 варианта: none – не принимать никаких действий; quarantine – отправлять сообщения в спам; reject  – не принимать сообщения);
  • aspf – режим проверки для SPF-записей;
  • pct – процент сообщений, которые подлежат фильтрации;
  • sp – правило для субдоменов, аналогичны правилу для доменов;
  • rua – адрес для отчетов.

Примеры конечных записей:

  • отклонять все сообщения, которые не прошли проверку:
_dmarc.site.com. TXT "v=DMARC1; p=reject"
  • пропускать все сообщения, но отправлять отчет на почту admin@site.com:
_dmarc.site.com. TXT "v=DMARC1; p=none; rua=mailto:admin@site.com"

Стоить отметить, что для нового домена не рекомендуется сразу отклонять все сообщения, лучше пропускать все, но включить отправку отчета, проверить все ли правильно работает и только после этого включать полный запрет.

На этом настройка DNS-записей домена для отправки почты завершена. Возникшие вопросы задаем в комментариях.

Также может быть интересно: