Lenmore Blog -- 我的记事本、备忘录

记录一下SPF和DKIM配置

written on Tuesday, November 30, 2010

1. SPF

spf的配置比较简单,根据情况生成自己的spf记录,在DNS里添加一下TXT记录就可以了。比如:

example.com. IN TXT  "v=spf1 a ip4:184.72.39.65 -all"

生成器: http://old.openspf.org/wizard.html?mydomain=example.com&submit=Go!

spf语法: http://www.openspf.org/SPF_Record_Syntax

2. DKIM

网上的介绍

DKIM 技术通过在每封电子邮件上增加加密的数字标志, 然后与合法的互联网地址数据库中的记录进行比较。 当收到电子邮件后, 只有加密信息与数据库中记录匹配的电子邮件, 才能够进入用户的收件箱。 它还能检查邮件的完整性, 避免黑客等未授权者的修改。 DKIM 的基本工作原理同样是基于传统的密钥认证方式, 他会产生两组钥匙, 公钥(public key)和私钥(private key), 公钥将会存放在 DNS 中, 而私钥会存放在寄信服务器中。 私钥会自动产生,并依附在邮件头中,发送到寄信者的服务器里。 公钥则放在DNS服务器上,供自动获得。 收信的服务器,将会收到夹带在邮件头中的私钥和在DNS上自己获取公钥, 然后进行比对,比较寄信者的域名是否合法,如果不合法,则判定为垃圾邮件。 由于数字签名是无法仿造的,因此这项技术对于垃圾邮件制造者将是一次致命的打击, 他们很难再像过去一样, 通过盗用发件人姓名、改变附件属性等小伎俩达到目 的。 在此之前,垃圾邮件制造者通过把文本转换为图像等方式逃避邮件过滤, 并且使得一度逐渐下降的垃圾邮件数目再度抬头。

ubuntu + sendmail 的配置方法

sendmail有一个DKIM的开源项目, dkim-milter ,ubuntu下的包叫作 dkim-filter。

apt-get install dkim-filter

生成公钥/私钥:

dkim-genkey -s dkim -d mydomain.com
-s: selector, 不同的服务器可以有不同的Key
-d: domain, 你的域名

生成的公钥对应文件 dkim.txt, 私钥是dkim.private.txt。建议将私钥移到安全的地方,并设置好权限。

dkim.txt的内容添加到DNS里面。

修改 /etc/dkim-filter.conf

vi /etc/dkim-filter.conf
Socket          local:/var/run/dkim-filter/dkim-filter.sock
Domain                  mydomain.com
KeyFile         /etc/mail/dkim.private.mydomain.com
Selector                dkim

修改 /etc/mail/sendmail.mc

vi /etc/mail/sendmail.mc
添加一行
INPUT_MAIL_FILTER(`dkim-filter’, `S=local:/var/run/dkim-filter/dkim-filter.sock’)

需要重新生成 sendmail.cf

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

重启生效

/etc/init.d/dkim-filter restart
/etc/init.d/sendmail restart

检查是否在反垃圾邮件列表

中国反垃圾邮件联盟 http://anti-spam.org.cn/Rbl/Query/ShowForm

spamhaus http://www.spamhaus.org/lookup.lasso

PS: AWS EC2的Elastic IP通过RBL限制了发邮件,可以通过 这个表格 申请开通

This entry was tagged dkim and spf