Более 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 - zextraszmprov mcf +zimbraMtaRestriction "reject_unknown_client_hostname"
postfix reload

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

По всем вопросам, связанным c Zextras Suite и коммерческой версией Carbonio, вы можете обратиться к Представителю компании «Zextras» Екатерине Триандафилиди по электронной почте ekaterina.triandafilidi@zextras.com.

Комментарии (2)


  1. Paraleks
    26.04.2022 17:35
    +1

    Добрый день!

    Попробовали поставили на тестовую машину.

    Carbonio, к сожалению, пока не кажется законченным продуктом.

    Под капотом Zimbra, но если тема от Zextras для Zimbra - гуд, то здесь интерфейс выглядит каким-то "убогим". Возможно данное впечатление создается из-за того, что мы смотрели на десктопе. Не все элементы интерфейса работали нормально. Скажем так, некоторые не работали.

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

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

    Спасибо.

    Надеюсь продукт допилят до нормального состояния. Следим за Carbonio с надеждой...


    1. Zextras Автор
      26.04.2022 17:44

      Здравствуйте, Carbonio Community Edition в процессе дополнений фунционала. На форуме Zextras есть роадмап. Для Carbonio Community Edition демо сайт делать не планируем. Интерфейс это дело вкуса. Мы в компании Zextras уже несколько месяцев используем коммерческую версию Carbonio и нас и наших заказчиков все устраивает. Масса настроек и возможностей. Для конкретных заказчиков, кто заинтересован в покупке коммерческой версии Carbonio есть демо стенд, где можно тестировать пользовательский интерфейс. К админке доступ не даем.

      Официальный эксклюзивный дистрибьютор Zextras в Российской Федерации и странах СНГ www.svzcloud.ru

      Если остались вопросы- пишите дистрибьютору и они Вас проконсультируют по всем вопросам.

      Админ интерфейс сейчас не родной, но он уже в разработке и к концу года Zimbra админ интерфейс будет заменён на Carbonio интерфейс для Администраторов.

      Спасибо большое за Ваш отзыв.Так же в веб интерфейсе Carbonio есть возможность написать отзыв напрямую разработчику с скринами.