# Защита с помощью DKIM, SPF и DMARC

Plesk поддерживает несколько инструментов для защиты от спама путём проверки подлинности сообщений:

- DKIM (DomainKeys Identified Mail – идентификация почты по доменным ключам) – метод, позволяющий связать идентичность доменного имени с отправляемым сообщением, а также проверить идентичность доменного имени, связанного с входящим сообщением, с помощью криптографической аутентификации.
- SPF (Sender Policy Framework – инфраструктура политики отправителя) – метод, используемый для предотвращения подделки адреса отправителя письма, то есть использования фальшивого адреса отправителя. Он позволяет проверить, что входящая почта от определённого домена приходит с хоста, уполномоченного администратором этого домена. Кроме того, Plesk использует SRS (Sender Rewriting Scheme – схему перезаписи отправителя) для того, чтобы перенаправленные сообщения могли пройти проверку SPF.
- DMARC (Domain-based Message Authentication, Reporting and Conformance – идентификация сообщений, создание отчётов и определение соответствия по доменному имени) – это технология, расширяющая возможности методов SPF и DKIM. Политика DMARC определяет, что получатель должен делать с электронными сообщениями в зависимости от результатов проверки DKIM и SPF.

Эти инструменты имеют следующие требования к почтовому серверу:

Почтовый сервер | DKIM | SPF | SRS | DMARC
--- | --- | --- | --- | ---
Postfix (Linux) | ➕ | ➕ | ➕ | ➕
Qmail | ➕ | ➕ | ➖ | ➕
MailEnable Professional | ➕ | ➕ | ➖ | ➖
MailEnable Standard | Версия должна быть 9.16 или выше. | ➖ | ➖ | ➖
SmarterMail | ➕ | ➕ | ➕ | ➕
IceWarp | ➕ | ➕ | ➕ | ➖

В этой таблице ‘+’ означает, что инструмент поддерживается на всех версиях почтового сервера, поддерживаемых Plesk Onyx. ‘-‘ означает, что инструмент не поддерживается.

## DKIM

DKIM (DomainKeys Identified Mail – идентификация почты по доменным ключам) – метод, позволяющий проверить идентичность доменного имени, связанного с входящим сообщением. Он позволяет организациям брать на себя ответственность за отправляемые письма путём присоединения к ним автоматически сгенерированной цифровой подписи, а также использует криптографические средства, чтобы проверять входящие письма на наличие такой подписи.

Для предоставления поддержки DKIM Plesk использует функциональность внешней библиотеки (Linux) или почтового сервера, поставляемого с Plesk (Windows).

Предупреждение

Если вы используете внешний сервер DNS, подписание DKIM будет работать для исходящих сообщений, но сервер, принимающий почту, не сможет проверять такие сообщения. Для решения этой проблемы вы можете отключить DNS сервер Plesk и добавить соответствующую запись DNS, относящуюся к DKIM, на внешний сервер DNS. В этом случае сервер, принимающий почту, сможет проверять сообщения. Узнайте, как включить подписание сообщений DKIM для доменов, которые используют внешний сервер DNS.

### Включение или выключение DKIM на сервере

Чтобы включить функциональность DKIM на сервере, перейдите на страницу Инструменты и настройки > Настройки почтового сервера (в разделе Почта) и прокрутите вниз до раздела Система защиты от спама DKIM. Вы можете управлять DKIM на сервере с помощью следующих опций:

- Разрешить подписание исходящей почты. Эта функция позволяет клиентам включать подписание DKIM для исходящей почты для отдельных доменов. Это не приведет к автоматическому включению подписания всех исходящих сообщений. Чтобы использовать DKIM, пользователям необходимо включить DKIM для каждого домена.
- Проверять входящую почту (Plesk для Linux). Эта опция включает проверку DKIM для всей входящей почты. Все сообщения проверяются, и те сообщения, которые не проходят проверку, помечаются специальным заголовком.

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

Примечание

Вы не можете отключить проверку DKIM для входящей почты, если включена защита DMARC.

### Включение DKIM после обновления Plesk

При обновлении Plesk с более ранних версий, чем Plesk Onyx, DomainKeys автоматически заменяется на DKIM. Если функция DomainKeys была включена в Plesk, то и функция DKIM тоже будет включена.

### Поддержка подписи сообщений DKIM для домена

Если подписание DKIM включено на сервере (смотрите выше раздел Включение или выключение DKIM на сервере), клиенты могут подписывать исходящую почту на своих доменах.

