如何在 Linux 中配置 Postfix 和 Dovecot 的虚拟域用户?
简介
对于任何运行基于 Linux 的电子邮件服务器的人来说,配置 Postfix 和 Dovecot 的虚拟域用户都是一个必不可少的过程。这两个软件应用程序是电子邮件服务器的骨干,它们协同工作以处理收发邮件。Postfix 是负责接收邮件的邮件传输代理。
另一方面,Dovecot 是负责将收到的邮件发送到用户邮箱的邮件投递代理。在本文中,我们将提供关于如何在 Linux 中配置 Postfix 和 Dovecot 的虚拟域用户的详细指南。
Postfix 和 Dovecot 说明
Postfix 是一个开源的 MTA(邮件传输代理),用于路由和投递电子邮件。它允许您使用 SMTP(简单邮件传输协议)在服务器或个人之间发送和接收电子邮件。 Postfix 可以独立运行,但需要 Dovecot 等投递代理才能将邮件投递到本地用户邮箱。
Dovecot 是一款开源的 MDA(邮件投递代理),它将收到的邮件分类到用户邮箱中的特定文件夹中,以便 Mozilla Thunderbird 或 Microsoft Outlook 等客户端检索邮件。它支持多种协议,例如 IMAP(互联网消息访问协议)、POP3(邮局协议版本 3)和 LMTP(本地邮件传输协议)。
设置 Postfix
在 Linux 上安装 Postfix
在配置 Postfix 之前,必须先在 Linux 系统上安装它。Postfix 的安装过程因所使用的发行版而异,但通常可以通过软件包管理器完成。例如,在 Ubuntu 中,可以通过运行命令"sudo apt-get install postfix"来完成此操作。
sudo apt-get install postfix
为虚拟域和用户配置 main.cf 文件
Postfix 的主配置文件位于 /etc/postfix/main.cf。此文件包含用于指定如何接收和发送用户电子邮件的参数。要在 Postfix 中配置虚拟域和用户,必须在此文件中设置几个参数。
设置 virtual_alias_maps 和 virtual_mailbox_domains 参数
Virtual_alias_maps 是一个将电子邮件地址映射到其他电子邮件地址或别名的参数。必须在 main.cf 文件中设置此参数,以允许用户接收定向到其虚拟电子邮件地址的电子邮件。 Virtual_mailbox_domains 是另一个必须在 main.cf 文件中配置的参数,用于指定哪些域的邮箱将被虚拟存储。
为每个域/用户组合创建虚拟邮箱映射列表
虚拟邮箱映射是将用户电子邮件映射到特定目录的文件,这些目录将以虚拟方式存储他们的电子邮件。必须为上一步中指定的每个域/用户组合创建这些文件。这些文件的语法如下:
`username@domain.com domain.com/username/` 这将创建一个映射,所有发送到 username@domain.com 的电子邮件都将存储在目录 domain.com/username/ 中。
启用 SMTP 身份验证以确保安全的电子邮件传输
SMTP 身份验证允许客户端在使用 SMTP(简单邮件传输协议)发送电子邮件时进行身份验证,以便只有授权用户才能通过您的服务器发送邮件。要启用 SMTP 身份验证,必须在 main.cf 文件中将 smtpd_sasl_auth_enable 参数设置为 yes。
这将允许用户在发送电子邮件之前使用用户名和密码进行身份验证,从而提供额外的安全保障。设置 Postfix 的步骤包括:在 Linux 系统上安装 Postfix、配置 main.cf 文件中的虚拟域和用户、设置虚拟别名映射和邮箱域的参数、为每个域/用户组合创建虚拟邮箱映射,以及启用 SMTP 身份验证以确保电子邮件传输安全。
设置 Dovecot
在 Linux 上安装 Dovecot
Dovecot 是一个开源的 IMAP 和 POP3 服务器,可以使用软件包管理器轻松安装在 Linux 系统上。要安装 Dovecot,请运行以下命令:
sudo apt-get update sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d
这将安装 Dovecot 的核心组件以及 IMAP 和 POP3 守护进程。
为虚拟域和用户配置 dovecot.conf 文件
安装完成后,就该配置 Dovecot 以使其与我们的虚拟域和用户协同工作了。使用您常用的文本编辑器打开 `/etc/dovecot/dovecot.conf` 文件。在文件中找到以下部分 -
# 我们希望提供的协议。!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap pop3 lmtp # SSL/TLS 支持:是、否、必需
ssl = no # PEM 编码的 X.509 SSL/TLS 证书和私钥。
# 这些用于所有使用 SSL/TLS 的服务。 ssl_cert =
ssl_key =
passdb { driver = passwd-file
args = scheme=CRYPT username_format=%u /etc/postfix/virtual-users } userdb {
driver = static args =
uid=vmail gid=vmail home=/var/mail/%d/%n allow_all_users=yes }
请确保这些部分已取消注释(每行开头不要有 #),并根据您的需求进行修改。
启用 SSL/TLS 加密以确保安全的电子邮件检索
默认情况下,通过互联网传输电子邮件并不安全,这意味着任何人都可以拦截和阅读您的电子邮件。为了防止这种情况,我们需要启用 SSL/TLS 加密以确保安全的电子邮件检索。
在 `dovecot.conf` 文件中,将 `ssl` 参数设置为 `yes`。这将启用 Dovecot 对传入电子邮件使用加密连接。
创建带有哈希密码的用户数据库
Dovecot 需要一个用户数据库来在用户尝试检索电子邮件时对其进行身份验证。我们可以使用纯文本文件或外部数据库(例如 MySQL 或 PostgreSQL)创建此数据库。为简单起见,我们在本例中使用纯文本文件方法。
在 `/etc/dovecot/users` 创建一个新文件,并添加以下行:
user1@virtualdomain.com:{PLAIN}password1::::::
user2@virtualdomain.com:{PLAIN}password2::::::
将 `user1@virtualdomain.com` 和 `user2@virtualdomain.com` 替换为您自己的虚拟域用户的电子邮件地址,并相应地设置他们的密码。
配置 mail_location 参数以指定电子邮件的存储位置
我们需要指定 Dovecot 存储收到的电子邮件的位置。我们可以通过在 `dovecot.conf` 文件中设置 `mail_location` 参数来实现。默认情况下,设置如下 -
mail_location = mbox:~/mail:INBOX=/var/mail/%u
这告诉 Dovecot 将邮箱格式的邮件消息("mbox")存储在每个用户的主目录("~/mail")中。
对于我们的虚拟域用户,我们希望根据他们的电子邮件地址将他们的电子邮件存储在不同的目录中。为此,请将上面的代码行更改为:-
mail_location = maildir:/var/mail/virtual/%d/%n
这将以 `maildir` 格式将电子邮件存储在 `/var/mail/virtual/` 目录中,并为每个域 (`%d`) 和用户 (`%n`) 创建子目录。
常见问题排查
配置过程中可能出现的常见问题
有时,即使正确遵循所有步骤,在配置 Postfix 和 Dovecot 时仍可能出现问题。用户面临的一些常见问题包括虚拟邮箱映射不正确、SSL/TLS 证书配置错误或密码不匹配。
如果出现任何这些问题,务必检查日志文件中的调试数据和错误消息。 Postfix 的日志文件位于 /var/log/mail.log,Dovecot 的日志文件位于 /var/log/dovecot.log。
这些文件包含启动或运行期间出现的任何错误或警告信息。如果虚拟邮箱映射存在问题,请确保在 Postfix 的 main.cf 文件中正确配置了虚拟邮箱映射。
请确保已更新 DNS 设置,以包含虚拟邮箱映射中使用的主机名。如果您在尝试使用 Dovecot 连接到电子邮件服务器时遇到 SSL/TLS 证书错误,请首先检查您是否已使用 Let's Encrypt 或其他证书颁发机构为您的域设置了有效的 SSL/TLS 证书。
如果在登录尝试期间出现身份验证问题,例如用户数据库和电子邮件客户端软件之间的密码不匹配,请仔细检查所有密码。请记住,密码区分大小写,并且不能包含多余的空格。
结论
在 Linux 上配置 Postfix 和 Dovecot 的虚拟域用户可能充满挑战,但回报丰厚。了解它们如何协同工作以提供安全的电子邮件通信,将使 Web 应用程序的处理更加简单,同时保持当今许多业务运营所必需的机密性和安全标准。在 Linux 发行版(例如 Ubuntu Server 18.x/20.x LTS 版本)上配置电子邮件服务器设置时,仔细遵循上述每个步骤,您将获得成功!
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

