用于避免未使用域的电子邮件欺骗和网络钓鱼的 DNS 设置


一个
您可能知道,电子邮件欺骗允许攻击者冒充他人以获取非法利润。 例如,我只使用 [email protected] 进行通信,但有人可能会创建一个欺骗性的电子邮件,例如 [email protected],以欺骗某人。 这称为带有虚假标头的电子邮件欺骗,如下所示:

日期:2021 年 10 月 24 日星期四 12:46:10
来自:nixCraft
回复:[email protected]
收件人:

接收电子邮件服务器通常不会检查正确的标头,并且 [email protected]_gmail_com 可能会认为该电子邮件来自我。 这是我根本不使用 opensourceflare.com 进行电子邮件通信的事情。 那么如何防止我的域上的非法电子邮件流量? 在本教程中,我将解释如何配置 DNS 设置,告诉接收电子邮件服务器此域未配置用于发送电子邮件,并且攻击者代表我恶意发送电子邮件。

用于避免未使用域的欺骗和网络钓鱼的 DNS 设置

任何 DNS 错误配置都将导致电子邮件无法送达。 因此,请确保仅当您没有在您的域上发送和接收任何电子邮件时才设置以下记录。 作者不对任何错误配置负责。 如果您在阅读此可怕警告的情况下错误地设置了此类记录,请监控电子邮件日志并删除 DNS 记录以撤消操作。

设置 NULL DNS MX 记录

MX 是邮件交换的首字母缩写。 它将电子邮件定向到正确的邮件服务器。 通常我们有多个域的 MX 记录。 例如,您可以使用 host 命令或 dig 命令获取所有 MX 记录的列表:
$ host -t MX {your-domain-here}
$ dig MX {your-domain-here}
$ dig +short MX {your-domain-here}
$ host -t MX cyberciti.biz
$ dig +short MX cyberciti.biz

采取的行动

因此,当您不为您的域发送和接收电子邮件时,请将 MX 设置为 NULL。 例如:
$ dig +short MX opensourceflare.com
$ host -t MX opensourceflare.com

这是我看到的:

opensourceflare.com mail is handled by 0 .

以下是如何在区域文件中为域设置 NULL MX 记录:

opensourceflare.com.	1	IN	MX	0 .

所以现在,如果有人试图发送或欺骗,比如使用 [email protected],他们将收到取决于 smptd 软件的错误:

DNS Error: 913429 DNS type 'mx' lookup of opensourceflare.com responded with code NOERROR The domain opensourceflare.com doesn't receive email according to the administrator: returned Null MX https://www.rfc-editor.org/info/rfc7505 

更不友好的回应如下:

Gmail 回复

通告空 MX 的域不得通告任何其他 MX 服务器。

设置 DNS SPF 记录

使用发件人策略框架 (SPF) 来帮助保护您的域免受欺骗,并帮助防止您的外发邮件被标记为垃圾邮件。 以下是cyberciti.biz 的SPF 外观,其中仅允许AWS SES 和Google/Gmail 代表我的域发送电子邮件。 它包含所有 IP 地址的列表或包含另一个 DNS 记录:
$ host -t TXT {your_domain_com}
$ dig TXT {your_domain_com}
$ host -t TXT cyberciti.biz
$ dig TXT cyberciti.biz

示例输出:

cyberciti.biz descriptive text "v=spf1 include:amazonses.com include:_spf.google.com ~all"

以下 IP 地址取自该域 SPF 记录中的 include 和 IP4/IP6 指令:

cyberciti.biz.
amazonses.com
199.255.192.0/22
199.127.232.0/22
54.240.0.0/18
69.169.224.0/20
23.249.208.0/20
23.251.224.0/19
76.223.176.0/20
54.240.64.0/19
54.240.96.0/19
52.82.172.0/22
_spf.google.com
_netblocks.google.com
35.190.247.0/24
64.233.160.0/19
66.102.0.0/20
66.249.80.0/20
72.14.192.0/18
74.125.0.0/16
108.177.8.0/21
173.194.0.0/16
209.85.128.0/17
216.58.192.0/19
216.239.32.0/19
_netblocks2.google.com
2001:4860:4000::/36
2404:6800:4000::/36
2607:f8b0:4000::/36
2800:3f0:4000::/36
2a00:1450:4000::/36
2c0f:fb50:4000::/36
_netblocks3.google.com
172.217.0.0/19
172.217.32.0/20
172.217.128.0/19
172.217.160.0/20
172.217.192.0/19
172.253.56.0/21
172.253.112.0/20
108.177.96.0/19
35.191.0.0/16
130.211.0.0/22

采取的行动

现在看看 opensourceflare.com 的 SPF 记录:
$ host -t TXT opensourceflare.com

输出:

opensourceflare.com descriptive text "v=spf1 -all"

SPF 始终设置为失败。 换句话说,没有 IP 地址被授权代表我的域发送电子邮件,以下是如何在区域文件中设置此类记录:

