Вопрос или проблема
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-подписи, что указывает на то, что подпись отсутствует полностью.
Возможные причины
-
Ошибочная настройка SigningTable:
- В ваших конфигурациях присутствует строка
*@domain.tld sendonly._domainkey.domain.tld
, однако "подписывающая таблица" (Signing Table) может работать неправильно, если не сделано соответствие правил регулярных выражений. Использование символов маскировки, таких как*
, может быть неправильно обработано.
- В ваших конфигурациях присутствует строка
-
Ошибки в KeyTable:
- Убедитесь, что путь к приватному ключу в KeyTable правильный. Проверьте наличие файла
/etc/opendkim/keys/domain.tld/sendonly.private
и убедитесь в его читабельности.
- Убедитесь, что путь к приватному ключу в KeyTable правильный. Проверьте наличие файла
-
Не загружается конфигурация OpenDKIM:
- Перезапустите OpenDKIM. Иногда изменения в конфигурации OpenDKIM, такие как обновление key.table или signing.table, требуют перезагрузки службы для применения.
-
Проверка DNS записи:
- Убедитесь, что DNS TXT запись действительно доступна в интернете и имеет корректное значение. Используйте инструменты командной строки, такие как
dig
, чтобы убедиться, что ключ DNS правильно опубликован.
- Убедитесь, что DNS TXT запись действительно доступна в интернете и имеет корректное значение. Используйте инструменты командной строки, такие как
-
Логирование и отладка:
- Увеличьте уровень логирования OpenDKIM, чтобы отследить возможные ошибки в процессе подписи сообщений.
Решение
- Проверьте правильность каждого пункта выше. Также рекомендуется временно убрать символы маскировки (
*
) изsigning.table
, чтобы исключить ошибочную интерпретацию шаблона. - Перезапустите службы Postfix и OpenDKIM, чтобы убедиться, что все изменения применены. Для этого выполните команды:
sudo systemctl restart opendkim
sudo systemctl restart postfix
- После внесения изменений отправьте тестовое письмо и повторно проверьте заголовки на соответствие DKIM-подписи.
Заключение
Данная проблема часто связана с незначительными ошибками в конфигурации, их исправление поможет обеспечить корректную DKIM-подпись. В дополнение, всегда проверяйте актуальность версий программного обеспечения, которые вы используете, они могут содержать важные обновления и исправления. Эти шаги помогут вам поддерживать безошибочную работу вашей электронной почты и продемонстрируют ваш профессионализм в области IT.