Postfix添加DKIM

为了防止邮件被判定为垃圾邮件,可以给邮件系统增加DKIM(DomainKeys Identified Mail)功能,其主要的原理通俗的说,就是在发送邮件的时候通过私钥在邮件头写一段加密信息,然后公钥放到DNS服务器上,邮件的接收方通过邮件头的加密信息来和DNS上的公钥比对来判定邮件来源是否合法。这个计数貌似是雅虎提出的,被Yahoo! Mail和Gmail等厂商采用。

可以在http://sourceforge.net/projects/dkim-milter/ 下载源代码:

[[email protected] dkim]# ll
total 736
-rw-r--r-- 1 root root 748415 Jul 13 2011 dkim-milter-2.8.3.tar.gz
[[email protected] dkim]# tar zxvf dkim-milter-2.8.3.tar.gz

也可以通过下载RPM安装包安装,比较简单:

#Centos5
[[email protected] dkim]#rpm -ivh http://download4.fedora.redhat.com/pub/epel/5/`uname -i`/dkim-milter-2.8.3-4.el5.`uname-i`.rpm
#Centos6
[[email protected] dkim]#rpm -ivh http://download4.fedora.redhat.com/pub/epel/6/`uname -i`/dkim-milter-2.8.3-4.el5.`uname-i`.rpm

安装完成后,首先要生成公钥和私钥两个文件,可以使用源码包里的一个脚本,其路径在:

dkim-milter-2.8.3/dkim-filter/dkim-genkey.sh

参数为要使用发信的域名:

[[email protected] dkim]# ./dkim-genkey.sh -r -d mail.banping.com
[[email protected] dkim]# ll
total 1024
-rw------- 1 root root 887 Jul 13 12:47 default.private
-rw------- 1 root root 308 Jul 13 12:47 default.txt

然后把这个default.txt的内容组织一下放到DNS上,增加一条domain=default._domainkey.mail.banping.com的txt记录,内容类似这样:

v=DKIM1;p=MIGfMA0GCSqGSIb898L9LKJ7dDFGNADCBiQKBgQCU1iD47S+n92ZeXKL444Kg7VzkczqN5xZnx6px1C+

/hImMNoQvF3X6HXLG1+OzO7s8Odf3lhpqgGWq+atFKT3YUZUY3vAL983LIKJIWo+

988QIB5iw1cotBretF0TFWVdf4weNyPrC1Qtvm8kQswIDAQAB" ;

把私钥放到想要的位置:

[[email protected] dkim]# mv default.private /etc/mail/dkim-milter/keys/default

修改keylist配置文件:

[[email protected] dkim]# vi /etc/mail/dkim-milter/keys/keylist
*@mail.rtmail.cn:mail.rtmail.cn:/etc/mail/dkim-milter/keys/default

也可以不动这个文件,把私钥位置配置在dkim-filter.conf文件中,由KeyFile参数指定:

[[email protected] dkim]# vi /etc/mail/dkim-milter/dkim-filter.conf
AutoRestart yes
Domain mail.banping.com
Selector default
Socket inet:[email protected]
Syslog Yes
X-Header Yes
KeyFile /etc/mail/dkim-milter/keys/default

至此DKIM配置完成,再修改postfix中的配置,在发信的时候启用加密功能:

[[email protected] dkim]# vi /etc/postfix/main.cn
smtpd_milters = inet:localhost:20118
non_smtpd_milters = inet:localhost:20118
milter_protocol = 2
milter_default_action = accept

OK,现在启动DKIM和PostFix服务就可以了:

[[email protected] dkim]# service dkim-milter start
[[email protected] keys]# service postfix reload
Reloading postfix: [ OK ]

除了DKIM,还可以在DNS上增加SPF配置来提高邮件发送成功的几率,比如:

v=spf1 ip4:110.120.130.140 ~all

可以查看DNS上的配置是否成功:

[[email protected] postfix]# dig -t txt mail.banping.com

; QUESTION SECTION:

;mail.banping.com. IN TXT

;; ANSWER SECTION:
mail.banping.com. 600 IN TXT "v=spf1 ip4:110.120.130.140 ~all"

可以到以下地址来测试DKIM和SPF服务是否正常:

http://www.brandonchecketts.com/emailtest.php

http://www.openspf.org/Why?show-form=1

添加新评论 »