zimbra 电子邮件保护的最佳实践:SPF、DKIM、DMARC

我们安装完zimbra后,需要知道一些额外的配置来允许我们安全得发送邮件到其他邮件服务器,比如gmail,hotmail,yahoo,etc。这篇文章将介绍已存在的不同的邮件防护措施,取决于邮件的发件量,最好只实现一个或两个,或者所有

SPF:

Sender Policy Framework (SPF)是邮件的确认系统,用来阻止邮件欺骗。检测安全问题,SPF将去核实邮箱源IP地址然后匹配它的dns中txt记录的spf信息


在哪里配置SPF:

SPF需要在公共的dns服务商上进行配置

如何配置它:

首先,生成 TXT、SPF、DNS条目,例如我们的域名叫:domain.com,然后我们需要添加三条记录:

  • A记录 - mail.domain.com
  • MX记录 - srvmta.domain.com
  • IPv4记录 - 60.70.80.90
    如果在你的邮件系统中你使用了外部的服务,比如Mailchimp,Salesforce,etc。需要添加它们的include。例如:
  • include:servers.mcsv.net (Mailchimp)
  • include:_spf.salesforce.com (Salesforce)
  • include:_spf.google.com (Google Apps)


理解 “all” 在SPF中的设置:

SPF有多种不同的设置,98%的域名使用 ~all(softfail),意思是如果spf条目与源邮件服务器不对应,标识邮件为软失败。下表将展示SPF中 all 的区别:

参数 结果 含义
+all pass Permits all the email, like have nothing configured.(允许所有邮件,相当于未设置)
-all fail Will only mark the email like pass if the source Email Server fits exactly, IP, MX, etc. with the SPF entry.(仅通过匹配spf中正确配置IP、MX、etc.)
~all softfail Allows to send the email, and if something is wrong will mark it like softfail.(有错误的标识为软失败)
?all neutral Without policy(策略之外)

-all 和 ~all 的区别:

如果一个垃圾邮件攻击试图欺骗你的域名,你可以尝试将SPF改为 -all 一段时间,当攻击停止再改回~all。如果你需要严格控制你的 SPF条目并且确认你的DNS正确无误,可以将值设置为 -all

如何测试他们:

有很多工具来检测SPF是否正确:

弃用SPF RR,仅支持 TXT RR:

2014年4月,SPF DNS 在RFC弃用,正确使用SPF的方法只有配置DNS的TXT记录,这是2014年4月之前有效的dns记录,txt和spf值:



然后这是RFC中记录仅能使用TXT:


image.png

参考文档:
SPF介绍
2014年4月之前的RFC
2014年4月之后的RFC

DKIM:

DomainKeys Identified Mail (DKIM) 是电子邮件验证标准——域名密钥识别邮件标准,帮助企业证实邮件真实性,从而使得用户邮件能顺利的发送到海外邮箱的收件箱中,而不会再出现发送失败或者发到对方垃圾箱中的现象


需要配置哪里:

需要将zimbra服务器中使用到的所有域名在公共的 DNS中进行设置

如何设置:

正确配置DKIM,请查看这个文档(之后我会将它翻译)接下来也会简单介绍:
https://wiki.zimbra.com/wiki/Configuring_for_DKIM_Signing
在公共DNS解析上配置DKIM,如下:

如何测试:

有多种网站可以测试它,比如:http://dkimvalidator.com/ ,你需要发送一封邮件,如果测试通过,当你有DKIM配置,你将可以在网站上查看到DKIM部分的返回结果,由于我这边没有设置所以返回结果:

ZCS 8.7.x 设置2048-bit 的签名:

使用zcs 8.7.x 生成一个 2048字节的key,运行下面的命令:(如果是第一次设置使用 -a ,如果是更新DKIM 使用 -u)

/opt/zimbra/libexec/zmdkimkeyutil -a -d yourdomain.com

然后观察接下来的显示:(使用你自己的信息)

DKIM Data added to LDAP for domain zimbra.io with selector 25D766CE-CEAC-11E7-B087-020B6DB9DD9A
Public signature to enter into DNS:
25D766CE-CEAC-11E7-B087-020B6DB9DD9A._domainkey IN      TXT     ( "v=DKIM1; k=rsa; "
          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwA4vVMiV3/14hRMzbKNnBKNThqxTWLi2E5NqqHLccIJg/P33yqwgGVKKUM9HFfXZ8urz6/dl8oNG3oxs73W1sgWHrFRo3ZayHsuUMe+DLyt8wtyR/RUae0nvd6Z6t0lPwujXWBrRS/FeMg/IGA8ExBKjD+aAYdQfH/lhlDGzumTXgbSB0KMzlpOjcum2Aes69rEiR744GGaPb2"
          "X3MxK8vjpeMIx16n2tADb0wKKP19WTF0at5HCP8F4SFflLUPJMOC1Be9FCWjTjNr1qrRZTwCwC7OC9tnV7SsKKXG+8D6hu39Tm5U1GLzpKvLMIv14b6MWsU9cV/iVKH+hQq4YRowIDAQAB" )  ; ----- DKIM key 25D766CE-CEAC-11E7-B087-020B6DB9DD9A for zimbra.io

默认,dns服务器 txt记录支持255个字符,所以需要做接下来的操作:

  • 在dns配置页创建一个新的TXT记录,然后值设置类似于"v=DKIM1; k=rsa; p=ALL-THE-CODE-"
  • 如果使用其他的dns服务器,如bind,在配置里面如下添加:

25D766CE-CEAC-11E7-B087-020B6DB9DD9A._domainkey    IN    TXT    ("v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w..."
25D766CE-CEAC-11E7-B087-020B6DB9DD9A._domainkey    IN    TXT    "...AQAB")

*其他dns设置:

25D766CE-CEAC-11E7-B087-020B6DB9DD9A._domainkey IN      TXT     ("v=DKIM1;k=rsa; p="
"MIIBIjANBgkqhkiG9w..."
"...AQAB") 

如何检查正确设置DKIM值:

使用这个url: http://dkimcore.org/tools/keycheck.html 填写selector 和域名进行检查,可以对是否正确设置DKIM进程检查


然后几秒钟后将会看到结果:

参考文档:
https://www.douban.com/group/topic/83569978/
https://baike.baidu.com/item/DKIM/152526?fr=aladdin

DMARC:

DMARC, 是 “Domain-based Message Authentication, Reporting & Conformance”的简写,多个组织为了识别并拦截钓鱼邮件,使钓鱼邮件不再进入用户邮箱中(收件箱or垃圾箱),减少邮箱用户打开/阅读到钓鱼邮件的可能性,从而保护用户的帐号密码等个人信息安全。

DMARC 标准化 如何使用SPF和DKIM机制对邮件接收器行邮件认证,这意味着会在AOL、Gmail、Hotmail、Yahoo对发送者的信息进行一致性验证,然后其他邮件接收者执行DMARC。我们希望这将鼓励发送者验证他们的出站电子邮件,使电子邮件成为更可靠的交流方式

需要配置哪里:

在公共DNS中配置

如何设置:

可以在多个网站生成DMARC记录,如: http://www.kitterman.com/dmarc/assistant.html 例如是用域名example.com,请注意所有默认选项都将有内含值,即使在生成器中没有选择它们:

这些配置将生成DNS条目:

如何测试:

下面这个链接是测试DMARC的网站: https://dmarcian.com/dmarc-inspector/google.com 这个网站将显示你的所有DMARC信息域

RDNS:

反向DNS用来确定一个IP关联的域名。有些邮件公司,将拒收没有有效反向dns的邮件


image.png

需要配置哪里:

拥有RDNS和服务器的SMTP之间的完美匹配,有以下条件:

  • 在公共DNS的ISP服务商,或者如果你能管理公共DNS来管理你的ip段,这样你能添加你自己的rdns
  • 在zimbra服务器,需要编辑HELO来匹配它和rdns之间的记录

如何设置:

修改公共DNS来匹配IP和rdns,你需要联系你的ISP服务商,或者你能活编辑你的IP的dns记录,然后改变它。例如,你的60.60.60.60的ip,然后需要让它解析至 mail.example.com

编辑SMTP,然后匹配它的外部rdns。在zimbra 8.0.x 下修改:

zmlocalconfig -e postfix_smtpd_banner="mail.example.com"
zmcontrol restart

zimbra 8.5 8.6 或者更高:

zmprov ms  `zmhostname` zimbraMtaSmtpdBanner mail.example.com
zmcontrol restart

如何测试:

使用这个网址: https://mxtoolbox.com/ReverseLookup.aspx ,如果正确配置,将会返回结果

参考文档:
官方原文

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,392评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,258评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,417评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,992评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,930评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,199评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,652评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,327评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,463评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,382评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,432评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,118评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,704评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,787评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,999评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,476评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,057评论 2 341