Linux BIND DNS配置发件人策略框架(SPF)电子邮件防伪系统

时间:2020-01-09 10:40:01  来源:igfitidea点击:

问题描述:如何在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