开发者社区> 技术小胖子> 正文

postfix大量外发邮件服务器的配置之DomainKey

简介:
+关注继续查看

DomainKey 介绍:
雅虎的这项技术被称之为“DNS端的电子签名(DomainKeys)”,专门对付各种各样经过改头换面的垃圾邮件。
垃圾邮件经常通过改动电子邮件的发送着对用户进行欺骗,用户往往会误以为这不是垃圾邮件,因而打开查看的可能性加大。
雅虎的“DomainKeys”允许接受电子邮件的系统对邮件进行检查,以确定邮件发送者的身份是不是假的。
“DomainKeys”通过使用加密技术完成电子邮件发送者身份的验证。外发的邮件通过私人密码进行数字签名,
而接受电子邮件的系统则使用公共密码对签名进行核实。
 

一. 安装domainkey

实施步骤
OS:RedHat 2.6.9-55.EL
postfix:postfix-2.5.1-1.mysql.sasl2.vda.rhel4
dk-milter:dk-milter-1.0.1.tar.gz

1. 安装dk-milter

注意:

安装之前请先检查是否安装了sendmail-devel软件包
因为在编译时会有依赖关系
下载http://nchc.dl.sourceforge.net/sourceforge/dk-milter/dk-milter-1.0.1.tar.gz

                       
[root@  opt]#tar zxvf dk-milter-1.0.1.tar.gz
[root@  opt]#cd dk-milter-1.0.1
[root@  opt]#sh Build -c
[root@  opt]#sh Buld install
[root@  opt]#cd dk-filter
[root@  opt]#chmod +x  gentxt.csh
[root@  opt]#./gentxt.sh  default  *****.com                    
[root@  opt]#cp default.private  /etc/postfix/****.com.key.pem   
[root@  opt]#chmod 600  /etc/postfix/****.key.pem
[root@  opt]#/usr/bin/dk-filter -A -l -p inet:8891@localhost -d ****.com -s /etc/postfix/****.com.key.pem -S default


dk-filter 参数说明:

-a peerlist      # 哪些主机不做检查
-A               # dk-filter 挂掉后自动重启
-b modes         # s (singer) / v (verify) 预设为sv
-c canon         # 预设是 simple (邮件头不变),
                 # 另外是 relaxed (邮件头可能修改,去除空白,不换行)
-C config        # 详细配置
-d domlist       # 要签名的域名列表,以逗号分隔
-D               #
-f               # 前台执行
-h               # 在 Mail Header 中加入 X-DomainKeys 信息
-H               # DomainKey-Signature 说明签名的 header 信息
-i ilist         # 只做签名, 不做验证,默认127.0.0.1
-I elist         # 通过此主机转发的信做签名,不做验证
-l               # log 记录日志到 maillog
-m mtalist       # MTA 名字,也就是 DaemonPortOptions 中的 Name,預設是全部
-M macrolist     # MTA macros which enable signing
-o hdrlist       # 哪些 Header 不 sign,Ex: -o to,subject,date , From 一定要 sign
-P pidfile       # pid file 进程路径
-s keyfile       # private key
-S selector      # selector,会以 selector._domainkey.Domain 进行 type=TXT 查询
-u userid        # 运行用户
-V               # 检查版本


二. DNS配置:
系统自带的BIND,为节省时间 我在这里使用webmin做了配置记录
这个webmin很强大了,配置简单不容易出错 DNS基本配置不是本文重点
最基本的DNS A,MX记录等在这里就不介绍了

只写出与本文相关的配置:如下

1. 在dns 配置文件中添加文本记录:
[这个记录很难在服务商的服务器上添加]
default._domainkey.****.com.    IN  TXT    "k=rsa; t=y; p=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALcmSvH4TMzpP5zi6zOy/Ffwl4FQ/irk 8T6NhlfqeJuPY04uC8jFEE603zU5iktvK/VKb6P9WHSA54CSlULzaXcCAwEAAQ=="
_domainkey.****.com.    IN  TXT     "k=rsa; t=y; p=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALcmSvH4TMzpP5zi6zOy/Ffwl4FQ/irk 8T6NhlfqeJuPY04uC8jFEE603zU5iktvK/VKb6P9WHSA54CSlULzaXcCAwEAAQ=="

