Linux BIND DNS配置发件人策略框架(SPF)电子邮件防伪系统
问题描述:如何在Redhat Linux BIND服务器下配置发件人策略框架(SPF)反垃圾邮件伪造系统?
建议我为公司域配置SPF,以识别和拒绝SMTP邮件发件人(返回路径)中的伪造地址,这是电子邮件垃圾邮件中的典型麻烦。
解决方法:垃圾邮件发送者总是试图欺骗电子邮件。
普通SMTP允许任何计算机发送声称来自任何人的电子邮件。
因此,垃圾邮件发送者很容易从伪造的地址发送电子邮件。
这使得很难追溯到垃圾邮件的真正来源,并且使垃圾邮件发送者很容易隐藏其真实身份以避免责任。
许多人认为,任何人伪造发件人地址(也称为"返回路径")的能力是现代SMTP中的安全缺陷,这是由源路由弃用带来的不良副作用引起的。
配置发件人策略框架的步骤
首先,您需要访问DNS服务器区域文件。
某些域寄存器/ISP提供了用于定义SPF记录的前端(控制面板)。
您需要通过编辑区域文件来设置TXT记录。
它允许您定义邮件服务器和其他主机(例如Web服务器)的真实IP地址。
为名为theitroad.com的域设置SPF
打开您的dns区域文件,例如/var/named/data/zone.theitroad.com,并添加以下内容:
@ 86400 IN TXT "v=spf1 a mx ~all"
或者
theitroad.com. IN TXT "v=spf1 a mx ~all"
保存并关闭区域文件。
重新启动绑定:
# service named restart
其中:
v = spf1
:定义SPF标记。a
:theitroad.com的IP地址是xx.yy.zz.eee,该服务器被允许从theitroad.com发送邮件。mx
:theitroad.com具有一个名为smtp.theitroad.com的MX服务器。允许从theitroad.com发送邮件。~all
:不符合任何其他机制的SPF查询将返回softfail。未从批准的服务器发送的邮件仍应被接受,但可能会受到更严格的审查。如果需要严格控制,请将-all替换为-all(硬故障)。例如,在对a和mx进行重新标记后,指定允许为给定域发送消息的系统。最后的-all指定,如果先前的机制不匹配,则应拒绝该消息。
theitroad.local. IN TXT "v=spf1 a mx -all"
大型网络设置
假设您有一个名为theitroad.com的公司域,其静态IP网络为10.16.49.128/28。
此范围内的所有IP都可以发送电子邮件。
您的电子邮件服务器名为smtp.theitroadmail.com。
您需要对theitroad.com域进行如下SPF设置:
theitroad.com. IN TXT "v=spf1 ip4:10.16.49.128/28 a mx ~all"
另外,您需要为theitroadmail.com设置SPF,如下所示:
smtp.theitroadmail.com. IN TXT "v=spf1 a -all"
tinydns(djbdns)DNS设置
如果运行tinydns/djbdns,请输入以下内容:
'theitroad.com:v=spf1 ip4210.16.49.128/28 a mx ~all:3600 'smtp.theitroadmail.com:v=spf1 a -all:3600
测试SPF/spf复核查询
首先,请确保使用DNS客户端工具(例如host或dig)更新了SPF TXT记录的内容:
$ host -t txt domain.com $ host -t txt theitroad.com $ host -t txt theitroad.com ns1.isp.com
如果您的SPF配置正确,则Web邮件服务(例如Gmail或Yahoo邮件)可以通过查看电子邮件标题显示spf结果:(
SPF实际运行中,Gmail确认电子邮件是由我自己的服务器发送的[mailed-bytheitroad.local])要查看电子邮件标头点击"回复"向下箭头>"显示原始图片":
Received-SPF: pass (google.com: domain of [email protected] designates 10.16.48.98 as permitted sender) client-ip=10.16.48.98; Authentication-Results: mx.google.com; spf=pass (google.com: domain of [email protected] designates 10.16.48.98 as permitted sender) [email protected]
Microsoft 2000/2003/2008 DNS SPF配置
如果您运行Microsoft DNS服务器,请参阅以下说明。
针对theitroad.local域的示例BIND区域文件
$ORIGIN theitroad.local $TTL 86400 @ IN SOA ns1.theitroad.local. Hyman.theitroad.local. ( 2008020302 ; Serial 3600 ; Refresh 300 ; Retry 604800 ; Expire 3600) ; Minimum @ 86400 IN NS ns1.theitroad.local. @ 86400 IN NS ns2.theitroad.local. @ 3600 IN MX 10 smtp.theitroad.local. @ 86400 IN TXT "v=spf1 ip4:10.16.49.128/28 a mx ~all" feeds 86400 IN CNAME feeds.feedburner.com. * 3600 IN A 10.16.49.130 @ 86400 IN A 10.16.49.130 rd 86400 IN A 10.16.49.130 www 3600 IN A 10.16.49.130 vpn 86400 IN A 10.10.2.5