NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:067945

评论

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

【网络安全】你必须知道的几个网络安全概念

行云管家

运维 网络安全 防火墙 IT

linux系统管理与自动化运维工具用哪款好?

行云管家

Linux 运维 IT运维 自动化运维

【量化】量化交易入门系列6:量化交易学习书籍推荐(二)

恒生LIGHT云社区

量化策略 量化投资 量化交易 量化

斯图飞腾数据分析平台Stratifyd获评“2021大数据产业创新服务产品”

InfoQ_967a83c6d0d7

面试官惊叹,好小子!你这多线程基础可以啊!

XiaoLin_Java

1月月更

基于实例数据详解准确率和召回率

华为云开发者联盟

数据集 AUC 信息检索 准确率 召回率

Mysql索引

zdd

MySQL

巧用Amazon PrivateLink——轻松访问私有终端节点Amazon S3

亚马逊云科技 (Amazon Web Services)

网络

风口上的“低代码”,是时候来系统学一学了!

博文视点Broadview

从四种时序数据库选型中脱颖而出,TDengine在工控领域边缘侧的应用

TDengine

数据库 大数据 tdengine 物联网

低代码实现探索(十五)安全检查报告提高低代码数据安全性

零道云-混合式低代码平台

Karpenter : 新一代 Kubernetes auto scaling 工具

亚马逊云科技 (Amazon Web Services)

网络

openGauss 助力邮储银行分布式新核心迈向智能运维时代

openGauss

MySQL高级特性篇教程

编程江湖

MySQL

中山市政务服务数据管理局党组书记叶永忠:积极构筑智慧联接新底座,打造中型智慧城市标杆

InfoQ_967a83c6d0d7

您有一份Microsoft Office 365技能宝典等待签收

淋雨

Office 365 office办公软件

Linux云计算好学吗?Linux云计算运维学习资料 vim编辑器和恢复ext4下误删文件

学神来啦

skywalking核心概念

淡泊明志、宁静致远

使用 Simple Replay 实用程序简化 Amazon Redshift RA3 迁移评估

亚马逊云科技 (Amazon Web Services)

mad

霸屏综艺,牵手明星,扩列神器皮皮APP的出圈始末

联营汇聚

为什么零售业需要借助CRM系统蓬勃发展

低代码小观

企业管理 CRM 企业管理系统 CRM系统 企业管理软件

在Spark Scala/Java应用中调用Python脚本,会么?

华为云开发者联盟

Python spark python脚本 Spark Scala Java应用

工具 | 如何对 MySQL 进行 TPC-C 测试?

RadonDB

MySQL RadonDB

workflow 之 Prefect 基本用法(qbit)

qbit

工作流 pipeline workflow 数据流

万字详解 Spark 数据倾斜及解决方案

五分钟学大数据

spark 1月月更

助力产教融合,夯实数据库产业人才基座!openGauss社区分委会正式成立

openGauss

3个重点,20个函数分析,浅析FFmpeg转码过程

奔着腾讯去

音视频 WebRTC ffmpeg RTMP RTSP

前端开发之动态管理Nginx集群的方法

@零度

nginx 前端开发

低代码实现探索(十四)工程化思想提高项目质量与可维护性

零道云-混合式低代码平台

效果提升28个点!基于领域预训练和对比学习SimCSE的语义检索

百度大脑

人工智能

开源demo| 智慧协同demo升级——协同更直观方便

anyRTC开发者

音视频 白板 智慧协同 开源demo 远程协助

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