opensourceflare.com.	1	IN	TXT	"v=spf1 -all"

设置 DKIM 记录

我们设置了 DKIM DNS 记录,以防止电子邮件欺骗从您的域发送的传出邮件。 例如:
$ host -t TXT google._domainkey.cyberciti.biz

示例输出:

google._domainkey.cyberciti.biz descriptive text "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlXtL1tL+0WrwdEldIO0ZED1hmaQJ9AcAA/eN3wMDUd723+MSR+vIqOrp2Bu5rKIPvm3IdADx+Av5UGmQ1UwU/TuJR+T+p5nW9bymUgJGqM8pp+Pg+YPsD4EEu+ClBwt8gExE6BYM/CK17djlrBnv9vbzUkK9IvhGr1UggUaz9N3BDCPRq/0PAhDYiwm18QN+s" "S8j8I3Iuv25oSUz20NYQ2R4PEZFN6dQcPuuwYCC0Ntjip2r/vonwv4LBFgqjEBJfyeuPlGiE+KagxtAI5s1lvIGNGw937vT5FkpmMXe0czJKrKEm0j/RiKb1fgYbjGJndX9x2uNELcqCwP2NQ06PwIDAQAB"

所以我设置了 DKIM,它将加密签名添加到所有传出消息的标题中。 获取签名邮件的电子邮件服务器使用 DKIM 解密邮件标头,并验证邮件在发送后未被更改。

采取的行动

以下是如何为您的域设置 NULL DKIM。 例如,dns 区域条目:

*._domainkey.opensourceflare.com.	1	IN	TXT	"v=DKIM1; p="

验证它:
$ host -t TXT *._domainkey.opensourceflare.com

示例输出:

*._domainkey.opensourceflare.com descriptive text "v=DKIM1; p="

在哪里,

  1. *._domainkey.opensourceflare.com :DKIM 选择器设置为通配符。
  2. v=DKIM1, :将检索到的记录标识为 DKIM 记录。 它必须是记录中的第一个标签。
  3. p : 再次设置为 NULL。 这意味着公钥已被撤销或默认未设置。 换句话说,DKIP 设置为 NULL 以防止所有选择器的电子邮件欺骗。

设置 DMARC 政策

DMRC DNS 记录有助于防止来自:攻击者伪造的电子邮件地址。 DMARC 还允许您从电子邮件服务器请求报告,以查找从您的域发送的邮件可能存在的身份验证问题和恶意活动。 这是它如何查找我的域:
$ dig TXT _dmarc.cyberciti.biz
$ host -t TXT _dmarc.cyberciti.biz

示例输出:

_dmarc.cyberciti.biz descriptive text "v=DMARC1; p=reject; pct=100; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; ri=2419200;"

采取的行动

在 dns 区域文件中为您的域设置 dmarc,如下所示:

_dmarc.opensourceflare.com.	1	IN	TXT	"v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"

在哪里,

  1. _dmarc.opensourceflare.com。 : 设置 DMARC。
  2. v=DMARC1; : 它必须是 TXT 列表中指示 DMARC 版本的第一个标签。
  3. p=拒绝; :将拒绝政策设置为未通过 DMARC 测试的电子邮件。
  4. sp=拒绝; :将拒绝策略设置为未通过子域 DMARC 测试的电子邮件。
  5. adkim=s; : 将 DKIM 的对齐模式设置为严格
  6. aspf=s; : 将 SPF 的对齐模式设置为严格

加起来

这是为您的域推荐的限制性 NULL MX、DMARC、SFP 模板,该模板建议远程(接收)SMTPd(邮件服务器)丢弃从我名为 opensourceflare.com 的域发送的所有传入电子邮件

opensourceflare.com.	1	IN	MX	0 .
opensourceflare.com.	1	IN	TXT	"v=spf1 -all"
*._domainkey.opensourceflare.com.	1	IN	TXT	"v=DKIM1; p="
_dmarc.opensourceflare.com.	1	IN	TXT	"v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"

以下是它在 Google DNS 仪表板中的外观:

带有 NULL MX 和其他设置的 Google 域仪表板可防止非法电子邮件流量,因为我不在此域上发送或接收电子邮件(点击放大)

如果您的域不发送电子邮件,请设置这些 DNS 设置以避免欺骗和网络钓鱼

使用 dig 命令或 host 命令命令验证设置以确认 DNS 设置,以避免对未使用的域进行欺骗和网络钓鱼以发送电子邮件:
$ host -t MX opensourceflare.com
$ host -t TXT opensourceflare.com
$ host -t TXT *._domainkey.opensourceflare.com
$ host -t TXT _dmarc.opensourceflare.com

加起来

当您的域不用于发送或接收任何电子邮件时,这就是您如何防止使用 dns 设置进行欺骗和网络钓鱼的方法。

推荐读数

我知道这个话题对于新的 Linux/Unix 开发人员或系统管理员来说可能是压倒性的。 因此,我建议您阅读以下页面: