AICon议程上新60%,阿里国际、360智脑、科大讯飞、蔚来汽车分享大模型探索与实践 了解详情
写点什么

Office 365 中三种反垃圾邮件的方法

  • 2019-09-25
  • 本文字数:5684 字

    阅读完需:约 19 分钟

Office 365中三种反垃圾邮件的方法

Office 365 不仅提供最基础的 SPF 邮件安全身份验证机制,同时也支持第三方的验证方法,如 DKIM 和 DMARC。建议同时对自己的域名进行 SPF、DKIM、DMARC 的设置,来确保收件方可以有更多的机制来验证邮件的安全性。这篇文章节选自世纪互联蓝云公司最新出版的《精通 Office 365 云计算管理 Exchange Online 篇》2.6.4 章节,对 Office 365 中三种反垃圾邮件的方法进行了功能比对和设置方法的详细阐述。


SPF、DKIM、DMARC 功能对比

阻止垃圾邮件三种方法 SPF, DKIM 和 DMARC 的对比如下表所示:



1、垃圾邮件中的仿冒邮件,邮件头中的信息很多都可能被仿冒,只有 received 和邮件服务自行添加的 X-fields 字段可以信任。


2、建议同时启用 SPF+DKIM+DMARC,但有效的反垃圾邮件还需要配合连接筛选器,垃圾邮件筛选器设置和邮件流规则等操作,以及提高用户的警觉性。


以下为一个邮件头的部分条目:


Authentication-Results: spf=none (sender IP is 167.220.24.220) smtp.mailfrom=contoso.com; microsoft.com; dkim=none (message not signed) header.d=none;microsoft.com; dmarc=none action=none<--header.d  //DKIM检查字段 header.from=tailspintoys.com; From: From header FromHeader@tailspintoys.com <-- 5322.From header //DMARC检查字段 To: Andrew Stobart andrew.stobart@microsoft.com Subject: Different MailFrom and From headers Return-Path: MailFromHeader@contoso.com    <-- 5321.MailFrom //SPF & DMARC检查字段 Reply-To: replyto@adventure-works.com   <-- Reply-To address //点击回复后地址,常被仿冒
复制代码


3、SPF(Sender Policy Framework)


域名所有者添加 TXT 记录,发布允许从该域或可以代表你的域发送邮件的外部域(如中继域)的合法 IP 地址,并指明处理规则。


以下是典型的绑定国内版 Office 365 需要添加的 SPF 记录值:


v=spf1 include:spf.protection.partner.outlook.cn -all //指定处理规则-all hard fail 进入垃圾邮件文件夹~all soft fail 邮件头中标记但继续投递?all neutral  不执行任何操作
复制代码


Office 365 可以选择在垃圾邮件筛选器-高级选项中开启 SPF 记录:硬失败,启用此设置后, SPF 检查失败的所有邮件都将标记为垃圾邮件 (总是执行 SPF 筛选) 。


请参考:Office 365 如何使用发件人策略框架 (SPF) 来防止欺骗


Office 365 的典型 SPF TXT 记录具有以下语法,如果是 Exchange 混合部署环境,需要将本地的 Exchange CAS 服务器的公网 IP 加入该地址,需要注意的是 SPF 记录值,Office 365 规定只能是一条 TXT 记录,如果有多条记录,需要合并为一条。


v=spf1 ip4:1.2.3.4 ip4:5.6.7.8 include:spf.protection.partner.outlook.cn -all


检查 SPF 记录是否正确的网站,如下图所示,已经通过了SPF验证




4、DKIM (DomainKeys Identified Mail)


DKIM 基于公钥算法,存在一对密钥:私钥和公钥。私钥保存在 Office 365, 公钥以 CNAME 记录方式发布到 DNS。


DKIM 使用私钥将加密的签名插入邮件头。在邮件头中,将签名域或出站域作为 d = 字段中的值插入。收件方使用 d = 字段从 DNS 中查找公钥,对邮件进行身份验证。如果邮件已经过验证,则 DKIM 检查通过。Office 365 已经对默认域名设置了 DKIM,也可以对自定义域名进行设置。


对于入站邮件,Office 365 会对邮件进行验证,并添加类似如下标头。


Authentication-Results: <contoso.com>; dkim=pass (signature was verified) header.d=example.com;
复制代码


但是不会根据验证通过或失败对邮件进行操作,且 DKIM 记录中也没有可以设置对于垃圾邮件如何处理的语法。如需根据 DKIM 验证结果对邮件进行处理,可以考虑创建邮件流传输规则。


例如,一位重要客户已经部署 DKIM,需要阻止他人仿冒客户域名发送垃圾邮件,创建的传输规则如下,对 DKIM 检查结果为 None 或者 failed 的邮件进行隔离。



5、DMARC


DMARC(Domain-based Message Authentication, Reporting & Conformance)是一种基于现有的 SPF 和 DKIM 协议的可扩展的电子邮件认证协议。DMARC 要求在 DNS 中设置 SPF 记录或 DKIM 记录,并明确对验证失败的邮件的处理策略。在 Office 365 中要通过 DMARC 检查,建议开启 SPF 和 DKIM。参考链接:如何在Office 365中启用DMARC


_dmarc.contoso.com 3600 IN  TXT  "v=DMARC1; p=none/quarantine/reject"  //指定处理规则
复制代码


对于入站邮件扫描,Office 365 默认开启扫描, 将 p=reject 和 p=quarantine 视为相同方式,如果 DMARC 设置 p=reject, EOP 会将邮件标记为垃圾邮件,而不是拒绝。

DKIM 和 DMARC 设置方法

1、如何在 Office 365 上针对自定义域名启用 DKIM。


  • 在域名的 DNS 管理中心添加两个 CNAME 记录,如图所示。



添加 CNAME 记录


CNAME 记录使用图所示的格式。



CNAME 记录格式


对于 Office 365,选择器将始终为“selector1”或“selector2”。


DomainGUID 值与显示在 mail.protection.partner.outlook.cn 前面的自定义域的自定义 MX 记录中的 DomainGUID 相同。例如,contos.com解析出来的地址应为contos.com它的MX记录应该为contos-com.mail.protection.partner.outlook.cn。这里 DomainGUID 值应该为 contos-com。


InitialDomain 是用户注册 Office 365 时所使用的初始域。


如果不想自己写这个值,有个小技巧,使用 Exchange Online PowerShell 模块,新建 DKIM 秘钥。New-DKIMSigningConfig –DomainName office365lib.cn使用自定义域名代替office365lib.cn)-Enabled $True,就可以获得 Host 的值,如图所示。



获取 CNAME 值


  • 在 Exchange 管理员界面单击,启用 DKIM,如图所示。



启用 DKIM


使用 PowerShell 来验证 DKIM 是否启用,如图所示。


Get-DKIMSigningConfig -Identity office365lib.cn
复制代码



确认 DKIM 已经启用



EAC 中 DKIM 显示“已启用”


等待 1 个小时以上,用已开启 DKIM 的邮箱发邮件,在收件人中检查邮件头,看是否有 DKIM-Signature 内容,如图所示。



检查邮件头中的 DKIM-Signature 内容


DMARC

介绍 DMARC 之前,简单介绍一下 SMTP 协议中一个比较有意思的地方。这里有一个简单的 SMTP 发送测试代码:


helo 21vianet.com250 BJBFFO30FD002.mail.protection.partner.outlook.cn Hello [106.120.78.19x]ehlo250-BJBFFO30FD002.mail.protection.partner.outlook.cn Hello [106.120.78.19x]250-STARTTLSmail from:phish@21vianet.com250 2.1.0 Sender OKrcpt to:office@jiuxianqiao.top250 2.1.5 Recipient OKdata354 Start mail input; end with <CRLF>.<CRLF>From:IT@jiuxianqiao.topTo:office@juxianqiao.topSubject:IT security mails
复制代码


这段代码是一个简单的 SMTP 发送邮件代码,它模拟一个正常的邮件发送行为,其中有两个发送的邮件地址,它们分别代表了 Mail from 的 phish@21vianet.com 和 From:“IT@jiuxianqiao.top”。Mail From 和 From 这两个值是如何规定的呢?


“邮件发件人(Mail from)phish@21vianet.com”地址的发件人地址,指定在传送邮件过程中出现任何问题(如邮件未送达通知),可以返回通知的地址。该地址出现在电子邮件的信封部分,我们发送邮件时并不需要填写此地址,也称为"5321.MailFrom 地址"或"反向路径地址"。


“发件人(From)IT@jiuxianqiao.top”地址是在邮件应用程序显示的发件人地址。此地址标识电子邮件的作者,是表明发件人身份的,给收件人确认信息的地址,也称为"5322.From 地址"。


如果设置了 SPF 值,那么收件方将会使用 SPF 值来检查 Mail From 的地址 phish@ 21vianet.com,如果邮件确实是从这个地址发出的,那么 SPF 标记是成功的。而“From”地址是显示在邮件正文中的地址,收件方看到地址具有欺骗性。


DMARC 正是通过和 SPF(DKIM)的结合使用,来帮助收件方验证发件人身份的机制,遏制仿冒邮件和钓鱼邮件。DMARC 类似于 SPF,通过在 DNS 上发布 DMARC TXT 记录,接收方进行 DMARC 验证的过程如下。


1、从邮件头收取 FROM 字段的域名(5322.From),如A.com,获取返回邮件地址域名(5321.MailFrom),例如B.com


2、查询 A. com(5322.From)和 B.com(5321.MailFrom),如果结果一致,只验证 SPF 记录。


3、查询 A. com(5322.From)和 B.com(5321.MailFrom),如果结果不一致,需要检查 DKIM 设置。


4、在步骤(2)和步骤(3)的 SPF 或 DKIM 检查中,如果有一个验证通过,则就认为这个邮件是安全的。如果验证不通过,则需要执行 DMARC 设置的策略。


在 Office 365 中,如果已经设置了 SPF 值,建议继续设置 DKIM。如果不设置 DKIM,且允许 Office 365 对域名使用默认的 DKIM 配置,则 DMARC 可能会失败。这是因为默认的 DKIM 配置使用初始域 onmschina.cn 作为 5322.From 地址,而不是使用自定义域。有可能从自己的域发送的所有电子邮件 5321.MailFrom 和 5322.From 地址不匹配。


启用 DMARC 的过程如下。


1、设置域名的 SPF 值。


2、设置域名的 DKIM 值


3、在域名解析页面,发布一个新的 DMARC TXT 值格式为:


_dmarc.domainTTL IN TXT "v=DMARC1; pct=100; p=policy
复制代码


例如,设置 jiuxianqiao.top 的 DMARC 值为:


jiuxianqiao.top text ="_dmarc.jiuxianqiao.top 3600 IN  TXT  "v=DMARC1; p=reject"
复制代码


  • Domain 设置成自己的自定义域名。

  • TTL 值一般建议设置为 60 分钟。

  • PCT 值设置为 100 是确保这个记录被邮件百分之百应用。当然也可以设置邮件抽查比例。

  • Policy 中含有 3 种类型的 policy,分别为 NONE、Quarantine、Reject。


NONE 的策略是一种监控策略,这种策略下,不会对邮件产生实际的阻止影响,当域名没有设置完成 SPF 和 DKIM 时,强烈建议执行这样的策略。


Quarantine 的策略启动后,会对 SPF 或 DKIM 检查失败的邮件,进行 Quarantine 的策略。一般会放置到邮箱的垃圾文件夹中。


Reject 策略,将会对 SPF 或 DKIM 检查失败的邮件,请求收件服务器不再接收这封邮件。目前执行的策略来看,是放到收件人的垃圾文件夹中,如图所示。



Telnet 方式测试发送仿冒邮件



该邮件识别为垃圾邮件


如果想了解本书的更多内容,可以通过京东当当网购买本书,以便阅读其他章节。


2019-09-25 11:068584

评论

发布
暂无评论
发现更多内容

IoTDB 端边云同步:SQL 一键搞定 5 大常见场景

Apache IoTDB

数业智能心大陆告诉你如何培养孩子的批判性思维?

心大陆多智能体

智能体 AI大模型 心理健康 数字心理

易观分析:2024年第2季度中国电商直播市场交易规模达10604亿元 退货问题折射行业转型急迫性

易观分析

电商直播

揭秘丨主数据管理的创新蜕变

用友BIP

数智转型,看JNPF如何成为企业的必备工具

不在线第一只蜗牛

低代码 数智化

短视频风口,Polar Bear起飞在即?

股市老人

消费全返免单系统模式开发技术讲解

V\TG【ch3nguang】

他们正在体验用友BIP超级版AI新利器

用友BIP

API 网关 OpenID Connect 实战:单点登录(SSO)如此简单

阿里巴巴云原生

阿里云 云原生 Higress

通义灵码助力高校开学第一课,“包”你满意,新学期加油!

阿里云云效

阿里云 云原生 通义灵码

探秘商品详情数据接口:开启电商数据洞察之门

tbapi

抖音商品数据采集 抖音商品详情接口 抖音API接口

资源有限?如何低成本开发体育直播平台,吸引用户并持续互动!

软件开发-梦幻运营部

自增主键去哪了?---一次开发过程中的思考

京东零售技术

后端 自增主键

【YashanDB知识库】修改字段长度后,jdbc驱动接口报YAS-04007 Message:result set metadata changed异常

YashanDB

yashandb 崖山数据库

奖项再+1!通义灵码智能编码助手通过可信 AI 智能编码工具评估,获当前最高等级

阿里云云效

阿里云 云原生 通义灵码

功能发布-自定义SQL查询

ClkLog

sql 开源 自定义标签

中国传媒业人工智能应用发展图谱2024

易观分析

人工智能’

拥抱数智化,JNPF低代码平台如何推动企业转型升级

快乐非自愿限量之名

低代码 数智化

2024 天池云原生编程挑战赛决赛名单公布,9 月 20 日开启终极答辩

阿里云云效

阿里云 云原生

性能持续领航 全闪存储新品焱融追光 F9000X 震撼发布

焱融科技

AI+制造:助力制造企业转型升级

用友BIP

数业智能心大陆:揭秘如何利用AI做心理疗愈

心大陆多智能体

智能体 AI大模型 心理健康 数字心理

数据可视化伙伴:天谋科技与图扑物联完成兼容性互认证

Apache IoTDB

LLM应用实战: 产业治理多标签分类

不在线第一只蜗牛

LLM

【YashanDB知识库】表数据量不多,lob数据段有大量空间,插入数据报错

YashanDB

yashandb 崖山数据库

面壁智能小钢炮重磅升级 MiniCPM3-4B 开源;字节跳动 Loopy,音频驱动的 AI 视频生成技术丨 RTE 开发者日报

声网

通义灵码助力高校开学第一课,“包”你满意,新学期加油!

阿里巴巴云原生

阿里云 云原生 通义灵码

IPQ5332: Power Efficiency with 320 MHz Channel Width

wallyslilly

IPQ5332

2024 天池云原生编程挑战赛决赛名单公布,9 月 20 日开启终极答辩

阿里巴巴云原生

阿里云 云原生

三分钟全面了解低代码,两小时实现应用系统搭建

EquatorCoco

低代码 系统搭建

双良集团:打造智能制造数字化管控平台,实现精细化管理

用友BIP

Office 365中三种反垃圾邮件的方法_语言 & 开发_王少峰_InfoQ精选文章