Google Apps域为BIND或Djbdns创建SPF记录

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

如何使用SPF验证我们的域?
如何使用BIND 9或djbdns为Google Apps域配置SPF?

您必须为所有用于发送电子邮件的域创建一个发件人策略框架(SPF)。

SPF可以识别允许哪些邮件服务器代表您的域发送电子邮件。
这用于防止垃圾邮件发送者使用您域中的伪造发件人地址(例如[email protected])发送邮件,其中foo不是有效的用户名。
在此示例中,垃圾邮件发送者使用[email protected]将垃圾邮件发送到[email protected]
当我的邮件服务器从[email protected]接收到一条消息时,它将检查example.com的SPF记录以查明它是否为有效消息。
如果邮件来自SPF记录中列出的邮件服务器之外的其他服务器,则我的邮件服务器可以拒绝该邮件为垃圾邮件或将其标记为垃圾邮件。

配置示例

theitroad.com can send email using the ALL of the following servers:
      /// 
       |                                        +----------------------+
    Mail Server (point to)                      | server1.theitroad.com | w/ local sendmail 74.86.48.99 
       |                             +----------+----------------------+
   +------------+                    |            
   |   Google   |                    |          +----------------------+
   |   Apps     |                    |          | server2.theitroad.com | w/ local sendmail 74.86.48.98
   |   Mail     +--------------------+----------+----------------------+
   |   Server   |                    |
   +------------+                    |          +----------------------+
         |                           |          | server3.theitroad.com | w/ local sendmail 74.86.48.102
theitroad.com.s7b1.psmtp.com.        +----------+----------------------+
theitroad.com.s7b2.psmtp.com.
theitroad.com.s7a1.psmtp.com.
theitroad.com.s7a2.psmtp.com.

请考虑以下示例:

$ host -t mx theitroad.com

输出示例:

theitroad.com mail is handled by 4 theitroad.com.s7b2.psmtp.com.
theitroad.com mail is handled by 1 theitroad.com.s7a1.psmtp.com.
theitroad.com mail is handled by 2 theitroad.com.s7a2.psmtp.com.
theitroad.com mail is handled by 3 theitroad.com.s7b1.psmtp.com.

上面的四个MX服务器接收到theitroad.com域的邮件。
以上所有服务器均由Google应用管理。
但是,theitroad.com具有3个基于KVM的vps服务器来托管其网站。
这三个节点还向其客户或用户发送电子邮件。
您还需要将它们添加到列表中:

kvm1: 74.86.48.99
kvm2: 74.86.48.98
kvm3: 74.86.48.102

最后,其公共IP地址也可能会向其客户发送电子邮件:

$ host theitroad.com

输出示例:

75.126.153.214

如何为theitroad.com建立SPF记录?

您需要在theitroad.com区域文件(BIND 9语法)中添加以下条目:

@                       3600   IN TXT   "v=spf1 a mx ip4:74.86.48.99 ip4:74.86.48.98 ip4:74.86.48.102 include:_spf.google.com ~all"

如果使用的是djbdns,请输入:

'theitroad.com:v=spf1 ip4274.86.48.99 ip4274.86.48.102 ip4274.86.48.98 a mx include2_spf.google.com ~all:3600
'theitroad.com.s7a1.psmtp.com:v=spf1 a -all:3600
'theitroad.com.s7a2.psmtp.com:v=spf1 a -all:3600
'theitroad.com.s7b1.psmtp.com:v=spf1 a -all:3600
'theitroad.com.s7b2.psmtp.com:v=spf1 a -all:3600
's7a1.psmtp.com:v=spf1 a -all:3600
's7a2.psmtp.com:v=spf1 a -all:3600
's7b1.psmtp.com:v=spf1 a -all:3600
's7b2.psmtp.com:v=spf1 a -all:3600

其中:

  • @:域名,即theitroad.com。
  • 3600:域名的TTL。
  • IN TXT v = spf1:重新启动SPF。
  • `a':theitroad.com的IP地址为75.126.153.214,可以从theitroad.com发送邮件。
  • mx:* .psmtp.com。服务器被允许从theitroad.com发送邮件。
  • ip4:74.86.48.99:74.86.48.99被允许从theitroad.com发送邮件。
  • ip4:74.86.48.98:74.86.48.98被允许从theitroad.com发送邮件。
  • ip4:74.86.48.102:74.86.48.102被允许从theitroad.com发送邮件。
  • include:_spf.google.com:也允许从_spf.google.com发送邮件(包括大量的Google Apps服务器)从theitroad.com发送邮件。
  • ~all:仍应接受未从批准的服务器发送的邮件,但可能会受到更严格的检查或垃圾邮件检查。

最后,重新加载名为BIND 9的名称(不要忘记增加序列号):

# /etc/init.d/named reload

如何验证我的SPF记录?

键入以下命令:

$ dig txt theitroad.com

或者

$ host -t txt theitroad.com

输出示例:

theitroad.com descriptive text "v=spf1 a mx ip4:74.86.48.99 ip4:74.86.48.98 ip4:74.86.48.102 include:_spf.google.com ~all"