第 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 软件包提供。
使用 POP
服务器时,电子邮件消息由电子邮件客户端应用程序下载。默认情况下,大多数 POP
电子邮件客户端配置为在电子邮件服务器上成功传输消息后将其删除,但此设置通常可以更改。
POP
与重要的互联网消息传递标准完全兼容,例如允许电子邮件附件的 多用途 Internet 邮件扩展( MIME)。
POP
最适合通过一个系统读取电子邮件。它还非常适合没有永久连接到互联网或包含邮件服务器的网络的用户。不幸的是,对于网络连接较慢的用户,POP
在验证时需要客户端程序来下载每条消息的所有内容。如果消息有很大的附件,可能需要很长时间。
标准 POP
协议的最新版本是 POP3
。
但是,有不同的使用较少使用的 POP
协议变体:
-
APOP -
使用
.用户密码的编码哈希从电子邮件客户端发送到服务器,而不是发送未加密的密码。MD5
验证的 POP3 -
KPOP -
带 Kerberos 验证的 POP3
. -
RPOP -
使用
.这使用用户 ID(类似于密码)来验证 POP 请求。但是,此 ID 未加密,因此RPOP
身份验证的 POP3RPOP
并不比标准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
服务器时,可以浏览之前读取的消息。
IMAP
与 POP
完全兼容,与重要的 Internet 消息标准(如 MIME)完全兼容,后者允许电子邮件附件。
若要提高安全性,可以将 SSL
加密用于客户端身份验证和数据传输会话。这可以通过使用 imaps
服务或使用 stunnel
程序来启用。
-
pop3s
服务 -
stunnel
应用程序 -
starttls
命令
有关保护电子邮件通信的详情请参考 第 15.5.1 节 “安全通信”。
其他免费的,以及商业、IMAP 客户端和服务器可用,其中很多扩展了 IMAP 协议并提供附加功能。
15.1.2.3. Dovecot
实施 IMAP
和 POP3 协议的
imap-login
和 pop3
-login 进程由 dovecot
软件包中包含的主 dovecot 守护进程生成。IMAP 和
POP
的使用通过 /etc/dovecot/dovecot.conf
配置文件进行配置;默认情况下,dovecot
使用 SSL
运行 IMAP 和
POP3
。要将 dovecot
配置为使用 POP
,请完成以下步骤:
编辑
/etc/dovecot/dovecot.conf
配置文件,以确保 protocol变量
被取消注释(删除行开头的 hash 符号(#
))并包含pop3
参数。例如:protocols = imap pop3 lmtp
当
协议
变量被注释掉时,dovecot
将使用默认值,如上方所述。以
root
用户身份运行以下命令,为当前会话启用更改操作:~]# systemctl restart dovecot
运行以下命令,使更改在下一次重启后正常运行:
~]# 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