本站为归档模式,欢迎加入我的 Telegram 频道

Centos+postfix+opendkim安装DKIM证书

Codex 2 分钟阅读
目录

如果评论者用的 QQ 邮箱,很可能在垃圾箱里找不到,只能自助查询里找一找。这种情况发生的原因大多是因为你服务器发的邮件被标记为 SPAM。使用这个网站可以查看你服务器的发件分数 http://www.mail-tester.com/ ,我的现在是 10 分,也就是没有特殊情况都不会被拦截。

上篇文章介绍了 Postfix 的安装方法,本文锦上添花,在基础上添加 DKIM 证书

DKIM(DomainKeys Identified Mail)是一种电子邮件的验证技术,使用密码学的基础提供了签名与验证的功能。嗯,你只需要知道这货能增加你邮件的信任度就可以了。

配置 EPEL yum 源

EPEL,即 Extra Packages for Enterprise Linux,这个软件仓库里有很多非常常用的软件,OpenDKIM 也在其中

wget -P /tmp http://mirror.pnl.gov/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh /tmp/epel-release-6-8.noarch.rpm
rm -f /tmp/epel-release-6-8.noarch.rpm

安装 OpenDKIM

使用 yum 命令直接安装

yum install opendkim

配置 OpenDKIM

接下来要修改配置文件,文件在/etc/opendkim.conf

    AutoRestart             Yes
    AutoRestartRate         10/1h
    LogWhy                  Yes
    Syslog                  Yes
    SyslogSuccess           Yes
    Mode                    sv
    Canonicalization        relaxed/simple
    ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
    InternalHosts           refile:/etc/opendkim/TrustedHosts
    KeyTable                refile:/etc/opendkim/KeyTable
    SigningTable            refile:/etc/opendkim/SigningTable
    SignatureAlgorithm      rsa-sha256
    Socket                  inet:8891@localhost
    PidFile                 /var/run/opendkim/opendkim.pid
    UMask                   022
    UserID                  opendkim:opendkim
    TemporaryDirectory      /var/tmp

生成公钥和私钥

mydomain.com 替换成你的域名

    mkdir /etc/opendkim/keys/mydomain.com
    opendkim-genkey -D /etc/opendkim/keys/mydomain.com/ -d mydomain.com -s default
    chown -R opendkim: /etc/opendkim/keys/mydomain.com
    mv /etc/opendkim/keys/mydomain.com/default.private /etc/opendkim/keys/mydomain.com/default

把 mydomain.com 添加到/etc/opendkim/KeyTable

    default._domainkey.mydomain.com mydomain.com:default:/etc/opendkim/keys/mydomain.com/default

接下来修改/etc/opendkim/SigningTable并添加如下记录

    *@mydomain.com default._domainkey.mydomain.com

添加信任主机到/etc/opendkim/TrustedHosts:

    127.0.0.1
    mydomain.com
    host.mydomain.com

确保你的域名 mydomain.com 和服务器名称都是 host.mydomain.com

最后给你的域名添加一个 TXT 记录,记录在/etc/opendkim/keys/mydomain.com/default.txt

    default._domainkey      IN      TXT     ( "v=DKIM1; k=rsa; "
              "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDApHRr7ZmXRaAB+RQRbP4VdMwIrIHIP18KFtXRsv/xpWc0Gix6ZXN13fcG03KNGKZo2PY+csPkGC5quDnH5V0JEhDZ78KcDWFsU6u4fr9ktVAdt6P7jWXjcyqdHOZ8+YN4cAeU4lRFNgQvdupIcByYwzPYMgBFHfJm9014HvRqhwIDAQAB" )  ; ----- DKIM key default for mydomain.com

如果你没有添加 SPF 记录可以顺便添加一下

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

可以通过http://dkimcore.org/tools/来检测记录是否正确

配置 postfix

为了把 OpenDKIM 和 Postfix 整合到一起需要修改/etc/postfix/main.cf:

    smtpd_milters           = inet:127.0.0.1:8891
    non_smtpd_milters       = $smtpd_milters
    milter_default_action   = accept
    milter_protocol         = 2

重启服务并设置为开机启动

    service opendkim start
    chkconfig opendkim on
    service postfix restart

如果是 centos7 则使用以下命令

    systemctl start opendkim.service
    systemctl enable opendkim.service
    systemctl restart postfix.service

测试

check-auth@verifier.port25.com 发送一封邮件,会收到自动回复

    ==========================================================
    Summary of Results
    ==========================================================
    SPF check:          pass
    DomainKeys check:   neutral
    DKIM check:         pass
    DKIM check:         pass

反向解析 rDNS

反向 DNS 查找或者反向 DNS 解析(rDNS)用于判定一个域名与给定 IP 是否互相关联。有些公司例如 AOL 会拒绝没有进行反向解析的发件服务器发出的所有消息,所以你必须确保你进行了反向解析。

这货也是决定因素之一,一些国内的 IDC 是无法提供此服务的。但是如果你用的是阿里云,只需要提交一个工单,提供你的 IP 和域名要求设置反向解析就 OK 了。

共有 条评论

    发表回复