Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 15 章 邮件服务器

红帽企业 Linux 提供许多高级应用程序来提供和访问电子邮件。本章描述了当今使用的现代电子邮件协议,以及一些旨在发送和接收电子邮件的程序。

15.1. 电子邮件协议

如今,电子邮件通过客户端/服务器架构发送。使用邮件客户端程序创建电子邮件消息。然后,该程序将消息发送到服务器。服务器随后将邮件转发到收件人的电子邮件服务器,然后邮件将发送到收件人的电子邮件客户端。

为启用此过程,各种标准网络协议允许不同的计算机,通常运行不同的操作系统并使用不同的电子邮件程序来发送和接收电子邮件。

以下讨论的协议是电子邮件传输中最常用的协议。

15.1.1. 邮件传输协议

从客户端应用程序向服务器发送的邮件以及从原始服务器发送到目标服务器的邮件发送由简单邮件传输协议 (SMTP)处理

15.1.1.1. SMTP

SMTP 的主要用途是在邮件服务器之间传输电子邮件。然而,这对电子邮件客户端也至关重要。若要发送电子邮件,客户端将邮件发送到传出邮件服务器,后者又联系目标邮件服务器以进行发送。但更中间的 SMTP 服务器可能包含在此链中。此概念称为邮件中继。因此,在配置电子邮件客户端时需要指定 SMTP 服务器。

在 Red Hat Enterprise Linux 下,用户可以在本地计算机上配置 SMTP 服务器来处理邮件发送。但是,也可以为传出邮件配置远程 SMTP 服务器。

关于 SMTP 协议的一个重要要点是它不需要身份验证。这样,互联网上的任何人都可以发送电子邮件给他人甚至大量人。SMTP 正是这种特征使垃圾电子邮件或垃圾邮件成为可能。实施中继限制限制互联网上的随机用户从通过 SMTP 服务器发送电子邮件到互联网上的其他服务器。不施加此类限制的服务器称为开放中继服务器

Red Hat Enterprise Linux 7 提供 Postfix 和 Sendmail SMTP 程序。

15.1.2. 邮件访问协议

电子邮件客户端应用程序使用两种主要协议从邮件服务器检索电子邮件:Post Office 协议 (POP)和 Internet 消息访问协议( IMAP)。

15.1.2.1. POP

Red Hat Enterprise Linux 下的默认 POP 服务器为 Dovecot,它由 dovecot 软件包提供。

注意

要安装 Dovecot,请运行以下命令:

~]# yum install dovecot

有关使用 Yum 安装软件包的详情请参考 第 9.2.4 节 “安装软件包”

使用 POP 服务器时,电子邮件消息由电子邮件客户端应用程序下载。默认情况下,大多数 POP 电子邮件客户端配置为在电子邮件服务器上成功传输消息后将其删除,但此设置通常可以更改。

POP 与重要的互联网消息传递标准完全兼容,例如允许电子邮件附件的 多用途 Internet 邮件扩展( MIME)。

POP 最适合通过一个系统读取电子邮件。它还非常适合没有永久连接到互联网或包含邮件服务器的网络的用户。不幸的是,对于网络连接较慢的用户,POP 在验证时需要客户端程序来下载每条消息的所有内容。如果消息有很大的附件,可能需要很长时间。

标准 POP 协议的最新版本是 POP3

但是,有不同的使用较少使用的 POP 协议变体:

  • APOP - 使用 MD5 验证的 POP3.用户密码的编码哈希从电子邮件客户端发送到服务器,而不是发送未加密的密码。
  • KPOP - 带 Kerberos 验证的 POP3.
  • RPOP - 使用 RPOP 身份验证的 POP3.这使用用户 ID(类似于密码)来验证 POP 请求。但是,此 ID 未加密,因此 RPOP 并不比标准 POP 更安全。

要提高安全性,您可以使用安全套接字层(SSL )加密进行客户端身份验证和数据传输会话。要启用 SSL 加密,请使用:

  • pop3s 服务
  • stunnel 应用程序
  • starttls 命令

有关保护电子邮件通信的详情请参考 第 15.5.1 节 “安全通信”

15.1.2.2. IMAP

Red Hat Enterprise Linux 下的默认 IMAP 服务器为 Dovecot,它由 dovecot 软件包提供。有关如何安装 Dovecot 的详情,请查看 第 15.1.2.1 节 “POP”

使用 IMAP 邮件服务器时,电子邮件信息仍保留在用户可以读取或删除它们的服务器上。IMAP 还允许客户端应用程序在服务器上创建、重命名或删除邮件目录,以组织和存储电子邮件。

IMAP 对于使用多台计算机访问其电子邮件的用户特别有用。协议对于通过较慢的连接连接到邮件服务器的用户也很方便,因为仅为消息下载电子邮件标题信息,直到打开并节省带宽。用户也可以在不查看或下载消息的情况下删除消息。

为方便起见,IMAP 客户端应用程序可以在本地缓存消息副本,因此当用户没有直接连接到 IMAP 服务器时,可以浏览之前读取的消息。

IMAPPOP 完全兼容,与重要的 Internet 消息标准(如 MIME)完全兼容,后者允许电子邮件附件。

若要提高安全性,可以将 SSL 加密用于客户端身份验证和数据传输会话。这可以通过使用 imaps 服务或使用 stunnel 程序来启用。

  • pop3s 服务
  • stunnel 应用程序
  • starttls 命令

有关保护电子邮件通信的详情请参考 第 15.5.1 节 “安全通信”

其他免费的,以及商业、IMAP 客户端和服务器可用,其中很多扩展了 IMAP 协议并提供附加功能。

15.1.2.3. Dovecot

实施 IMAPPOP3 协议的 imap-login 和 pop 3 -login 进程由 dovecot 软件包中包含的主 dovecot 守护进程生成。IMAP 和 POP 的使用通过 /etc/dovecot/dovecot.conf 配置文件进行配置;默认情况下,dovecot 使用 SSL 运行 IMAP 和 POP3。要将 dovecot 配置为使用 POP,请完成以下步骤:

  1. 编辑 /etc/dovecot/dovecot.conf 配置文件,以确保 protocol 变量 被取消注释(删除行开头的 hash 符号(#))并包含 pop3 参数。例如:

    protocols = imap pop3 lmtp

    协议 变量被注释掉时,dovecot 将使用默认值,如上方所述。

  2. root 用户身份运行以下命令,为当前会话启用更改操作:

    ~]# systemctl restart dovecot
  3. 运行以下命令,使更改在下一次重启后正常运行:

    ~]# systemctl enable dovecot
    Created symlink from /etc/systemd/system/multi-user.target.wants/dovecot.service to /usr/lib/systemd/system/dovecot.service.
    注意

    请注意,dvecot 仅报告其已启动 IMAP 服务器,而且会启动 POP3 服务器。

SMTP 不同,IMAP 和 POP3 都需要连接客户端以使用用户名和密码进行身份验证。默认情况下,两个协议的密码都通过网络未加密传递。

dovecot 上配置 SSL

  • 编辑 /etc/dovecot/conf.d/10-ssl.conf 配置以确保 ssl_protocols 变量被取消注释并包含 !SSLv2 !SSLv3 参数:

    ssl_protocols = !SSLv2 !SSLv3

    这些值可确保 dovecot 避免 SSL 版本 2 和 3,因为它们都已知不安全。这是因为 POODLE 中描述的漏洞:SSLv3 漏洞(CVE-2014-3566)。有关详细信息 ,请参阅 Postfix 和 Dovecot 中的 POODLE SSL 3.0 漏洞(CVE-2014-3566) 解析。

    确保 /etc/dovecot/conf.d/10-ssl.conf 包含以下选项:

            ssl=required
  • 按照您偏好编辑 /etc/pki/dovecot/dovecot-openssl.cnf 配置文件。但是,在典型的安装中,此文件不需要修改。
  • 重命名、移动或删除文件 /etc/pki/dovecot/certs/dovecot.pem/etc/pki/dovecot/private/dovecot.pem
  • 执行 /usr/libexec/dovecot/mkcert.sh 脚本,该脚本可创建 dovecot 自签名证书。这些证书复制到 /etc/pki/dovecot/certs/etc/pki/dovecot/private 目录中。要实施更改,请以 root 用户身份 运行以下命令来重启 dovecot

    ~]# systemctl restart dovecot

有关 dovecot 的更多详细信息,请访问