在我的服务器中使用 DKIM 来管理多个域名(网站)

在我的服务器中使用 DKIM 来管理多个域名(网站)

由于我在 Stack 中找不到这个确切的教程,我与大家分享我的发现。多亏了这个社区,我总能解决问题。谢谢!

原始问题:我已阅读 MountainX 发布的教程(https://askubuntu.com/questions/134725/setup-dkim-domainkeys-for-ubuntu-postfix-and-mailman),但如果我想为多个域名托管和发送电子邮件,我不知道如何应用这些步骤。有人知道吗?

答案1

很好!我从问题中提到的帖子中找到了答案。我将答案本身和答案中提供的链接混合在一起。特别是第四个链接是我使用的。

事情是这样的。假设您有一台服务器或 VPS,并将您的一个域设为主域并用作服务器名称(在我的示例中为:mydomain.com)。

因此,首先,我们将更改为 root 以使事情变得简单,但是您可以跳过此步骤并在每个命令之前使用 sudo。

sudo su

现在,我们安装OpenDKIM:

apt-get install opendkim opendkim-tools

让我们修复配置文件。我们开始/etc/opendkim.conf编辑。我用的是 nano,但其他编辑器也一样。

nano /etc/opendkim.conf

打开后,让它看起来像这样。如果您觉得合适,您可以更改一些选项,但 、DomainKeyFile必须Selector保留注释。

# This is a basic configuration that can easily be adapted to suit a standard
# installation. For more advanced options, see opendkim.conf(5) and/or
# /usr/share/doc/opendkim/examples/opendkim.conf.sample.
#
#Domain                  example.com
#KeyFile                 /etc/opendkim/201205.private
#Selector                201205
#
# Commonly-used options
Canonicalization        relaxed/simple
Mode                    sv
SubDomains              yes
# Log to syslog
Syslog                  yes
LogWhy                  yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
UMask                   022
UserID                  opendkim:opendkim
#
KeyTable                /etc/opendkim/KeyTable
SigningTable            /etc/opendkim/SigningTable
ExternalIgnoreList      /etc/opendkim/TrustedHosts
InternalHosts           /etc/opendkim/TrustedHosts
#
Socket                  inet:8891@localhost
#EOF

接下来,我们创建一些文件夹和文件,用于保存有关 OpenDKIM 应使用和处理的内容的信息。现在,TrustedHosts创建文件。我们创建并编辑它:

mkdir /etc/opendkim
nano /etc/opendkim/TrustedHosts

我们必须在此文件中放入可信地址列表:localhost 和 127.0.0.1,以及您的服务器名称和 IP:

127.0.0.1
localhost
192.99.34.121
mydomain.com

现在我们编辑OpenDKIM配置文件。

nano /etc/default/opendkim

并在文件末尾添加以下几行。它们将告诉 OpenDKIM 应该在哪个端口接收签名请求:

SOCKET="inet:8891@localhost" # listen on loopback on port 8891

我们打开 Postfix 配置文件。

nano /etc/postfix/main.cf

并将这些行添加到文件末尾。它们将告诉 Postfix 应该将要签名的电子邮件发送到哪里。

milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

如果您现在不添加域,您可以重新启动所有内容,以便配置生效。

/etc/init.d/opendkim restart
/etc/init.d/postfix reload
/etc/init.d/postfix restart

完成!服务器已准备好与 DKIM 配合使用。现在,您需要将您的域添加到此系统。对于您要添加的所有域,以下步骤相同。我将使用 otherdomain.com 作为示例,请将其替换为您自己的。

记住我之前是 root 身份,但如果您不是,请运行sudo su或在命令前加上关键字sudo

sudo su

首先,我们为我们的域创建一个目录并进入其中:

mkdir -p /etc/opendkim/keys/otherdomain.com
cd /etc/opendkim/keys/otherdomain.com

现在我们为域生成一个密钥:

opendkim-genkey -r -d otherdomain.com

我们授予 OpenDKIM 用户新创建文件的所有权:

chown opendkim:opendkim default.private

我们打开KeyTable文件来为我们的新域名添加新密钥:

nano /etc/opendkim/KeyTable

我们在文件末尾添加内容(在可能存在的所有其他域之后):

default._domainkey.otherdomain.com otherdomain.com:default:/etc/opendkim/keys/otherdomain.com/default.private

我们打开SigningTable文件。

nano /etc/opendkim/SigningTable

并将其附加到文件末尾(同样,每个域一行):

otherdomain.com default._domainkey.otherdomain.com

我不确定是否有必要执行下一步,但我还是这么做了,以防万一...我们打开文件TrustedHosts

nano /etc/opendkim/TrustedHosts

并在文件末尾添加:

otherdomain.com

最后一件事:我们显示文件的内容/etc/opendkim/keys/otherdomain.com/default.txt

cat /etc/opendkim/keys/otherdomain.com/default.txt

并将引号之间的信息添加到TXT域的 DNS 区域中的记录中,并且我们还必须使用它default._domainkey作为记录的名称。注意:“引号之间”是以“ v=DKIM1;k=rsa; p=WIGfM...”开头的文本。

如果我们现在已经完成添加域,我们将重新启动所有内容以应用更改。

/etc/init.d/opendkim restart
/etc/init.d/postfix reload
/etc/init.d/postfix restart

完毕!

相关内容