返回博客

邮件服务器配置教程:如何使用 Postfix、Dovecot、MySQL 和 SpamAssassin

邮件服务器配置教程:如何使用 Postfix、Dovecot、MySQL 和 SpamAssassin

介绍

Ubuntu 20.04,您可以使用类似于 Postfix, Dovecot, MySQLSpamAssassin 的工具来配置邮件服务器。对于第一次尝试的人来说,这个过程可能会令人困惑。本教程旨在通过详细的步骤为您简化邮件服务器的配置过程。在本教程结束时,您将了解如何添加虚拟域、用户和别名。最终,您将使您的虚拟服务器更安全,免受垃圾邮件集散地的侵害。

前提条件

在开始配置邮件服务器之前,需要处理一些前提条件。首先,确保您的虚拟专用服务器有一个指向您服务器的域名。您还需要安装并配置 MySQL。此外,您需要拥有一个被授予 root 权限的用户安装 SSL 证书。最后,确保您的 FQDN  已配置并识别。

如果您以 root 用户身份安装软件包,您将拥有所有权限。这就是我们推荐它的原因:

输入您的用户密码。此时,您将看到 $ 符号变为 #。接下来,让我们逐一探索配置的不同方面。

步骤 1:安装软件包

我们将首先学习如何安装软件包:

当弹出 Postfix 配置时,选择 Internet Site:

Mail Server postfix config

系统会询问您关于 System mail 名称。在这里,您可以使用 FQDN 或主域名:

postfix configuration 2

步骤 2:创建 MySQL 数据库、虚拟域、用户和别名

接下来,一旦安装了所有软件包,我们将继续进行配置。我们的目标是配置三个表。一个用于域,一个用于用户,一个用于别名。这些将保存在我们将要创建的 MySQL 数据库中。

假设我们想将数据库命名为 servermail。您可以自由选择您喜欢的名称。以下是我们的创建方法:

您必须以 MySQL root 用户身份登录:

然后,输入您的密码。成功后将显示如下结果:

接下来,我们将专门为邮件认证创建一个新用户。像这样赋予 SELECT 权限:

之后,重新加载您的 MySQL 权限以成功应用这些权限:

接下来,我们将使用我们的数据库来创建表并输入数据:

我们将为被识别为授权域的特定域创建单独的表:

目标是将用户引入表中。因此,我们将添加相关的电子邮件地址和密码。请记住,您必须将每个用户与一个域相关联:

接下来,我们将为所有虚拟别名创建一个表,以指定我们将转发到另一个电子邮件的所有电子邮件:

在此过程结束时,您将成功创建三个表。接下来,我们必须导入数据。

  • 虚拟域名

在本节中,我们将学习如何在 中导入域名virtual_domains 表中。具体来说,我们将重点介绍如何导入主域名(example.com)和 FQDN (hostname.example.com):

  • 虚拟电子邮件

接下来,输入每个域名的电子邮件地址和相关密码。确保将所有信息更改为您自己的特定信息:

  • 虚拟别名

现在您可以导入要将另一个电子邮件地址转发到的电子邮件地址。前者是源,而后者是目的地址:

然后,您可以退出 MySQL:

Step 3: Configuring Postfix

配置 Postfix 非常重要,以便它可以管理 SMTP 连接。它还必须能够为 MySQL 数据库中输入的所有用户发送邮件。让我们首先备份默认文件。这样,您就可以在需要时轻松恢复到默认配置:

现在打开 main.cf 文件以进行修改:

首先注释掉 TLS 参数,然后追加任何其他参数。在我们的示例中,我们使用的是免费 SSL 证书。当然,您可以根据自己的要求更改配置:

接下来,您将在 TLS 设置下方追加这些参数:

之后,我们必须注释掉 mydestination默认设置。然后,我们将用 替换它localhost。进行此更改后,VPS 将能够使用 MySQL 表中的虚拟域:

现在使用此命令来验证 myhostname 参数已在您的 FQDN 中设置:

此外,追加此行以激活对表中列出的所有虚拟域的本地邮件投递:

最后,我们将添加以下参数,以指示 Postfix 配置虚拟域、用户和别名:

为确保没有错误,请将这些更改与以下文件进行对比:

https://www.dropbox.com/s/x9fpm9v1dr86gkw/etc-postfix-main.cf.txt

检查完所有这些后,您将创建三个文件以追加到 main.cf 文件中。这里的目的是向 Postfix 提供如何连接 MySQL 的指令。为此,我们将首先创建 mysql-virtual-mailbox-domains.cf 文件。当然,在您的文件中,您将根据您的个人配置进行更改:

接下来,重启 Postfix:

您必须确保 Postfix 能够找到您的域名。要对此进行测试,请使用此命令:

如果成功,该命令将返回 1。在这种情况下,您可以通过创建 mysql-virtual-mailbox-maps.cf 文件来进行处理:

再次重启 Postfix:

同样,我们将确保 Postfix 能够找到第一个电子邮件地址。要对此进行测试,请使用以下命令:

如果成功,您将获得返回值 1。因此,我们将继续创建最后一个文件:

这就完成了 Postfix 和 MySQL 之间的配置。重启 Postfix 以应用:

要确认 Postfix 确实找到了您的别名,请使用此命令:

理想情况下,您应该会收到转发到该别名的邮件作为输出。您也可以像这样修改 /etc/postfix/master.cf 文件,如果您想连接端口 587 以便与邮件客户端安全连接:

以下是如何取消注释某些行并追加参数:

有时,您可能需要重启 Postfix 以确认端口已打开:

此工具 也可以用来扫描域名端口。您可以使用它来验证端口 25587 是否已打开。

步骤 4:配置 Dovecot

现在是配置 Dovecot 的时候了。在这一部分中,我们将必须复制您要修改的 7 个文件。这是为了确保您在需要时可以恢复。逐个输入以下命令:

您必须编辑 Dovecot 的配置文件:

确保该选项已取消注释:

