517 April 3, 2022, 11:30 a.m.

Настройка PTR, SPF, DKIM, DMARC

Задачи:

  1. Настроить обратную DNS-зону.
  2. Настроить политику SPF.
  3. Настроить подпись DKIM.
  4. Настроить политику DMARC.
  5. Вывод домена из спам-листов.
  6. Проверить с помощью mail-tester.

PTR запись необходима для правильной работы почтового сервера. Должны быть правильно настроено имя сервера (А-запись) и обратная запись (PTR) для IP сервера. Записи типа PTR устанавливают соответствие IP- адресов именам. Её можно настроить в личном кабинете интернет-провайдера или на своем сервере, если он есть и настроен. Нужно указать имя, которое указывали при настройке параметра myhostname, если это postfix

Записи SPF (Sender Policy Framework) позволяют владельцам доменов указывать, каким хостам разрешается отправлять электронную почту от имени их доменов. Обычно протокол SMTP позволяет любому компьютеру отправлять сообщения электронной почты от имени какого угодно отправителя. Таким образом спамеры могут легко отправлять сообщения электронной почты с поддельным адресом отправителя. SPF позволяет владельцам домена с помощью текстовых записей DNS специального формата указывать, какие компьютеры или хосты имеют право передавать электронную почту в этом домене, затрудняя таким образом подделку адреса отправителя. Для настройки нужно добавить TXT запись

@ IN TXT v=spf1 a mx ip4:1.1.1.1 ~all

где 1.1.1.1 IP почтового сервера

DomainKeys Identified Mail — метод E-mail аутентификации. DKIM использует внешние модули для поиска ключей и пересылки писем. Технология DKIM используется для предотвращения спуфинга, то есть подделки заголовка письма. DKIM (DomainKeys Identified Mail) — это цифровая подпись, которую почтовый сервер добавляет к письмам от отправителей из обслуживаемых им доменов. Для этого сервер использует секретную часть ключа, которая известна только ему. Получатель может проверить подпись письма при помощи публичной части ключа, доступной через DNS-запись домена отправителя. Нужно понимать, что DKIM не защищает от подделки отправителя и не может являться гарантией того, что письмо является полезным и безопасным, т.е. не содержит спама и вирусов. DKIM лишь удостоверяет, что почтовый сервер уполномочен владельцем домена на обслуживание почты, исходящей из этого домена. Спамеры вполне могут приобрести домен, настроить DNS и почтовый сервер для отправки писем с DKIM-подписью. Однако это требует финансовых затрат, а источник спама при этом легко идентифицировать и заблокировать. Спамеры же стараются зарабатывать деньги, оставаясь анонимными. Поэтому письмо, имеющее правильную DKIM-подпись, можно с высокой степенью достоверности считать полезным и безопасным.

Потребуется скачать и установить два пакета.

apt-get install opendkim opendkim-tools

Создаем катало для ключей.

mkdir /etc/opendkim
chown opendkim:opendkim /etc/opendkim
chmod 750 /etc/opendkim

Переименовываем исходный файл настроек и создаем новый занося строки ниже.

mv /etc/opendkim.conf /etc/backup.opendkim.conf
nano /etc/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:12301@localhost

Создаем файл доверенных узлов и вносим следующие строки. В данный файл мы заносим все IP-адреса и сети почтовых серверов, которые могут использовать наш сервер как почтовый релей. Таким образом, если в вашей системе используется подобная конфигурация, в файл TrustedHosts мы должны добавить адреса данных почтовых серверов.

nano /etc/opendkim/TrustedHosts
127.0.0.1
localhost

Создаем конфигурационные файлы:

touch /etc/opendkim/SigningTable
touch /etc/opendkim/KeyTable

Комментируем строку SOCKET=inet:12301@localhost в файле /etc/default/opendkim Запускаем opendkim

systemctl enable opendkim
systemctl start opendkim

ВАЖНО: в некоторых случаях после запуска службы в логах почты будет писать «connection refuse» и подписывать письма не будет в таком случае проблему может решить перезагрузка сервера целиком. Добавляем строки в файл nano /etc/postfix/main.cf

milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301

Перезагружаем почту

systemctl restart postfix

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

mkdir /etc/opendkim/example.com

Генерируем ключ

opendkim-genkey -D /etc/opendkim/example.com/ --domain example.com --selector mail

В папке появится два файла, тот что с расширением TXT – готовая DNS запись которую нужно внести. ВАЖНО: если используются DNS сервера регистратора тогда нужно вносить текс ключа БЕЗ ковычек

На файл mail.private выставляем права

chmod 600 /etc/opendkim/example.com/mail.private

Добавляем домен в файле TrustedHosts строку

nano /etc/opendkim/TrustedHosts
*.examble.com

Добавляем в файл KeyTable строку

nano /etc/opendkim/KeyTable
mail._domainkey.example.com example.com:mail:/etc/opendkim/example.com/mail.private

Добавляем в файл SigningTable строку

nano /etc/opendkim/ SigningTable
*@example.com mail._domainkey.example.com

После настройки DKIM нужно настроить политику DMARC которая определяет, что делать с письмами, не прошедшими проверку. Для этого создается запись TXT

_dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:[email protected]" 

Письма, не прошедшие проверку, будут отклоняться и соответствующее уведомление придет на почту. Для начала можно настроить p=none чтобы все письма проходили, но уведомления о непрошедших приходили на почту. После того когда всё готово остаеться проверить наличие адреса в спам фильтрах, для этого есть ресурс , чтобы вывести домен из черного списка нужно написать на сайт «фильтра» в соответствующую форму. Через некоторое время доме будет удален из спам листа. Когда всё настроено и прошло некоторое время, чтобы DNS записи вступили в силу. Нужно проверить сервер на наличие недочетов, для этого подходят сервисы:

ВАЖНО: бесплатно можно проверяться только 3 раза в сутки, смена IP позволяет добавить еще 3 попытки.

Если какой-то из этапов настройки выше сделан не верно данные сервисы об этом скажут. Не забывайте о лог файле почты, он тоже скажет куда нужно посмотреть, чтобы решить ту или иную проблему.

Источники