SPF, DKIM и DMARC являются основными настройками, призванными защитить почтовый сервер от рассылок вредоносных писем, которые могут быть сгенерированы мошенниками от вашего имени. Настройка записей SPF и DKIM не даст произвести отправку нежелательных рассылок. Также SPF и DKIM подскажут сервисам, что почтовые сообщения приходят именно от вас. В свою очередь DMARC – это определённый сценарий обработки писем, который является дополнительной защитой ваших рассылок.
Настройка SPF
SPF (Sender Policy Framework) – настройка, позволяющая указать список почтовых серверов, которые могут отправлять письма от имени вашего домена. Правильная настройка SPF передаёт почтовым сервисам подтверждение того, что именно вы отправили сообщение.
Для настройки SPF перейдите с список доменов в личном кабинете:
В строке нужного домена найдите ссылку Редактировать DNS-записи
. В качестве примера мы будем настраивать домен my-domain.host
. Вы, конечно же, должны редактировать записи для домена своего сервера:
Здесь нажмите на кнопку TXT
, введите текст новой записи и нажмите Сохранить
:
В данном случае содержимое записи несёт в себе следующую информацию:
193.104.57.80
– IP-адрес нашего почтового сервера (вам, естествено, необходимо заменить его на свой);v=spf1
— обязательный параметр;a
– разрешает сообщения от серверов указанных в A-записи;mx
– разрешает сообщения от серверов указанных в MX-записи;~all
– означает, что письма от остальных сервером необходимо принимать, но отправлять их в спам.
Данные параметры могут быть использованы со знаками:
+
– дефолтное значение, означающее, что сообщения должны быть приняты почтовым провайдером (вместо+all
можно прописатьall
);-
– знак означает, что письма должны быть отклонены;~
– знак означает, что письма должны быть помечены как спам;?
– нейтральный знак, то есть сообщения должны быть обработаны как обычные письма.
Настройка DKIM
Данная настройка значительно повышает уровень доверия к отправляемым сообщениям. DKIM (DomainKeys Identified Mail) добавляет цифровую подпись в заголовки электронных писем.
Для примера рассмотрим, как произвести настройку DKIM для почтового сервера с доменным именем my-domain.host
. В ходе настройки своего VPS вам нужно будет заменять имя этого домена на своё.
Во-первых, необходимо установить opendkim. Для Centos команда выглядит как:
$ sudo yum install opendkim
В свою очередь для Ubuntu/Debian нужна команда вида:
$ sudo apt install opendkim opendkim-tools
После окончания установки необходимо запустить службу opendkim:
$ sudo systemctl start opendkim
Далее, добавьте её в автозагрузку:
$ sudo systemctl enable opendkim
Следующим шагом в директории /etc/opendkim/keys/
создайте каталог, в котором будут находиться сгенерированные ключи. Не забывайте подставлять доменное имя своего сервера вместо my-domain.host
:
$ cd /etc/opendkim/keys/
$ mkdir -p my-domain.host
Теперь запустите процесс создание ключей:
$ sudo opendkim-genkey --directory /etc/opendkim/keys/my-domain.host/ --domain my-domain.host --selector dkim
Каталогу с ключами необходимо присвоить соответствующие права:
$ sudo chown -R opendkim:opendkim /etc/opendkim/keys/my-domain.host
Далее необходимо внести изменения в файл /etc/opendkim.conf
:
$ cd /etc
$ sudo nano opendkim.conf
В конец этого файла добавьте следующие строки:
AutoRestart Yes
AutoRestartRate 10/1h
Umask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:8891@localhost
Следующим шагом необходимо отредактировать файл TrustedHosts в каталоге /etc/opendkim/. Если его не существует, этой же командой вы создадите его:
$ cd /etc/opendkim/
$ sudo nano TrustedHosts
В него нужно внести имя вашего домена в виде *.my-domain.host
. Файл должен иметь содержание, подобное следующему:
127.0.0.1
localhost
*.my-domain.host
Далее внесите изменения в файл KeyTable
в каталоге /etc/opendkim/:
$ cd /etc/opendkim/
$ sudo nano KeyTable
Необходимо привести его следующему виду:
dkim._domainkey.my-domain.host my-domain.host:dkim:/etc/opendkim/keys/my-domain.host/dkim.private
Теперь отредактируйте файл SigningTable
, также в директории /etc/opendkim/:
$ cd /etc/opendkim/
$ sudo nano SigningTable
Укажите в нём следующее:
*@my-domain.host dkim._domainkey.my-domain.host
Если ваш почтовый сервер работает под Ubuntu/Debian, на нём необходимо указать порт, на котором работает opendkim. Для чего внесите изменения в файл /etc/default/opendkim
:
$ cd /etc/default/
$ sudo nano opendkim
А именно, в конец файла добавьте строку:
SOCKET="inet:8891@localhost"
На следующем этапе в настройки postfix внесите взаимодейстие с DKIM. Для чего выполните следующие команды:
postconf -e 'milter_default_action=accept'
postconf -e 'milter_protocol=2'
postconf -e 'smtpd_milters=inet:127.0.0.1:8891'
postconf -e 'non_smtpd_milters=inet:127.0.0.1:8891'
Для применения новых настроек необходимо перезапустить opendkim
:
$ sudo systemctl restart opendkim
А также – postfix:
$ sudo systemctl restart postfix
И наконец, созданный публичный ключ вам нужно будет внести в список DNS-записей вашего домена. Текст ключа находится в файле /etc/opendkim/keys/my-domain.host/dkim.txt
:
$ cd /etc/opendkim/keys/my-domain.host/
$ sudo cat dkim.txt
Выглядит он примерно следующим образом:
Чтобы добавить DKIM на свой VPS, в списке доменов перейдите в Редактировать DNS-записи
на строке нужного домена и добавьте TXT-запись. В название записи внесите dkim._domainkey
, а в текст – содержимое ключа из файла dkim.txt
:
Нажмите Сохранить
, после чего ещё раз нажмите Сохранить
в списке DNS- записей домена.
Настройка DMARC
Ещё одна настройка, призванная усилить защиту от спамеров, подделывающих адреса отправителей это – DMARC (Domain-based Message Authentication, Reporting and Conformance). DMARC представляет собой набор правил обработки электронных сообщений, которые не прошли авторизацию. Настройка позволяет выбрать порядок работы с такими письмами: либо не делать с ними ничего, либо помещать их в спам, либо просто отклонять.
Для обеспечения работоспособности DMARC необходимо настроить SPF и DKIM. Почтовый провайдер при получении электронного письма проверяет его при помощи SPF и DKIM. Если сообщение не прошло проверку ни по SPF, ни по DKIM, то применяется DMARC-политика.
Настройка DMARC производится в разделе Домены
личного кабинета. В строке нужного домена необходимо перейти в Редактировать DNS-записи
и добавить ещё одну TXT-запись. В поле Название записи
внесите значение _dmarc
, в поле Текст
внесите содержание требуемой политики DMARC. Пример для нашего домена будет выглядеть следующим образом:
v=DMARC1; p=reject; pct=30; rua=mailto:for-reports@my-domain.host
В данном случае значение переменной p
установлено в reject
. Это означает, что сообщения, не прошедшие проверку DMARC, будут отклонены. Выражение pct=30
устанавливает количество отклонённых писем в процентах. Мы задали – 30%. Если переменная pct
отсутствует, процент отклонённых сообщений будет 100. Переменная p
может также принимать значение quarantine
. Это означает, что письма, не прошедшие проверку, будут помечены как спам. А также, к данной переменной применимо значение none
. В таком случае провайдер не будет применять к сомнительным сообщениям никаких действий. Значение none
полезно использовать, если есть необходимость удостовериться в том, что от вашего почтового сервера не идёт нежелательный трафик.
В тексте настройки DMARC присутствует ещё одно значение – rua=mailto:fro-reports@my-domain.host
. Переменная rua
определяет адрес электронной почты, предназначенный для получения отчётов о сообщениях, не прошедших проверку.
Проверка настроек
Для того, чтобы удостовериться, что ваши настройки произведены корректно, вы можете воспользоваться сервисами для проверки SPF, DKIM или просмотра DNS-записей. Ресурсов для таких проверок в сети довольно много. Для примера мы воспользовались некоторыми из них.
Проверку правильности настройки SPF мы произвели на MxToolbox. На сайте сервиса нужно указать имя своего домена и выбрать тип проверки TXT Lookup
. Результат проверки настроек на нашем домене выглядел следующим образом:
Ещё на одном сайте подобного типа мы проверили настройки DKIM. Здесь на вкладке Tools
следует выбрать DKIM Inspector
, указать имя домена и селектор (dkim
):
Настройку DMARC также можно произвести на одном из ресурсов, которые позволяют это сделать. Например, ivit.pro. В разделе Инструменты
мы выбрали DMARC-тест
, указали имя нашего почтового домена и после запуска теста получили результат: