设为首页 收藏本站
查看: 1321|回复: 0

[经验分享] postfix邮件服务器配置DKIM环境

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-12 08:58:32 | 显示全部楼层 |阅读模式
1、DKIM介绍
DKIM(DomainKeys Identified Mail),电子邮件验证标准——域名密钥识别邮件标准。
采用DKIM能有效的提高信件发送的成功率。通常结合spf使用。
2、实验环境说明系统:rhel 6.3
邮件服务器:postfix 2.6.6, dovecot 2.0.9,cyrus-sasl 2.1.23
DKIM 版本:2.8.3
IP:10.40.212.8(内),210.10.166.166(外)
域名:mx.zhangdh.com
3、安装与配置3.1、配置yum源cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
vim CentOS6-Base-163.repo将文件里面的$releasever全替换为版本号6,保存退出。
3.2、安装dkimyum install sendmail-milter  #解决dkim的libmilter依赖问题
wget ftp://ftp.sunet.se/pub/Linux/dis ... .3-8.el6.x86_64.rpm
rpm -ivh dkim-milter-2.8.3-8.el6.x86_64.rpm

注:如果是Centos6.5及其以上版本可以直接使用yum安装,安装方法如下:
yum -y install sendmail-milter dkim-milter
遇到的坑:2014-12-11日,163镜像因系统硬件故障而服务暂停,所以不能使用yum方式进行安装,如何解决?
下载sendmail-milter-8.14.4-8.el6.x86_64.rpm,然后使用rpm的方式即可完成安装。
3.3、配置dkimvim /etc/mail/dkim-milter/dkim-filter.conf
===========
AutoRestart            yes
AutorestartRate        10/1h
AlwaysAddARHeader   yes
Canonicalization        relaxed/relaxed
Domain                mx.zhangdh.com
Mode                  sv
KeyList                /etc/mail/dkim-milter/keys/keylist
ExternalIgnoreList      /etc/mail/dkim-milter/trusted-hosts
InternalHosts           /etc/mail/dkim-milter/trusted-hosts
LogWhy                yes
Subdomains            no
Selector                default
SignatureAlgorithm     rsa-sha256
#Socket                local:/var/run/dkim-milter/dkim-milter.sock
KeyFile                 /etc/mail/dkim-milter/keys/mx.zhangdh.com/default
Background             yes
Socket                  inet:8891
Syslog                  yes
SyslogSuccess           yes
UserID                  dkim-milter:dkim-milter
X-Header                yes

注:遇到的坑有下面几个
1)   忘记创建文件:/etc/mail/dkim-milter/trusted-hosts
touch /etc/mail/dkim-milter/trusted-hosts
chown -R dkim-milter:dkim-milter/etc/mail/dkim-milter
2)   使用 Socket local:/var/run/dkim-milter/dkim-milter.sock遇到权限问题,“permission denied”,解决的办法就是:Socket inet:8891[@localhost]
3)   第二步的修改,也需要同步更新/etc/postfix/main.cf
4)   不同之处是:生成的密钥的命令里default._domainkey改成了default.domainkey;
现象是:mail postfix/smtpd[1827]:warning: connect to Milter service inet:8891: No route to host?
解决办法?
============
3.4、配置trusted-hostsvim /etc/mail/dkim-milter/trusted-hosts    #设置信任的发送主机
127.0.0.1
mx.zhangdh.com
#10.40.212.0/8
3.5、生成DKIM公私钥a) 创建一个脚本并命名为create_dkim,内容如下:
#!/bin/bash
usage() {
  echo"Usage:"
  echo"   $0  <domain.com>  [selector name]"
  echo"   default selector name =default"
    exit 1
}

if [ $# -eq 0 ]; then
  usage
  exit 1
fi
KEYDIR=/etc/mail/dkim-milter/keys/$1
sel=${2-default}
mkdir -p $KEYDIR
[[ $? -ne 0 ]] && exit 127
/usr/sbin/dkim-genkey -D $KEYDIR-r -d $1 -s $sel
mv $KEYDIR/${sel}.private$KEYDIR/$sel
chmod 700 $KEYDIR
chmod 600 $KEYDIR/${sel}*
chown -R dkim-milter:dkim-milter$KEYDIR
echo"*@$1:$1:/etc/mail/dkim-milter/keys/$1/$sel" >>/etc/mail/dkim-milter/keys/keylist
echo "Add this lines to $1DNS zone file"
cat $KEYDIR/$sel.txt
echo '_ssp._domainkey IN TXT"t=y; dkim=unknown"'
echo '_adsp._domainkey IN TXT"dkim=unknown"'

b) 执行脚本生成key
./create_dkim mx.zhangdh.com #mx.zhangdh.com为邮件的域,即@后面的内容。
Add thislines to mx.zhangdh.com DNS zone file
default._domainkeyIN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDxP3g41Uf1jeCDp/slrzCuxs0vmaO7+Zgc1JC0NBDDxCirlPspz74kXettu8b2H/xE20gkjwsEIx2xgUcfzLnP3IgJETe5w1uc6fC91euaMtXNSRsOfkMKjjixCPnpy6TeYxFt6RhmJrERRCrRIaMFLusOKptd7WRFZ8WBhAWzXQIDAQAB"; ----- DKIM default for mx.zhangdh.com
_ssp._domainkeyIN TXT "t=y; dkim=unknown"
_adsp._domainkeyIN TXT "dkim=unknown"
3.6、检查生成的keypwd
/etc/mail/dkim-milter/keys
cat keylist
# sender-pattern:signing-domain:keypath
# *:example.com:selector
*@mx.zhangdh.com:mx.zhangdh.com:/etc/mail/dkim-milter/keys/mx.zhangdh.com/default

