Журнал почты указывает на существование DKIM-ключа, но почтовый сервер возвращает ‘none’.

Вопрос или проблема

mail.log указывает, что сообщение успешно отправлено через postfix с ключом шифрования

51BA5DD451: message-id=<[email protected]>
51BA5DD451: no signing table match for '[email protected]'
51BA5DD451: from=<[email protected]>, size=380, nrcpt=1 (очередь активна)
Доверенное TLS-соединение установлено с in1-smtp.someengine.com[111.222.333.444]:25: TLSv1.3 с шифром TLS_AES_256_GCM_SHA384 (256/256 бит) обмен-ключами X25519 серверная подпись RSA-PSS (2048 бит) серверный дайджест SHA256
51BA5DD451: to=<j@[...]>, реле=in1-smtp.someengine.com[111.222.333.444]:25, задержка=3.3, задержки=0.03/0.02/2.9/0.43, dsn=2.0.0, статус=отправлено (250 2.0.0 Ok: очереди как 649FE2EA00D1)
51BA5DD451: удалено

Тем не менее, заголовки сырого email показывают:
Authentication-Results: phl-mx-07.someengine.com; dkim=none (no signatures found);

/etc/opendkim.conf содержит

KeyTable           refile:/etc/opendkim/key.table
SigningTable       refile:/etc/opendkim/signing.table

содержимое /etc/opendkim/signing.table

 *@domain.tld     sendonly._domainkey.domain.tld
 *@*.domain.tld   sendonly._domainkey.domain.tld

содержимое /etc/opendkim/key.table

sendonly._domainkey.domain.tld    domain.tld:sendonly:/etc/opendkim/keys/domain.tld/sendonly.private  # ключ существует

запись DNS TXT для sendonly._domainkey существует
v=DKIM1; h=sha256; k=rsa; p=MIIBIjA[...]

Где отсутствует конфигурация DKIM/postfix?

Ответ или решение

Для решения проблемы с DKIM, где почтовый лог указывает, что DKIM-ключ существует, но MX-сервер возвращает "none", необходимо обратить внимание на несколько важных деталей конфигурации OpenDKIM и Postfix.

Проблема

Проблема заключается в том, что на стороне отправителя сообщение отправляется без ошибок и шифруется с использованием TLS, однако при проверке на стороне получателя нет DKIM-подписи, что указывает на то, что подпись отсутствует полностью.

Возможные причины

  1. Ошибочная настройка SigningTable:

    • В ваших конфигурациях присутствует строка *@domain.tld sendonly._domainkey.domain.tld, однако "подписывающая таблица" (Signing Table) может работать неправильно, если не сделано соответствие правил регулярных выражений. Использование символов маскировки, таких как *, может быть неправильно обработано.
  2. Ошибки в KeyTable:

    • Убедитесь, что путь к приватному ключу в KeyTable правильный. Проверьте наличие файла /etc/opendkim/keys/domain.tld/sendonly.private и убедитесь в его читабельности.
  3. Не загружается конфигурация OpenDKIM:

    • Перезапустите OpenDKIM. Иногда изменения в конфигурации OpenDKIM, такие как обновление key.table или signing.table, требуют перезагрузки службы для применения.
  4. Проверка DNS записи:

    • Убедитесь, что DNS TXT запись действительно доступна в интернете и имеет корректное значение. Используйте инструменты командной строки, такие как dig, чтобы убедиться, что ключ DNS правильно опубликован.
  5. Логирование и отладка:

    • Увеличьте уровень логирования OpenDKIM, чтобы отследить возможные ошибки в процессе подписи сообщений.

Решение

  • Проверьте правильность каждого пункта выше. Также рекомендуется временно убрать символы маскировки (*) из signing.table, чтобы исключить ошибочную интерпретацию шаблона.
  • Перезапустите службы Postfix и OpenDKIM, чтобы убедиться, что все изменения применены. Для этого выполните команды:
sudo systemctl restart opendkim
sudo systemctl restart postfix
  • После внесения изменений отправьте тестовое письмо и повторно проверьте заголовки на соответствие DKIM-подписи.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...