AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1142318
Accepted
artfulrobot
artfulrobot
Asked: 2023-08-24 22:01:07 +0800 CST2023-08-24 22:01:07 +0800 CST 2023-08-24 22:01:07 +0800 CST

Exim 对 DKIM 验证出现误报

  • 772

我使用 exim4 的邮件服务器有一个 ACL 来检查 DKIM 签名。它接受所有内容,但会记录失败并写入包含结果的标头。

我正在从另一台服务器发送邮件,我相信该服务器正确添加了 DKIM 签名。(例如,我已将邮件发送到 gmail 和 Outlook 地址,检查了标头,这两个系统都给了 DKIM 通过。)但是我的邮件服务器说bodyhash_mismatch。

我的邮件服务器并不总是说 DKIM 失败。

这是一封电子邮件。我已经更改了域:

  • example.org这是主要组织的域;它用在From:标头中,是签名者域。公钥在 DNS 中发布。
  • sender.example.org这是发送电子邮件、创建 DKIM 标头的服务器。这是返回路径标头。
  • receive.example.org这是我的邮件服务器的域,正在其中验证 DKIM。这是X-dkim-check添加标题的地方,下面的文本domain=来自$dkim_cur_signer
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from mail.receiver.example.org
    by mail.receiver.example.org with LMTP
    id t8rHGepc52SOVA8ADCPZSA
    (envelope-from <[email protected]>)
    for <[email protected]>; Thu, 24 Aug 2023 14:36:42 +0100
Received: from sender-rdns.example.org ([1.2.3.4] helo=sender.example.org)
    by mail.receiver.example.org with esmtps  (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    (Exim 4.94.2)
    (envelope-from <[email protected]>)
    id 1qZAVv-004DMU-00
    for [email protected]; Thu, 24 Aug 2023 14:36:42 +0100
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
    d=example.org; s=220151210; h=Sender:Message-Id:Subject:From:To:Date:
    Reply-To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:
    Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
    :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:
    List-Subscribe:List-Post:List-Owner:List-Archive;
    bh=ecGWgWCJeWxJFeM0urOVWP+KOlqqvsQYKOpYUP8nk7I=; b=GTY2HZVje81tRJ0/xKFNUk5d7/
    9wE7CGtwmz2APM5VTDKY6q+qIbwhCRNzc6IWZ4j0Y9FOtnuVBeNR1I5xbOuqPaf62MYQZJFjLQ3/J
    PNpOpS3i1Yd3NCZUs1iB/Q8N+ii73FrvD5k1AA8F5yzJhVeaposgbkvU5vv1s/KgqTIA=;
Received: from localhost ([127.0.0.1] helo=sender.example.org)
    by sender.example.org with esmtp (Exim 4.96)
    (envelope-from <[email protected]>)
    id 1qZAVt-001EhO-2k
    for [email protected];
    Thu, 24 Aug 2023 14:36:41 +0100
Date: Thu, 24 Aug 2023 14:36:41 +0100
To: [email protected]
From: [email protected]
Subject: test Thu, 24 Aug 2023 14:36:41 +0100
Message-Id: <[email protected]>
X-Mailer: swaks v20201014.0 jetmore.org/john/code/swaks/
Sender: [email protected]
X-dkim-check: DKIM test failed: (domain=example.org), signature is bad.

This is a test mailing

如何调试为什么 exim onreceiver.example.org认为签名不好?

(我注意到 DKIM 签名包含许多不存在的标头。这可能是一个原因吗?)

编辑:添加详细信息:

  • 签名 exim:4.96-15+deb12u1。
  • 接收exim:4.94.2-7~bpo10+1
exim
  • 1 1 个回答
  • 46 Views

1 个回答

  • Voted
  1. Best Answer
    anx
    2023-08-24T23:52:21+08:002023-08-24T23:52:21+08:00

    我不认为“不好”消息表达了签名无法验证的任何特定原因。配置正确的 Authentication-Results 标头:中继exim通过告诉您的所有内容$dkim_verify_reason。

    尝试查明哪些消息失败,我记得其他验证程序仅在某些消息或消息部分大小(块对齐,<=16KiB,>=16MiB..您的测试消息看起来很小)或行长度(您的测试消息看起来很整齐,尽管折叠起来很不寻常)。

    另外,比较发送时的消息源(理想情况下,因为它是单独上传到Sent邮箱的)。它可能有一些语法问题,在收到时已被丢弃,但对于签名来说很重要。

    想法:

    • 我在签名中看到一个尾随分号,并且在最终 b= 标记之前没有折叠,这有点不常见 - 测试较少,并且可能不是消息签名时的样子。
    • 我还看到现代 TLS 版本与古老的 exim 版本一起使用( “版本 4.96 之前的所有版本的 Exim现在都已过时。”)。我想知道您使用的分销商版本是否缺少上游已应用的相关修复。

    我怀疑后者导致了你的问题,因为到目前为止Debian oldstable还没有应用这个补丁。如果是这样,它应该主要影响通过 BDAT over TLS 传输的小消息。

    1. 更新到最新版本的 exim - 可能需要 Debian 升级,因为您已经在向后移植 -或者
    2. 阅读或归档 Debian bug 报告,缺少的修复(链接到准备在 4.94.2 上应用的精心挑选的版本)我怀疑错误可能被认为值得拉动,如果确实在这里有错误 -或
    3. 完全禁用分块支持(RFC 3030),如果这适合您的用例 -空 chunking_advertise_hosts = 不会向任何人宣布 BDAT 可用性,这应该可以解决问题 - 对于大消息来说可能会产生显着的性能成本。
    • 1

相关问题

  • Postfix 或 exim:自动/程序化和转发电子邮件设置

  • 将所有(未被拒绝的)垃圾邮件重定向到 sa-exim 中的特殊邮箱

  • 设置 Exim 转发邮件

  • 我可以在 Exchange 2007 的服务器端强制执行邮件规则吗?

  • 用于从多个 IP 地址发送电子邮件的 Linux 电子邮件服务器

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve