网站运行了一段时间了,最近用户增加的比较多,突然有用户反馈说遇到骗子了,给我看了他跟骗子的邮件记录,发现骗子竟然可以用我们域名的邮件发邮件,真是被惊吓到了,赶紧开始查找问题.
- 首先怀疑是企业邮箱密码泄露了,于是赶紧把密码给改了。
- 然后进入服务器的邮箱发送日志列表,过滤搜索用户提供给我们的关键字,未找到对应的邮件记录。
- 进入到企业邮箱账户,搜索邮件关键字,也未找到任何记录。
到这里我就疑问了,因为邮件客户端我们一直登着,所以不会存在邮箱记录被删除的情况,于是我猜应该是我们的邮箱服务被攻击了,通过Google了解到STMP的邮件可以很容易被伪造,只要域名解析中没有配置SPF记录(SPF是 Sender Policy Framework 的缩写,一种以IP地址认证电子邮件发件人身份的技术,是非常高效的垃圾邮件解决方案),如果没有这条TXT记录,那么任何人都可以你域名的邮箱发邮件,于是赶紧将腾讯的 SPF 加入。
SPF是一条 TXT 记录,主机记录为@就行了,值设置为
v=spf1 include:spf.mail.qq.com ~all
加入之后发现还是可以伪造邮件,经过反复尝试查阅资料,最后将SPF的值改成如下解决此问题:
v=spf1 include:spf.mail.qq.com -all
-all 表示前面的策略没有命中,则直接拒绝邮件,所以安全级别更高。
如何测试自己的域名是否可以被伪造,我提供两种方法:
- 通过在线网站测试(https://emkei.cz/)
如果有Linux主机,可以直接安装 mail,通过命令行测试
sudo apt install mailutils internet site >> example.com # 安装的时候会让你配置, example.com 可以随便设置 echo "成功伪造啦!" | mail -s "我是XXX" -r [email protected] youremail
然后查看 mail 日志 (/var/log/mail.log),如果发送结果是 250,表示这封邮件发送成功了,此时就要去配置SPF,如果提示 SPF 未通过,表明已经加了SPF,则不用理会。
这次的查错过程很曲折,甚至都把企业邮箱服务商都改了(当然我用的免费版的,无所谓)
说说对腾讯企业邮箱和网易企业邮箱的感受
腾讯企业邮箱
优点:
1、 DNS解析生效很快(可能是我们用了DNSpod的原因)
2、 可以绑定微信,管理安全方便。
缺点:
客服人员的专业性比较差,问什么都不知道,还骗我说免费版不支持SPF,总想着怎么让你办理收费套餐。
网易企业邮箱
优点:
- 客服人员服务态度好,即使用的是免费版。
- 相比腾讯客服的比较专业。
缺点:
MX验证花了两三个小时,后面在知乎上看到有人说需要增加CNAME记录,于是照做了,结果一下子就验证通过了(不确定是CNAME的影响还是确实时间到了)。