Как стать автором
Обновить
95.1
Zextras
Цифровое рабочее место Zextras

Настройка DKIM, SPF, DMARC и rDNS в Carbonio

Время на прочтение6 мин
Количество просмотров8.3K

Более 90% от общего объема мирового трафика электронной почты сейчас составляет спам. Это побуждает системных администраторов и держателей публичных почтовых серверов максимально крепко закручивать гайки и  отклонять электронные письма даже при малейших подозрениях на их неблагонадежность. Чтобы электронное письмо, отправленное с вашего почтового сервера с большой вероятностью дошло до адресата, у вашего сервера должны быть настроены DKIM, SPF, DMARC и rDNS. Эти механизмы позволяют принимающим почту серверам автоматически отсеивать электронные письма без анализа их содержимого. В данной статье мы расскажем о том, как корректно настроить DKIM, SPF, DMARC и rDNS в Carbonio.

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

Reverse DNS (rDNS) - обратная DNS-запись, предназначенная для определения имени узла по его IP-адресу c помощью PTR-записи. В настоящее время является обязательным требованием у большинства публичных почтовых серверов

Главным симптомом того, что один из этих параметров почты настроен неверно является ошибка 550, которая является стандартной при возникновении критической ошибки почтовой сессии. К примеру в ответ на отправку письма на почтовый адрес GMail с сервера без настроенных DKIM, SPF, DMARC или rDNS, его пользователи получат сообщение следующего вида:

gmail-smtp-in.l.google.com: 550-5.7.1 [94.247.17.253 12] Our system has detected that this message is 550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to Gmail, 550-5.7.1 this message has been blocked.

После корректной настройки данных параметров подобная ошибка возникать не будет.

Настройка DKIM

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

Для настройки DKIM в Carbonio необходимо сперва доустановить пакет sudo apt-get install libxml-simple-perl. После этого необходимо войти в учетную запись Zextras и запустить скрипт для создания ключа DKIM:

sudo su - zextras
/opt/zextras/libexec/zmdkimkeyutil -a -d example.ru

Отметим, что в параметре -d необходимо указывать именно почтовый домен, а не имя сервера. В Carbonio имя создаваемого при установке почтового домена основано на MX-записи в DNS. К примеру, на сервере mail.example.ru автоматически будет создан домен example.ru, если в DNS указана соответствующая MX-запись. В случае, если MX-запись отсутствует, имя почтового домена попросту будет на один уровень ниже, чем имя сервера.

Публичный ключ добавляется как TXT-запись в DNS-запись домена, и, поскольку Carbonio генерирует 2048-битный ключ, он может попросту не влезть в одну строку из-за ограничения на длину строки, которое составляет 255 символов. Чтобы обойти это ограничение, просто перенесите оставшуюся часть ключа в новую строку с помощью клавиши Enter. 

Делать TXT-запись следует в следующем формате.

2479CC9C-BEFB-11EC-AADD-1D8D30B16863._domainkeyTXTv=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArE45c7ZFvA/X5mC4aI25hjaUxTU0Th07A+avu2zM+a/DvcVyN8ot4KgU+bIFP2RmF5qBfjj/uVoVuOtfD8qJt0YfHsKgIi+k5Ss89FYxBvw/f1ph9VSmXMcd5gSzFUqBLgWjxSYZnrsgOU+uFpZaiB232U7zJn/zinfkGHBR0V8NwP7aFFlvLnsePG8HIkIYukpbaR/Ngd9yVA

Корректность настройки DKIM можно сделав запрос к DNS при помощи следующих команд:

  1. Успешное извлечение ключа домена: host -t txt SELECTOR._domainkey.example.ru

  2. Проверка соответствия закрытого ключа открытому: opendkim-testkey -d example.ru -s 2479CC9C-BEFB-11EC-AADD-1D8D30B16863 -x /opt/zextras/conf/opendkim.conf.

Корректность настройки DKIM можно также проверить с помощью онлайн-сервисов http://dkimcore.org/tools/keycheck.html и https://mxtoolbox.com/DKIM.aspx.

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

  • Обновление - /opt/zextras/libexec/zmdkimkeyutil -u -d example.ru

  • Удаление - /opt/zextras/libexec/zmdkimkeyutil -r -d example.ru

  • Извлечение - /opt/zextras/libexec/zmdkimkeyutil -q -d example.ru

Отметим, что в случае удаления ключей DKIM, необходимо в соответствующей TXT-записи DNS сделать параметр "p=", в котором хранится публичный ключ домена, пустым.

Включение проверки DKIM

Также имеется возможность настроить проведение проверки DKIM на самом сервере Carbonio, чтобы каждое входящее письмо, которое не имеет ключей домена, автоматически отклонялось. Для этого откройте в текстовом редакторе файл /opt/zextras/conf/opendkim.conf.in и приведите следующие строки к такому виду:

On-NoSignature reject
Mode sv

После этого перезапустите службу OpenDKIM zmopendkimctl restart. После этого все письма от отправителей без ключей домена будут автоматически отклоняться. 

Настройка SPF

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

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

example.ru IN TXT "v=spf1 a mx ip4:128.226.145.28 include:mail.example.ru -all"

В данной записи указывается, что все входящие электронные письма с домена example.ru должны быть отправлены с сервера с IP-адресом 128.226.145.28, а также со всех связанных с ним A- и MX-записей в DNS, включая mail.example.ru как разрешенного отправителя. Все, что противоречит этим данным, свидетельствует о ненадежности отправителя и, соответственно, может быть автоматически отсеяно сервером адресата.

Настройка DMARC

DMARC - это механизм, который позволяет системному администратору определять политику взаимодействия с письмами, которые не прошли проверку. Для его настройки также требуется создание TXT-записи в DNS, которая состоит из нескольких полей:

  • v - Версия протокола. Обязательный параметр. Например v=DMARC1;

  • p - Правила для домена. Обязательный параметр. Например p=reject;

  • pct - Какой процент сообщений фильтроваться. Необязательный параметр, по умолчанию pct=100;

  • rua - Адрес для отправки отчетов. Необязательный параметр. Например, rua=mailto:postmaster@example.ru;

  • sp - Правила для поддоменов. Необязательный параметр. Например, sp=reject;

  • aspf - Правила проверки соответствия для записей SPF. Необязательный параметр. Например, aspf=r;

  • adkim - Правила проверки DKIM. Необязательный параметр. Например, adkim=r.

В нашем случае DMARC запись будет выглядеть следующим образом: v=DMARC1; p=reject; rua=mailto:postmaster@example.ru; adkim=r; aspf=r; pct=100; sp=reject

Также запись DMARC для DNS можно сгенерировать с помощью данного онлайн-сервиса https://www.kitterman.com/dmarc/assistant.html. Проверить настройки DMARC можно с помощью онлайн-сервиса https://dmarcian.com/dmarc-inspector.

Настройка rDNS (reverse DNS)

Настраивать обратную зону DNS может только владелец спектра IP-адресов, которым эта зона соответствует. Обычно им является провайдер, которому выделяется целый пул IPv4-адресов и у которого имеется собственная автономная система DNS. Поэтому если вы не являетесь собственником IP-адресов, на которых работает ваш DNS-сервер, обратитесь в службу службу поддержки провайдера или хостера для создания rDNS.

Если же вы являетесь владельцем IP-адресов и можете зарегистрировать обратную зону DNS, то вам сперва следует зарегистрировать в своём личном кабинете на сайте RIPE объект типа «domain», указать адрес DNS-серверов, которые будут поддерживать зону rDNS. 

После этого на своих DNS-серверах настройте зону вида in-addr.arpa. Для того, чтобы точно определить название зоны, возьмите IP-адрес своего почтового сервера (Например 10.0.1.55), разверните их слева направо, чтобы получилось 55.1.0.10 и добавьте суффикс .in-addr.arpa. На сервера, находящиеся в обратной зоне, указывает PTR-запись DNS (pointer). Именно к ней идут запросы о разрешении IP-адреса и имени хоста. В итоге rDNS-запись для нашего сервера будет иметь вид 55.1.0.10.in-addr.arpa IN PTR mail.example.ru.

Проверить наличие rDNS можно при помощи команды dig -x 10.0.1.55.

Включение проверки rDNS на сервере Carbonio

Включить проверку rDNS можно как в Консоли администратора, так и в командной строке Carbonio. 

В Консоли администратора перейдите в Настройка - Глобальные настройки - Агент передачи сообщений и в поле "Проверки через DNS" отметьте галочкой параметр IP-адрес клиента (reject_unknown_client_hostname).

Настройка в командной строке осуществляется при помощи команд:

sudo su - zextras
carbonio prov mcf +zimbraMtaRestriction "reject_unknown_client_hostname"
postfix reload

Отключить данную проверку можно сняв соответствующую галочку в Консоли администратора, а также командой carbonio prov mcf -zimbraMtaRestriction "reject_unknown_client_hostname".

Эксклюзивный дистрибьютор Zextras SVZcloud. По вопросам тестирования и приобретения Zextras Carbonio обращайтесь на электронную почту: sales@svzcloud.ru

Теги:
Хабы:
Всего голосов 2: ↑1 и ↓10
Комментарии2

Публикации

Информация

Сайт
zextras.com
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Индия
Представитель
Триандафилиди Екатерина