测试是否生效: nslookup

>set type=txt

>default._domainkey.××××.com

Non-authoritative answer:

default._domainkey.××××.com    text =

        "k=rsa; t=y; p=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALcmSvH4TMzpP5zi6zOy/Ffwl4FQ/irk 8T6NhlfqeJuPY04uC8jFEE603zU5iktvK/VKb6P9WHSA54CSlULzaXcCAwEAAQ=="

出现上边的公钥就表示没问题了


2. 设置 SPF
Sender Policy Framework。SPF可以防止别人伪造你来发邮件,是一个反伪造性邮件的解决方案。
当你定义了你的domain name的SPF记录之后,接收邮件方会根据你的SPF记录来确定连接过来的IP地址是
否被包含在SPF记录里面,如果在,则认为是一封正确的邮件,否则则认为是一封伪造的邮件。
在DNS服务器上添加如下记录:

*****.com.    IN    TXT    "v=spf1 a mx ~all"

3. 修改 /etc/postfix/main.cf
添加如下参数:
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

重启postfix


三. 测试

发一测试邮件到互联网上的邮件用户 

Return-Path: <andyliu@****.com>
X-Original-To: andyliu@****.cn
Delivered-To: andyliu@****.cn
Received: from mail.****.com (unknown [XXX.XXX.XXX.XXX])
    by mail.****.cn (Postfix) with ESMTP id 0CEFA7C0352
    for <andyliu@e****.cn>; Thu,  1 Jul 2010 15:22:16 +0800 (CST)
Received: from test-pc (unknown [192.168.6.1])
    by mail.****.com (Postfix) with ESMTPA id 673329810B
    for <andyliu@****.cn>; Thu,  1 Jul 2010 14:45:30 +0800 (CST)
DomainKey-Signature: a=rsa-sha1; s=default; d=****.com; c=simple; q=dns;
    b=Qg2Qo63K8I/gMI2xL5Gc4svTlyvLeuidFflG9L0xgeJxqnDvx+oKGMeXOgOQ+nET1
    LtOXPB4Llf9kAcBL9n6LQ==

其中Domainkey 部分就说明了公共密钥已经添加到了邮件头中!
恭喜你完成了!




     本文转自andylhz 51CTO博客,原文链接:http://blog.51cto.com/andylhz2009/342332,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
jboss eap 6.3 域(Domain)模式配置
jboss提供了二种运行模式:standalone(独立运行模式)、domain(域模式),日常开发中,使用standalone模式足已;但生产部署时,一个app,往往是部署在jboss集群环境中的,如果所有jboss server均采用standalone模式,会给运维带来极大的工作量,需要每台jboss server上逐一部署/更新,显然不适合。
1145 0
Azure云部署Postfix邮件系统(一)
简介 毫无疑问,云计算是今年和今后几年IT界最重要的概念之一,而随着云的提出,各种应用也不断出现,在云计算领域,各大著名IT厂商都推出自己的特有“云”。在一个新技术的探索阶段,在云计算的模式最终成熟之前,任何一方任何一家厂商甚至是个人开发者都有权利来解释它将来的云计算的模样。
2413 0
服务器配置:阿里云服务器(Windows)的配置以及安装Tomcat连接服务器的教程
服务器配置:阿里云服务器(Windows)的配置以及安装Tomcat连接服务器的教程
211 0
Postfix 邮件服务器的配置
Postfix是一种功能强大且功能多样的邮件传输代理。在本文中,我们已经了解了如何使用postfix 和 dovecot为基于系统用户帐户的单个域实现基本电子邮件服务器。我们几乎没有涉及基于 postfix 的系统的真正功能,但希望能为新用户构建提供坚实的工作基础。
55 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
20895 0
21114
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载