Чтобы включить подписание исходящих сообщений DKIM для отдельного домена:

1. Откройте соответствующую подписку.
2. Перейдите на вкладку Почта > Настройки почты.
3. Выберите домен и нажмите Включить/отключить службы.
4. Выберите Включить для опции Система защиты от спама DKIM для подписи исходящих сообщений и нажмите ОК.

Примечание

Служба DNS должна быть активирована на домене.

После активации DKIM на домене Plesk добавляет следующие две записи в зону DNS домена:

- `default._domainkey.<example.com>` – содержит открытую часть созданного ключа.
- `_ domainkey.<example.com>` – содержит политику DKIM.

## SPF и SRS

SPF (Sender Policy Framework) is a method used to prevent sender address forgery, i.e. using fake sender addresses. SPF allows a domain’s administrator to set a policy that authorizes particular hosts to send mail from the domain. A receiving mail server checks that the incoming mail from a domain comes from a host authorized by that domain’s administrator. SPF is based on the rules specified by the administrator in the sender’s DNS zone.

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

When SPF is set up, the mail server checks incoming mail using the following algorithm steps:

1. Read local rules.

   Local rules are the rules used by the spam filter. An example local rule can be the following: `a:test.plesk.com`.

2. Search for the sender’s DNS SPF record (if any).

   An example SPF record can be the following:`example.com. TXT v=spf1 +a +mx -all`

3. Concatenate the local rules and the SPF record into the resulting policy.

   In our example, the resulting policy will be `example.com. TXT v=spf1 +a +mx +a:test.plesk.com -all`.

   Примечание

   If the mail server detects no SPF record, the resulting policy will comprise the local rules only.

4. Check mail against the policy resulting from the previous step.

5. Read guess rules.

   Guess rules are the global rules that override the SPF record. An example guess rule can be the following: `v=spf1 +a/24 +mx/24 +ptr ?all`.

6. Check mail against the guess rules only.

7. Compare the results of the two checks: the one made against the resulting policy (step 4) and the one made against the guess rules only (the previous step). Apply the check whose result is more permissive.

See more information on SPF check statuses.

Чтобы установить политику SPF для исходящей почты:

Перейдите в раздел Инструменты и настройки > Шаблон DNS и отредактируйте DNS-запись типа TXT, относящуюся к SPF. Эта DNS-запись всегда присутствует в серверном шаблоне DNS. Вот пример записи SPF, созданной Plesk:

    example.com.    TXT    v=spf1 +a +mx +a:test.plesk.com -all

Элементы этой записи означают следующее:

Элемент | Описание
--- | ---
`v=spf1` | Для домена используется SPF версии 1.
`+a` | Все хосты из DNS-записей типа «A» авторизованы для отправки писем.
`+mx` | Все хосты из DNS-записей типа «MX» авторизованы для отправки писем.
`+a:test.plesk.com` | Домен test.plesk.com авторизован для отправки почты.
`-all` | Все остальные домены не авторизованы для отправки почты.

Read more about the syntax of SPF DNS records. The policy notation is available at RFC7208.

Чтобы включить проверку SPF для входящей почты на сервере с Linux:

1. Перейдите в раздел Инструменты и настройки > Настройки почтового сервера (в разделе Почта). Откроется экран с глобальными почтовыми настройками на вкладке Настройки.

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

3. Выберите Продолжать проверку SPF при проблемах с поиском в DNS, если вы хотите, чтобы проверка SPF продолжалась, даже если поиск в DNS закончился неудачей. В этом случае, если хост не может быть распознан, или если DNS-записи, относящиеся к SPF, не найдены, могут быть применены предположения SPF.

4. Выберите одну из опций в меню Режим проверки SPF, чтобы указать, как следует поступать с письмом во время применения локальных правил и предположений SPF:

   1. Создавать только заголовки Received-SPF, не блокировать - принимать все входящие сообщения, независимо от результатов SPF-проверки.
   2. Использовать временные сообщения об ошибках при проблемах с поиском в DNS ― принимать все входящие сообщения, независимо от результатов SPF-проверки, даже если проверка закончилась неудачей из-за проблем с поиском DNS.
   3. Отклонять почтовые сообщения, когда SPF возвращает результат «fail»- отклонять сообщения от отправителей, которым не разрешено пользоваться доменом.
   4. Отклонять почтовые сообщения, когда SPF возвращает результат «softfail» ― отклонять сообщения от отправителей, которые по результатам проверки SPF-системы не могли быть признаны авторизованными или неавторизованными, в связи с тем, что отсутствуют опубликованные записи SPF для домена.
   5. Отклонять почтовые сообщения, когда SPF возвращает результат «neutral» ― отклонять сообщения от отправителей, которые по результатам проверки SPF-системы не могли быть признаны авторизованными или авторизованными, в связи с тем, что отсутствуют опубликованные записи SPF для домена.
   6. Отклонять почтовые сообщения, когда SPF не возвращает результат «pass» ― отклонять сообщения, которые не прошли проверку SPF по каким-либо причинам (например, если домен отправителя не поддерживает SPF и возвращает результат со статусом «unknown» ― «неизвестен»).
