欢迎,来自IP地址为:3.235.42.157 的朋友



腾讯云近期关闭了25端口,其VPS不能外发邮件了。这对于本站这种小网站影响虽然不大,但还是让人感觉很不爽,于是决定将邮件服务器迁移至其它主机。选来选去,忽然发现Hostigation主机居然还提供DNS的反向解析功能,这对于我这种腾讯云用户有着巨大的吸引力,因为腾讯云根本不提供域名反解功能。有了DNS的反向解析,可以大大提高邮件投递的成功率,并且由于hostigation主机本身位于国外,投递邮件给gmail等服务器也毫无压力,于是决定将邮件服务器迁移至hostigation主机。最终成功配置出一台得分为满分的邮件服务器,小小激动了一下。

Hostigation主机提供的系统种类比较少,我根据自己熟悉情况选择了CentOS 7 x64版本。系统本身预装了邮件MTA软件Postfix,理论上具备了发送邮件的能力。但是这样的发出的邮件对方是基本收不到的,因为毫无认证信息的邮件会被邮件服务器认为是垃圾邮件直接拒绝接收。

还是那句话,邮件能不能正常发出,还主要靠DNS的设置以及邮件服务器的配置。一般来说,一个邮件服务器所需要的DNS配置大致包括MX记录(用于设置为邮件服务器)、TXT记录(用于设置DKIM以及SPF的认证)和对应于MX记录的A记录。本服务器的配置如下:

记录类型 主机记录 线路类型 记录值 MX优先级
MX @ 默认 mail.daehub.com 10
TXT daehub._daehub.com 默认 v=DKIM1; k=rsa; s=email;p=MIGfM…
TXT @ 默认 v=spf1 a mx ip4:69.85.93.18 ~all
A mail 默认 69.85.93.18

 

MX记录和A记录用于标识一台邮件服务器,一般成对配置;SPF记录按以上的方式添加,只需要把IP4地址修改为相对应的地址即可;domainkey记录值是由openDKIM软件根据域名和选择器生成的,后面会讲到如何得到记录值。

我的Hostigation主机由于配置比较低,所以其CentOS 7系统精简较多,yum方式不能安装opendkim。采用如下方式进行OpenDKIM的安装:

[root@mail~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@mail~]# yum install -y opendkim
[root@mail~]# opendkim-genkey -r -s myselector -d daehub.com

第一条命令用于安装一个yum源,然后用此源安装opendkim软件。安装完成后,用opendkim-genkey工具生成用于DKIM验证的私钥和公钥文件。其中“myselector”是自己命名的选择器,其对应于DNS设置中DKIM记录的记录名,即为myselector._domainkey,而域名就是发送邮件的域名。最后一条命令运行完成后,会在当前目录生成两个文件,myselector.private和myselector.txt。其中myselector.private文件是opendkim软件要用到的向邮件头添加信息的私钥,而myselector.txt文件中包含了DNS记录myselector._domainkey的记录值。

把公钥的值添加到DNS记录中后,便完成了邮件服务器DNS相关的全部配置。可以访问dkimcore.org进行签名验证,如果检测存在签名,则说明DNS配置正确了。

OpenDKIM软件的配置如下:

Mode sv                                                   //设置模式为保存和认证
Socket inet:8891@localhost                                //设置socket端口
Umask 022                                                 //设置掩码
Canonicalization relaxed/relaxed                          //设置标准
Domain daehub.com                                         //设置域名
Selector daehub                                           //设置选择器(最好不用default)
KeyFile /etc/opendkim/keys/daehub.private                 //设置私钥文件
KeyTable refile:/etc/opendkim/KeyTable                    //设置密钥表文件
SigningTable refile:/etc/opendkim/SigningTable            //设置签名表文件
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts      //设置外部信任主机文件
InternalHosts refile:/etc/opendkim/TrustedHosts           //设置内部信任主机文件

这些配置是我自己主机的配置,修改Domain项、Selector项以及KeyFile项的值即可应用到其它主机。从配置文件中可以看出需要修改KeyTable、SigningTable、TrustedHosts以及TrustedHosts文件,其实可以根据这些文件中的示例进行配置。

#设置/etc/opendkim/KeyTable,文件中加入 daehub._domainkey.daehub.com daehub.com:daehub:/etc/opendkim/keys/daehub.private

#设置/etc/opendkim/SigningTable,文件中加入 *@daehub.com daehub._domainkey.daehub.com

#设置/etc/opendkim/TrustedHosts,文件加入 127.0.0.1 mail.daehub.com daehub.com

从配置文件还可以看出opendkim程序同postfix采用socket方式通信,使用8891端口。故还需要配置postfix同opendkim协同工作,在postfix的main.cf配置文件中增加如下内容:

smtpd_milters = inet:127.0.0.1:8891            //设置通信端口
non_smtpd_milters = $smtpd_milters             //设置通信端口
milter_default_action = accept                 //设置行为

全部配置完成后,重新启动opendkim和postfix,会在发出邮件时自动在邮件头加入DKIM签名信息,以便收件服务器进行核对。

至此,一台经的起垃圾邮件考验的邮件服务器就初步完成,可以作为全球邮件系统的一台MTA了。当然,为了使用方便,还可以给服务器加入SMTP认证功能,方便本网站外发邮件。postfix的SMTP配置本次不做介绍了,有兴趣可以参照腾讯VPS CentOS系统搭建postfix邮件服务器步骤搭建,也没什么新东西可说。

最后,当然是验证一下服务器实力了呀,看看下图就知道,可以通过这台服务器给Gmail邮箱发邮件,并且接收邮件时SPF以及DKIM全部验证通过,邮件服务器完美迁移至hostigation。觉得不错的话,就点击这里注册吧。(PS:由于hostigation被anyNode收购,关于注册和主机管理的内容通过Hostigation主机变更为anyNode的说明了解详情

2 thoughts on “满分邮件配置记-Hostigation主机CentOS 7系统Postfix配置OpenDKIM”

  1. 博主你好,一个邮件服务器有两个域名,应该怎么设置DKIM,是否支持

    1. 我个人觉得可以通过配置OpenDKIM工具侦听不同端口的方法来配置服务器支持多个域名,也可能是侦听同一端口,配置文件中支持多个域名,具体情况我也不是很清楚,可能要看OpenDKIM的手册才能够回答。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注