接下来,我们将启用以下行下方的协议: !include_try /usr/share/dovecot/protocols.d/*.protocol 行。如果需要,您还可以添加 pop3:

为确保没有错误,请将其与此文件进行比较:

https://www.dropbox.com/s/wmbe3bwy0vcficj/etc-dovecot-dovecot.conf.txt

接下来,编辑邮件配置文件:

找到 mail_location 行。您需要取消注释它并添加此参数:

之后,找到 mail_privileged_group 行。同样,取消注释它并添加 mail 参数:

为了消除任何出错的可能性,请将其与此文件进行比较:

https://www.dropbox.com/s/hnfeieuy77m5b0a/etc.dovecot.conf.d-10-mail.conf.txt

  • 验证权限

要验证权限,请使用此命令:

确保您的权限显示如下:

您可以为每个域名创建一个文件夹。所有这些文件夹都将注册在 MySQL 表中:

使用 ID 创建 vmail 用户和组:5000:

接下来,您必须更改以下目录的所有者: /var/mail 文件夹的所有者为 vmail 用户:

现在编辑 /etc/dovecot/conf.d/10-auth.conf 文件:

取消注释纯文本身份验证后,添加以下行:

使用此项来修改 auth_mechanisms 参数:

现在注释掉这一行:

要启用 MySQL 授权,您必须取消注释以下行:

要检测和修改错误,请使用以下文件:

https://www.dropbox.com/s/4h472nqrj700pqk/etc.dovecot.conf.d.10-auth.conf.txt

使用您的信息创建一个 /etc/dovecot/dovecot-sql.conf.ext 文件将允许您进行身份验证:

在文件中输入以下代码:

我们将使用自定义的 MySQL 信息来修改 /etc/dovecot/dovecot-sql.conf.ext 文件:

取消注释 driver 参数后,将 MySQL 设置为该参数,如下所示:

您可以通过取消注释 connect 行来引入您的 MySQL 特定信息:

现在您必须取消注释 default_pass_scheme 行并将其更改为 SHA-512:

取消注释 password_query:

要检测错误,请使用此文件进行对比:

https://www.dropbox.com/s/48a5r0mtgdz25cz/etc.dovecot.dovecot-sql.conf.ext.txt

接下来,您可以将 dovecot 文件夹的所有者和群组更改为 vmail 用户:

下一步是修改 /etc/dovecot/conf.d/10-master.conf 文件。您在这里需要格外小心,因为将更改不同的参数:

使用以下代码将 unix_listener 参数更改为 service_auth:

接下来,您必须编辑 service auth-worker 如下所示:

通过与此文件进行对比来检测错误:

https://www.dropbox.com/s/g0vnt233obh6v2h/etc.dovecot.conf.d.10-master.conf.txt

下一步是修改 Dovecot 的 SSL 配置文件。如果您打算使用默认配置,可以跳过此步骤,直接进入下一节:

接下来,将 ssl 参数更改为 required,如下所示:

我们还将修改以下两者的路径: ssl_certssl_key:

重启 Dovecot:

请务必检查端口 993 是否已打开。如果您已启用 pop3,那么还要检查端口 995:

如果您已经完成了到目前为止的所有步骤,恭喜您!您已成功配置了邮件服务器。为了确保您正确执行了所有步骤,您可以使用如下所示的电子邮件客户端来测试您的帐户:

端口 993 用于安全 IMAP,而端口 587/端口 25 用于 SMTP。

第 5 步:配置 SpamAssassin

我们终于来到了本教程的最后一个部分,在这里我们将配置 SpamAssassin。我们首先安装 SpamAssassin:

像这样为 SpamAssassin 创建一个用户:

您必须打开并修改配置设置才能配置 SpamAssassin:

现在您已到达此处,必须更改 ENABLED 参数以启用 SpamAssassin 守护进程:

使用此代码修改 home 和 options 参数:

使用此行来指定 PID_File 参数:

接下来,使用此命令指示 SpamAssassin 的规则将自动更新:

通过与以下文档进行对比来检查错误:

https://www.dropbox.com/s/ndvpgc2jipdd4bk/etc.default.spamassassin.txt

如果您想设置反垃圾邮件规则,则必须再次打开 /etc/spamassassin/local.cf 文件:

SpamAssassin 的工作原理是对用户收到的每封邮件进行评分。它会评估邮件的分数,如果其垃圾邮件检查得分大于 5.0,该邮件就会被标记为垃圾邮件。以下是可用于配置这些反垃圾邮件规则的参数:

反垃圾邮件规则设置完成后,您需要告诉 Postfix 每一封电子邮件都要使用 SpamAssassin 进行检查。为此,我们需要修改 /etc/postfix/master.cf 文件:

找到以下行并添加 spamassassin 过滤器:

现在您可以追加这些参数:

最后,启动 SpamAssassin 并重启 Postfix 以应用更改。重新启动后,Postfix 将开始验证电子邮件中的垃圾邮件:

就是这样!您已成功使用 Postfix 和 Dovecot 配置了您的邮件服务器。您还执行了 MySQL 身份验证,并使用 SpamAssassin 设置了垃圾邮件过滤。

结论

本教程概述了使用上述工具配置邮件服务器所需遵循的步骤。它可以作为您独立设置邮件服务器的全面指南。如果您有兴趣利用 Google 的 SMTP 服务器功能,请跟随本教程进行操作.

祝您使用愉快!

author

Pranay Kapgate

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的创意设计师,专注于通过传统和创新营销渠道打造一致的企业形象。他擅长将艺术愿景与战略营销相融合,创造具有影响力的品牌叙事。

评论

暂无评论。发表第一条评论吧。