5. Чтобы задать локальные правила, введите их в поле SPF local rules.
   Например: include:spf.trusted-forwarder.org.

   Более подробную информацию о правилах SPF можно найти на сайте http://tools.ietf.org/html/rfc4408.

6. Вы можете также указать предположения в поле Предположения SPF.

   Например: v=spf1 +a/24 +mx/24 +ptr ?all

7. Чтобы указать сообщение об ошибке, которое будет возвращаться SMTP-отправителю в случае отклонения сообщения, введите его в поле Поясняющий текст SPF.

   Если не указано другого значения, для уведомления будет использован текст по умолчанию.

8. Нажмите OK.

Чтобы отключить проверку SPF для входящей почты:

1. Перейдите в раздел Инструменты и настройки > Настройки почтового сервера (в разделе Почта). Откроется экран с глобальными почтовыми настройками на вкладке Настройки.
2. В разделе Включить защиту от спама на основе политик SPF уберите галочку Включить защиту от спама на основе политик SPF для проверки входящих сообщений.

Примечание

На сервере с Linux вы не можете отключить проверку SPF для входящей почты, если включена защита DMARC.

### Использование SRS

В дополнение к SPF, некоторые почтовые серверы в Plesk поддерживают SRS (Sender Rewriting Scheme ― схема перезаписи отправителя), механизм перезаписи адреса отправителя перенаправляемых сообщений так, чтобы они могли пройти проверку SPF. SRS помогает обеспечить доставку сообщений при использовании SPF.

SRS используется автоматически при перенаправлении сообщений из почтовых ящиков, размещенных на Plesk.

Для предоставления функциональности SRS Plesk использует возможности внешней библиотеки (Linux) или почтового сервера (Windows).

## DMARC

DMARC (Domain-based Message Authentication, Reporting and Conformance ― идентификация сообщений, создание отчётов и определение соответствия по доменному имени) ― это технология, расширяющая возможности методов SPF и DKIM. Политика DMARC определяет, что получатель должен делать с электронными сообщениями в зависимости от результатов проверки DKIM и SPF. В основе этой технологии лежат правила, указанные в зоне DNS отправителя.

В Plesk вы можете установить политику DMARC для исходящей почты, указав правила в записи DNS. Кроме того, вы можете включить проверку DMARC для входящей почты на сервере с Линкус (для любого почтового сервера, поддерживаемого Plesk) или на сервере с Windows (только для SmarterMail).

Чтобы настроить собственную политику DMARC для исходящей почты:

Перейдите в раздел Инструменты и настройки > Шаблон DNS и отредактируйте DNS-записи типа TXT, относящиеся к политике DMARC. Эти записи DNS всегда присутствуют в серверном шаблоне DNS. (В отличие от них, записи DNS, относящиеся к DKIM, добавляются в зоны DNS отдельных доменов, когда вы активируете DKIM на домене.)

Например, политика DMARC, используемая в Plesk по умолчанию, определена в следующей записи:

    _dmarc.<domain>.    TXT    v=DMARC1; p=none

Эта политика даёт инструкцию серверу, принимающему почту, не удалять сообщения, даже если они не прошли проверку. Вы можете использовать более строгую политику. Однако имейте в виду, что сервер получателя может применить собственную политику для входящей почты.

Клиенты могут изменять политики для отдельных доменов.

Более подробную информацию по DMARC, в том числе условные обозначения для политик, можно найти на сайте https://datatracker.ietf.org/doc/rfc7489/.

Чтобы включить проверку DMARC для входящей почты:

1. Перейдите в раздел Инструменты и настройки > Настройки почтового сервера (в разделе Почта). Откроется экран с глобальными почтовыми настройками на вкладке Настройки.
2. В разделе DMARC поставьте галочку Включить проверку DMARC для входящей почты. На сервере с Линукс эта опция доступна, только когда включены DKIM и SPF для входящей почты.