我最近收到了很多反弹。
我以为我的 google 应用程序帐户已被盗用,但我的应用程序帐户上没有活动,当然也看不到恶意用户。
由于电子邮件总是从某个随机用户名(例如 onSecNtV1@mydomain.com)发送,我试图找到一种禁止未注册用户发送电子邮件的方法。我找不到任何东西。
让我担心的是,该消息具有 X-Google-DKIM 签名,并且显示“Google 试图传递您的消息”。这是否意味着电子邮件来自我信任的客户?(我只用gmail)
AFAIK 垃圾邮件发送者可以随意欺骗电子邮件的每个字段,但 DKIM 应该让(现代)服务器丢弃这些无法验证的电子邮件。
知道泄漏在哪里吗?
这是一个反弹的例子:
Delivery to the following recipient failed permanently:
spoonbillzi7@etisbew.com
Technical details of permanent failure: Google tried to deliver your
message, but it was rejected by the server for the recipient domain
174.133.125.2 [174.133.125.2].
The error that the other server returned was: 553 sorry, that domain
isn't in my list of allowed rcpthosts; no valid cert for gatewaying
(#5.7.1)
----- Original message -----
X-Google-DKIM-Signature: v=1; a=rsa-sha256; …Run Code Online (Sandbox Code Playgroud) 我想知道我是否可以简单地将 4096 位 RSA 密钥用于 DKIM(在 DNS TXT 记录中)。
是否有任何缺点(忽略计算工作)?
也许有些邮件服务器无法处理这么大的密钥?
另外:是否有使用大于 2048 位的 RSA 密钥的大型邮件提供商?谷歌、雅虎和微软似乎都使用 2048 位密钥。
我已经安装了一个带有 postfix 和 spamassassin 的 Debian (jessie) 盒子。配置好,一切正常。
除非收到带有 DKIM 签名的邮件,T_DKIM_INVALID即使签名有效也会产生一个标志。请参阅下面的日志示例。
之后,opendkim 会验证签名并让它通过。
Jan 15 14:18:21 localhost spamd[30697]: spamd: connection from localhost [127.0.0.1]:51740 to port 783, fd 5
Jan 15 14:18:21 localhost spamd[30697]: spamd: processing message <id#1234567@mail.gmail.com> for user
Jan 15 14:18:21 localhost spamd[30697]: spamd: clean message (-2.0/5.0) for user in 0.2 seconds, 2572 bytes.
Jan 15 14:18:21 localhost spamd[30697]: spamd: result: . -1 - BAYES_00,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS,T_DKIM_INVALID scantime=0.4,size=2553,required_score=5.0,rhost=localhost
Run Code Online (Sandbox Code Playgroud) 如果我通过 SMTP 发送邮件,我知道是 IONOS 签署了这些电子邮件,对吗?
我想将 DKIM 标头添加到我的电子邮件中。我知道有必要使用公钥发布 CNAME 记录,但如果我不使用第三方服务,我知道 ionos 必须拥有该私钥,因此向我提供公钥。
如果 ionos 没有向我提供公钥,我该怎么办?由于 IONOS 负责使用私钥对邮件进行签名并添加 DKIM 标头,如果他们不给我公钥,那么解决方案是什么或者方法有问题吗?
有人有类似的东西吗?我应该向 IONOS 发送电子邮件请求公钥吗?
我们正在考虑实施 DKIM,优点似乎很明显。有什么缺点吗?
我知道这有点含糊,可能是主观的,所以当 24 小时过去了,没有新的答案/评论时,我会接受在我看来是最完整的答案。
我有一封邮件被 Gmail 拒绝了,我不知道为什么。它通过了SPF。我们没有使用 DKIM。我需要设置 DKIM 吗?
我控制着“example.com”。我们的邮件服务器是“server.example.com”(托管在 bluehost)
我们的 SPF 记录是
v=spf1 +a +mx ?include:bluehost.com -all
Run Code Online (Sandbox Code Playgroud)
但是 Gmail 拒绝了一封邮件:
由于 550-5.7.1 域的 DMARC 政策,来自 example.com 的 550-5.7.1 未经身份验证的电子邮件不被接受。请联系example.com管理员...
消息标题:
Return-path: <sabrina@example.com>
Received: from [99.127.228.246] (port=61813 helo=[192.168.1.66])
by server.example.com with esmtpsa (TLSv1:AES128-SHA:128)
(Exim 4.80.1)
(envelope-from <sabrina@example.com>)
id 1VMLM8-0007ok-5c; Wed, 18 Sep 2013 17:16:03 +0000
From: Sabrina <sabrina@example.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_2FE0763D-B160-49C4-8202-B8258851AFAD"
Subject: positive self thoughts/talk
Date: Wed, 18 Sep 2013 10:15:24 -0700
Message-Id: <D85DC2BA-0E8A-4AF6-9C54-203C52E996F2@example.com>
To: Tanja Schulte-Irwin <tanjaschulte@gmail.com>,
Zachary Bloom <zbloom@sffriendsschool.org>
Mime-Version: …Run Code Online (Sandbox Code Playgroud) 我正在建立一个基于 exim4 的邮件系统。该系统实现了 DKIM 签名和检查(除其他外)。签名似乎没有问题,但检查不起作用,exim4 抱怨我的 TXT 记录的语法,其中包含我的 dkim 公钥:
2014-02-02 22:37:31 1WA5fP-0004Y4-E2 DKIM: d=middle.earth s=a9d04665528b593d263a6e5256648c99 c=relaxed/relaxed a=rsa-sha256 [invalid - syntax error in public key record]
Run Code Online (Sandbox Code Playgroud)
我正在使用 2048 位长的 RSA 密钥在邮件中继级别对我的邮件进行签名(这可以正常工作,并且我确实在通过此服务器中继的邮件中有 DKIM 标头)。问题似乎在于绑定(我用于该区域的 DNS 服务器)不支持区域文件中长度超过 255 个字符的记录。所以我选择按照如下所示分割记录,并如非常值得信赖的网站 zytrax.com 中所述:
...
a9d04665528b593d263a6e5256648c99._domainkey IN 1800 TXT ("k=rsa,p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A"
"bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5"
"QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2"
"YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X"
"TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv"
"VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg"
"Ixler0jMEoAyJmfQIDAQAB")
Run Code Online (Sandbox Code Playgroud)
完整的区域文件可以在这里找到:http : //pastebin.com/GDE5XA2M
使用该配置 exim 会抱怨上述错误。如果我尝试手动解析我的 dkim 记录,我会得到:
;; ANSWER SECTION:
a9d04665528b593d263a6e5256648c99._domainkey.middle.earth. 1800 IN TXT "k=rsa,p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A" "bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5" "QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2" "YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X" "TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv" "VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg" "Ixler0jMEoAyJmfQIDAQAB"
Run Code Online (Sandbox Code Playgroud)
这对我来说看起来不太正确,我可以想象 exim 会因为这样的输出而丢失。但是,我不能 100% 确定对于这么长的 DNS …
我注意到如果我输入service postfix status,milter 会出现错误:
Jul 01 17:39:01 mail postfix/cleanup[13921]: warning: connect to Milter service inet:127.0.0.1:8891: Connection refused
Run Code Online (Sandbox Code Playgroud)
但这意味着什么,我该如何解决?它与DKIM有关吗?因为我试图设置它,但它仍然无法正常工作。您需要帮助哪些文件?这是我的 opendkim.conf :
## CONFIGURATION OPTIONS
# Specifies the path to the process ID file.
PidFile /var/run/opendkim/opendkim.pid
# Selects operating modes. Valid modes are s (signer) and v (verifier). Default is v.
Mode sv
# Log activity to the system log.
Syslog yes
# Log additional entries indicating successful signing or verification of messages.
SyslogSuccess yes
# If logging is enabled, …Run Code Online (Sandbox Code Playgroud) 我在我的 SMTP 服务器上为我的域和 DKIM 消息签名配置了硬故障 SPF。由于这是唯一应该用于从我的域发出邮件的 SMTP 服务器,因此我没有预见到任何复杂情况。
但是,请考虑以下情况:我通过我的 SMTP 服务器向我同事的大学电子邮件发送了一封电子邮件。问题是我的同事将他的大学电子邮件转发到他的 GMail 帐户。这些是邮件到达他的 GMail 邮箱后的标题:
Received-SPF: fail (google.com: domain of me@example.com 没有指定 192.168.128.100 作为允许的发件人) client-ip=192.168.128.100; 身份验证结果:mx.google.com;spf=hardfail(google.com:me@example.com 的域未将 192.168.128.100 指定为允许的发件人)smtp.mail=me@example.com;dkim=hardfail(测试模式)header.i=@example.com
(标题已被清理以保护非 Google 方的域和 IP 地址)
GMail 根据我的 SPF 和 DKIM 记录检查传送链中的最后一个 SMTP 服务器(理所当然)。由于交付链中的最后一个 STMP 服务器是大学的服务器而不是我的服务器,因此检查会导致 SPF 硬故障和 DKIM 故障。幸运的是,GMail 没有将邮件标记为垃圾邮件,但我担心这可能会在将来引起问题。
我对 SPF hardfail 的实施可能太严格了吗?我应该注意的任何其他建议或潜在问题?或者也许有更理想的大学电子邮件转发程序的配置?我知道转发服务器可能会更改信封发件人,但我看到这变得很混乱。
我在我的机器上设置了 Opendkim milter 来与 postfix 一起使用。现在电子邮件已正确签名和验证,即电子邮件源代码显示DKIM-Signature标题。
TXT权威 dns 上的记录设置如下:
\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 # \xe2\x94\x82 root > server > ~\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x98\n \xe2\x94\x94\xe2\x94\x80> delv -t txt dkim-domain._domainkey.domain.eu\n...\n...\ndkim-domain._domainkey.domain.eu. 1780 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8drA4hH8gJaVpLaHhtQonhpOeanMo/oPmrAVehP3lBYAjsoxifCIclLqJo7kk0maelqu9SIN9ttQ0boCzEiQBMO1" "c1P+Sj/PxphZB71c8VNhqMJ32VG6Ky3ZD4Tds39Vye/wsWdi+842MUT3Z2dJnxS2AAG4pSkjaytFPCs0J94OUQC0tDErbnsMZh+gg+7IsYgND8FR/cRDzpXjD0qFJk4Cnc1q27WorPAGAiRsRfLt9u" "gkYgQRwapnofmKJ3hk/L8096YR7gan60L4+RGojsx5ppTdIEhYasyK9MokefmVeNyGwVXTJchqG8vhcg9uGjGy9mPiPg4B2TQgEBPwyQIDAQAB"\n...\n...\nRun Code Online (Sandbox Code Playgroud)\n因此,乍一看一切正常,但当我在机器上运行诊断程序时,它会显示以下内容:
\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 # \xe2\x94\x82 root > server > ~\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x98\n \xe2\x94\x94\xe2\x94\x80> opendkim-testkey -d domain.eu -s dkim-domain -vvv\n\nopendkim-testkey: using default configfile /etc/opendkim.conf\nopendkim-testkey: checking key \'dkim-pistam._domainkey.pistam.eu\'\nopendkim-testkey: key not secure\nopendkim-testkey: key OK\nRun Code Online (Sandbox Code Playgroud)\n注意key not secure答案。我从这个答案中读到存在警告,因为未启用 DNSSEC。但我的域的 DNSSECdomain.eu已启用。根据DNSViz。
dkim ×10
email ×3
spf ×3
dmarc ×2
email-server ×2
postfix ×2
security ×2
bind ×1
cname-record ×1
dnssec ×1
domainkeys ×1
exim ×1
g-suite ×1
gmail ×1
mx-record ×1
opendkim ×1
spamassassin ×1
spamd ×1