最近公司收到的spoof 的钓鱼邮件特别多。

有的很容易识别,就是显示一个同名的用户名称 但是邮件明显是其他域名的;这个我已经设定了一个规则进行过滤

https://blog.51cto.com/beanxyz/2326244

还有的是伪装成公司内部的邮件,通过公共的SMTP服务器发送来的,这些公共的SMTP服务器不在我们授权的IP地址之类,无法通过SPF验证,在header 头文件里面会标注fail或者none。 Office365 里面 ,默认情况下,即使SPF没有通过,仍然发送给了用户,这样往往给用户造成恐慌,认为邮箱被盗或者密码丢失。针对第二种情况,不能一刀切,把SPF没通过的都给拦截了,这样太容易误伤合法的邮件,因此我设定了以下规则进行过滤。

Office 365 设定规则避免spoof邮件

简单的说 就是把SPF 没有设定的或者失败的邮件都转发给我自己审批,人工进行判断。
当然,刚开始几天可能会收到比较多的邮件,如果是合法的邮件,可以要么加入except的列表,要么阅读头文件之后,修改对应的DNS记录,添加合法的SPF的IP记录。这样大概一周之后,基本上就没什么误杀的邮件了。

那么怎么阅读邮件的头文件呢?我一般是通过在线的分析器,比如 https://mxtoolbox.com/EmailHeaders.aspx , 可以直接复制粘贴邮件的头文件

Outlook里面点开邮件的属性, 复制 internet headers

Office 365 设定规则避免spoof邮件

粘贴到 上面的链接里面,点击 analyze header
结果最下面 可以看见 authentiation-results, 我们就是通过这个来判断是否通过了SPF的验证。这里的例子显示是none,说明这个域名没有配置对应的txt记录。

Office 365 设定规则避免spoof邮件

配置 spf txt记录很容易,比如下面的截图是在goDaddy里面配置的。配置好了之后可以通过mxtool进行查询

Office 365 设定规则避免spoof邮件

随便搜一个域名看看

Office 365 设定规则避免spoof邮件

通过这种方式,可以有效的避免钓鱼邮件,也避免了一刀切(比如直接设置 spf hardfail)造成的误伤。