执行完以上脚本同时默认会在/etc/mail/dkim-milter/keys/下生成一个目录mx5.love21cn.net。
ll
total 8
-rw------- 1dkim-milter dkim-milter 887 Dec  8 18:26default
-rw------- 1dkim-milter dkim-milter 310 Dec  8 18:26default.txt
3.7、配置DNS的DKIM和SPF1)default._domainkey.mx.zhangdh.com IN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDxP3g41Uf1jeCDp/slrzCuxs0vmaO7+Zgc1JC0NBDDxCirlPspz74kXettu8b2H/xE20gkjwsEIx2xgUcfzLnP3IgJETe5w1uc6fC91euaMtXNSRsOfkMKjjixCPnpy6TeYxFt6RhmJrERRCrRIaMFLusOKptd7WRFZ8WBhAWzXQIDAQAB"
2)_ssp._domainkey.mx.zhangdh.com  IN TXT "t=y;dkim=unknown"
3)_adsp._domainkey.mx.zhangdh.com  IN TXT"dkim=unknown"
4)mx.zhangdh.com IN TXT  "v=spf1 +a +mx -all" #for spf
注:如果设置错误,将会出现类似下面的错误:
wKiom1ZDOajyejYJAAA65rGKKtU348.jpg                            
3.8、设置postfix main.cfecho 'non_smtpd_milters = inet:8891' >>/etc/postfix/main.cf
echo 'smtpd_milters = inet:8891' >>/etc/postfix/main.cf
echo'milter_protocol = 2' >> /etc/postfix/main.cf
echo'milter_default_action = accept' >> /etc/postfix/main.cf
下面的两行在postfix调用的时候会遇到权限问题,所以不采用:
echo 'smtpd_milters= local:/var/run/dkim-milter/dkim.sock' >> /etc/postfix/main.cf
echo'non_smtpd_milters = local:/var/run/dkim-milter/dkim.sock' >>/etc/postfix/main.cf
3.9、检查DKIM是否设置正确a) method1:
dig +short default._domainkey.mx.zhangdh.com txt @8.8.8.8
dig -ttxt default._domainkey.mx.zhangdh.com @8.8.8.8
wKiom1ZDOnixhymHAABsEovjqiA944.jpg
dig -ttxt _ssp._domainkey.mx.zhangdh.com @8.8.8.8
wKioL1ZDOtCh_TwjAABWbh_nchM438.jpg
dig -ttxt _adsp._domainkey.mx.zhangdh.com @8.8.8.8
wKiom1ZDOpej4p3eAABaXQLnKuk469.jpg
b) method2:
host -ttxt default._domainkey.mx.zhangdh.com
wKiom1ZDOqexIsrqAABfVyENq94222.jpg
c) method3:
http://dkimcore.org/tools/keycheck.html
https://metacpan.org/pod/Mail::DKIM::Verifier
4、DKIM启动与关闭1)设置自启动:chkconfig--level 2345 dkim-milter on
2)启动:/etc/init.d/dkim-milterstart
3)关闭:/etc/init.d/dkim-milterstop
5、发送测试邮件并验证这里假设使用的是foxmail客户端,如何查看DKIM和SPF是否认证成功,步骤如下:
第一步:打开收到的邮件。
第二步:点击文件菜单并选择属性,会弹出一个对话框。
第三步:在对话框中选择“详细信息”->“邮件原信息(M)”,会弹出另一个对话框。
第四步:从原始信息的对话框中查找有关DKIM和SPF相关的信息,你会看到如:
              “spf=pass”和“dkim=pass”的信息,则表示认证成功。
wKiom1ZDOrfjFmJHAAFGVncYCSk080.jpg
问题1. Dec 31 10:53:21 mail postfix/smtpd[29209]: warning: connect toMilter service inet:8891: No route to host
原因:由于开启了防火墙,导致postfix服务无法连到dkim-milter的8891端口
解决办法:
-A INPUT -p tcp -m state --state NEW -m tcp--dport 8891 -j ACCEPT



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-138141-1-1.html 上篇帖子: 邮件服务器压力测试工具postal 下篇帖子: foxmail将以往邮件导出存入本地后,邮件正文却无法正常显示!最多只能看到发件人和收 邮件服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表