2. 技术

2.1. Postfix MTA

 

Postfix 致力于快速、易于管理和安全,同时又与 sendmail 兼容,以免让现有用户感到不安。因此,外部看起来有点像 sendmail,但内部却完全不同。

 
--www.postfix.org 

图 1. Postfix - 全貌

看起来是不是很 впечатляюще? - 它看起来比实际情况复杂得多。Postfix 确实易于配置和处理。

与 sendmail 不同,postfix 不是一个单一的程序,而是由许多小程序组成的,每个小程序都有专门的功能。在这一点上,我不想详细介绍每个程序的功能。如果您对 Postfix 的工作原理感兴趣,请参阅 http://www.postfix.org/docs.html 上的文档。

在本文档中,您将找到使系统与完整电子邮件设置的其他组件协同运行所需的信息。

2.2. Cyrus IMAP

Cyrus IMAP 由卡内基梅隆大学开发和维护。

与 WU-IMAPd 软件包不同,Cyrus 使用自己的方法来存储用户的邮件。每条消息都存储在单独的文件中。使用单独文件的优点是提高了可靠性,因为如果发生文件系统错误,只会丢失一条消息。元数据(如消息的状态(已读等))存储在数据库中。此外,消息会被索引以提高 Cyrus 的性能,尤其是在用户数量众多和/或大型电子邮件数量众多时。没有其他任何东西能像 Cyrus IMAP 服务器一样快。

另一个非常重要的特性是您不需要为每个帐户设置本地 Un*x 用户。所有用户都由 IMAP 服务器进行身份验证。当您拥有大量用户时,这是一个很好的解决方案。

用户管理通过特殊的 IMAP 命令完成。这允许您使用命令行界面或使用可用的 Web 界面之一。这种方法比 Web 界面更安全,可以访问/etc/passwd.

从 Cyrus 2.1 开始,SASL-lib 版本 2 用于身份验证。对于本 HOWTO 中描述的设置,实现了三层身份验证。Cyrus 使用 saslauthdaemon 进行身份验证,saslauthdaemon 将请求转发到 pam_mysql,pam_mysql 最终在 MySQL 表中查找用户信息。

由于 CMU 更改了 Cyrus 的许可策略,因此更多用户将使用此软件。

2.3. Cyrus SASL

SASL 的意思是“简单身份验证和安全层”。它由 IETF(互联网工程任务组)标准化。网络服务器(在本例中为 Cyrus-IMAP)使用 SASL 来处理来自客户端的身份验证请求。

Cyrus SASL 是一个内容广泛的软件,有时不易理解。即使我只掌握了编写本 HOWTO 所需的最低限度的知识。

2.4. OpenSSL

OpenSSL 是 SASL 加密数据流所需的库。几乎所有需要加密的开源软件都使用它。大多数或所有 Un*x 发行版都预装了 OpenSSL。请务必同时安装相应的 devel 包。如果您愿意,您可以自行编译 OpenSSL。如果您需要修复安全漏洞,这将是必需的。

2.5. MySQL 数据库

MySQL 是一个非常快速、强大且非常易于使用的数据库。

由于 Cyrus 可以使用 pam 验证其用户的身份,因此您可以使用 pam_mysql 作为连接器连接到存储在 MySQL 中的用户数据库。这允许您为用户创建一个漂亮的 Web 界面,用于更改密码、定义和删除别名等。

2.6. pam_mysql

pam 的意思是“可插拔身份验证模块”,最初由 Sun 的一些人提出。同时,已经开发了许多模块。其中之一是 MySQL 的接口

使用 pam_mysql,您可以将用户密码存储在 MySQL 数据库中。此外,Postfix 能够从 MySQL 表中查找别名。最终,您将拥有一个基础,供邮局管理员完成所有管理任务。

您将能够将某些任务委派给高级用户。例如,诸如创建帐户、更改密码和创建新别名之类的任务可以委派给特定域的管理员。最终,作为系统管理员,您将有时间做一些更有效率的任务或为 Linux 文档项目编写 HOWTO。

2.7. Web-cyradm Web 界面

图 2. Web-cyradm 域管理

Web-cyradm 是 Web 界面,允许您执行维护邮件系统所需的管理任务。此屏幕截图显示了 Web-cyradm 的域管理部分。

Web-cyradm 是用 PHP 编写的,PHP 是最复杂的 html 预处理器语言。如果您没有安装 php 的 Web 服务器,我想建议您参考我的 Apache-Compile-HOWTO。本文档介绍了如何设置带有 PHP 和其他模块的 Apache。

Web-cyradm 正在全球各地的人们的积极开发中。功能列表随着每个版本的发布而增长。如果您想为 web-cyradm 做出贡献,或者您有一个好主意,请随时联系 http://www.web-cyradm.org 上的邮件列表。

以下是部分功能列表

Web-cyradm 支持其用户的不同角色。如果您计划将其用作高级用户的前端,请注意安全可能是一个问题。基于角色的内容需要安全审查。