IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Postfix 配置 SPF DKIM

    发表于 2016-04-07 14:36:06
    love 0

    设置发信 SPF

    发信的 SPF 记录不需要 Postfix 设置,而完全在 DNS 上。
    为自己的域名添加一条 TXT 记录:
    example.com IN TXT "v=spf1 mx ~all"
    这条记录表示域名自身 MX 记录指向的主机为可信主机,~all 表示除此以外的主机为软拒绝。
    SPF 记录的语法规则可以查阅 http://www.openspf.org/SPF_Record_Syntax 。

    校验来信 SPF

    Postfix 需要安装一个组件以支持 SPF 校验。
    # apt-get install postfix-policyd-spf-perl
    添加 Postfix policy:
    # postfix-add-policy spfcheck nobody /usr/sbin/postfix-policyd-spf-perl
    在 /etc/postfix/main.cf 添加以下内容:

    # SPF
    smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated check_policy_service unix:private/spfcheck
    spfcheck_time_limit = 3600
    重载配置:

    # service postfix reload
    现在 Postfix 每收到一封邮件都会进行 SPF 校验,然后在邮件头部加入类似 Received-SPF: pass 的信息。

    DKIM 签名

    DKIM 是另一种验证邮件有效性的方法。跟 SPF 不同,DKIM 在 DNS 公开一个公钥,然后用私钥对自己的邮件进行签名。收信者查询发信方域名获得公钥,然后校验签名是否有效。

    为 Postfix 添加 DKIM 支持需要用到 opendkim 这个包。

    安装 opendkim

    # apt-get install opendkim opendkim-tools
    配置 opendkim
    打开 /etc/opendkim.conf,添加以下内容:
    Domain example.com
    KeyFile /etc/mail/dkim.key
    Selector mail
    Domain 为自己的域名,KeyFile 为域名对于的私钥,Selector 为公钥存放的主机名(这里设置为 mail._domainkey.example.com)。
    打开 /etc/default/opendkim,添加以下内容:

    SOCKET="inet:8891@localhost" # listen on loopback on port 8891
    这里让 opendkim 的守护进程监听 8891 端口,用于和 Postfix 通信。

    生成密钥:

    # mkdir /etc/mail
    # cd /etc/mail
    # opendkim-genkey -s mail -d example.com
    # cp mail.private dkim.key
    查看 mail.txt 文件,里面有 dkim 的公钥,将它添加为 DNS TXT 记录,类似于:

    mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=PpYHdE2tevfEpvL1Tk2dDYv0pF28/f5M..."
    重启 opendkim:

    # service opendkim restart



沪ICP备19023445号-2号
友情链接