Настройка DMARC в связке с Postfix.
DMARC (Domain-based Message Authentication, Reporting and Conformance) — это интернет стандарт (RFC 7489), который позволяет владельцам доменов предотвращать использование их доменных имён для рассылки поддельных писем. До появления DMARC злоумышленники могли легко использовать чужое доменное имя в адресе отправителя.
Протокол DMARC предлагает владельцам доменов три варианта действий, чтобы указать, как они хотят относиться к письмам, признанным подозрительными после проверки:
p=none
: письмо обрабатывается так же, как и без проверки DMARC.p=quarantine
: письмо принимается, но помещается в папку, отличную от папки Входящие, например, в папку Спам.p=reject
: письмо просто отклоняется.
Схема:

Ниже рассмотрим как установить и настроить OpenDMARC в связке с Postfix.
Установка
apt-get install opendmarc -y
На вопрос настроить базу данных для OpenDMARC с помощью dbconfig-common
, можно смело выбрать Нет. Настройка базы данных для OpenDMARC нужна только в том случае, если вы хотите создавать отчёты DMARC для других провайдеров почтовых ящиков.

Настройка
Создаем на всякий случай копию файла конфигурации opendmarc.conf
:
cp /etc/opendmarc.conf /etc/opendmarc.conf.orig
Файл конфигурации OpenDMARC /etc/opendmarc.conf
должен выглядеть следующим образом:
# This is a basic configuration that can easily be adapted to suit a standard
# installation. For more advanced options, see openmarc.conf(5) and/or
# /usr/share/doc/opendmarc/examples/opendmarc.conf.sample.
AuthservID OpenDMARC
TrustedAuthservIDs smtp.contoso.ru
PidFile /run/opendmarc/opendmarc.pid
PublicSuffixList /usr/share/publicsuffix/public_suffix_list.dat
Socket local:/var/spool/postfix/opendmarc/opendmarc.sock
Syslog true
SyslogFacility mail
UMask 0002
UserID opendmarc
RejectFailures true
SPFIgnoreResults true
SPFSelfValidate true
IgnoreAuthenticatedClients true
IgnoreHosts /etc/opendmarc/ignore.hosts
HistoryFile /run/opendmarc/opendmarc.dat
Пояснения:
- AuthservID — Задает параметр «authserv-id» для использования при создании поля заголовка Authentication-Results: после проверки сообщения. По умолчанию используется имя MTA, обрабатывающего сообщение.
- TrustedAuthservIDs — Предоставляет список идентификаторов authserv, которые должны использоваться для идентификации полей заголовка результатов аутентификации, содержимое которых следует считать допустимыми входными данными для оценки DMARC. Чтобы предоставить список, разделите значения запятыми.
- PublicSuffixList — Указывает путь к файлу, содержащему домены верхнего уровня (TLD), которые будут использоваться для вычисления организационного домена для заданного доменного имени, как описано в спецификации DMARC. Если этот параметр не указан, фильтр не сможет определить организационный домен, и будет оцениваться только указанный домен.
- RejectFailures — Если этот параметр установлен, сообщения будут отклоняться, если они не проходят проверку DMARC, или помечаться как временно отклоненные, если проверка не может быть завершена. По умолчанию ни одно сообщение не будет отклонено или помечено как временно отклоненное, независимо от результатов проверки DMARC. Вместо этого будет добавлено поле заголовка Authentication-Results.
- SPFIgnoreResults — Заставляет фильтр игнорировать любые результаты проверки SPF в заголовке сообщения. Это полезно, если вы хотите, чтобы фильтр сам выполнял проверку SPF, или если вы не доверяете входящему заголовку.
- SPFSelfValidate — Заставляет фильтр выполнять резервную проверку SPF самостоятельно, если в заголовке сообщения не удается найти результаты SPF. Если также задано SPFIgnoreResults, фильтр никогда не ищет результаты SPF в заголовках и всегда выполняет проверку SPF самостоятельно, если задано это значение.
- IgnoreAuthenticatedClients — Если установлено, то фильтр будет игнорировать почту от аутентифицированных клиентов (т. е. тех, кто использовал SMTP AUTH).
- IgnoreHosts — Указывает путь к файлу, содержащему список имён хостов, IP-адресов и/или выражений CIDR, определяющих хосты, SMTP-подключения которых должны игнорироваться фильтром.
Создаем необходимый каталог /var/spool/postfix/opendmarc
для размещения сокета opendmarc
и назначаем соотвествующие права на каталог:
mkdir -p /var/spool/postfix/opendmarc
chown opendmarc:opendmarc -R /var/spool/postfix/opendmarc
chmod 750 -R /var/spool/postfix/opendmarc/
Добавляем пользователя postfix
в группу opendmarc
:
adduser postfix opendmarc
Белый список OpenDMARC
Если вы хотите разрешить другому серверу пересылать электронные письма через порт 25 вашего основного почтового сервера, на котором работает OpenDMARC, вам следует внести IP-адрес другого сервера в белый список OpenDMARC, поскольку OpenDMARC будет проверять домен From:
в пересылаемых электронных письмах.
Создаем каталог OpenDmarc:
mkdir /etc/opendmarc
Создаем файл доверенных хостов /etc/opendmarc/ignore.hosts
со следующим содержимым:
127.0.0.1
localhost
По завершению настройки, перезагружаем службу OpenDMARC:
systemctl restart opendmarc
Подключение OpenDMARC к Postfix
В файле конфигурации /etc/postfix/main.cf добавляем следующие строки:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:opendmarc/opendmarc.sock
non_smtpd_milters = $smtpd_milters
Если уже настроен OpenDKIM, то в файле /etc/postfix/main.cf должны быть строки, как показано ниже:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:opendkim/opendkim.sock,local:opendmarc/opendmarc.sock
non_smtpd_milters = $smtpd_milters
Сохраняем и перезапускаем Postfix, чтобы изменения вступили в силу:
systemctl restart postfix
Тестирование OpenDMARC с помощью Telnet
С помощью telnet
можно подменить другое доменное имя, например paypal.com
и проверить как отработает DMARC проверка.
telnet mail.yourdomain.ru 25
Затем выполняем следующие действия, чтобы отправить поддельное электронное письмо. (Вводим только отмеченные ниже строки):
HELO mail.paypal.com
250 mail.yourdomain.com
MAIL FROM:<help@paypal.com>
250 2.1.0 Ok
RCPT TO:<someone@yourdomain.com>
250 2.1.5 Ok
DATA
354 End data with .
From: help@paypal.com
To: someone@yourdomain.com
Subject: Please update your password.
Click this link to update your password.
.
550 5.7.1 rejected by DMARC policy for paypal.com
Видим что, почтовый сервер отклонил это письмо, потому что оно не прошло проверку DMARC, а PayPal применил политику p=reject
.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.