CNGNU Postfix邮件系统系列指南之一0.71
2006-03-08 15:18 pm
来自:Linux文档
现载:www.51dibs.com
linux
CNGNU Postfix邮件系统系列指南之一
Postfix
+ Cyrus-IMAP + Cyrus-SASL
+ MySQL + IMP
完全指南
作者:王兴宇 <[email protected]>
版本:0.71
版权:GPL
发布日期:2003-02-04
目录
1. 概述
1.1. 目的
本文试图介绍如何在一个Linux平台上安装一套功能完整的邮件系统。这里我们以Postfix做SMTP服务器、Cyrus-IMAP做 POP3/IMAP4服务器、通过Cyrus-SASL对存储在MySQL数据库中的用户进行验证和授权,并且使用IMP来提供一个完善的WEBMAIL 界面。
这个邮件系统的设计目标是提供一个可扩充的、具备大多数功能的邮件系统。
本文的最新版本可以在这里找到:。如果希望使用Courier-IMAP替代了Cyrus-IMAP做IMAP/POP3服务器,可以参阅本文的姊妹篇。
有关本文所涉及的技术问题,请到的邮件技术版讨论,我会尽快回复的,请勿就技术问题给我发邮件。
本文的版权遵循GPL,可以在不删除版权信息和注明修改的情况下任意传播。
1.2. 更新历史
- 2002-05-21 第一次发布,版本0.20。
- 2002-08-13 修正一些错误,版本0.21。
- 2002-08-23 修正一些错误,版本0.22。
- 2002-09-12 在RedHat Linux Advance Server V2.1上进行了测试,修正了一些错误,版本0.30。
- 2002-12-12 修正了一些错误,添加了IMP部分的内容,版本0.31。
- 2003-01-30 修正了一些错误,添加了非明文密码部分的内容,版本0.32。
- 2003-02-05 修正了一些错误,版本0.33
- 2003-03-26 使用了SASL V2和Cyrus-IMAP 2,支持使用db4的新的Linux发行版,如RedHat 8.0和Mandrake 9.0,并以RedHat 8.0为示范平台。修正了一些错误,版本0.40。
- 2003-03-28 修正了一些错误,特别感谢bjchenxu,版本0.41。
- 2003-09-24 添加了虚拟域功能,修正了一些笔误,版本0.50。
- 2003-10-13 修正了虚拟域的错误,版本0.51。
- 2003-12-02 修正了部分错误,版本0.52。如果没有其它的输入错误问题,本文将不再更新。
- 2004-01-29 做了较大的改动,版本0.70。以AS3为示范平台。令人疯狂的是当我即将完成这次的修改时,居然因为DreamWeaver的一个脚本错误导致我一天一 夜的辛苦工作消失的干干净净。我哭~。本次的修改涉及SASL、MySQL和Cyrus-IMAP等各个部分,遵照最小修改的原则,凡是AS3中提供的部 件可用,我将不再重新编译,这可能对移植到其它平台或版本有较大的困难。
- 2004-02-04 修正了一些笔误。
1.3. TODO
- 增加邮件列表功能
- 增加SSL部分的内容
- 翻译:希望有能力的朋友可以翻译这篇文章为英文,这样国外的朋友也可以看到
1.4. 鸣谢
谢谢lesson.ward、Yunping Zhu、Temp、bjchenxu的指正。也感谢和的各位朋友的关注和建议。
参考文档:。在这篇文章撰写之初,参考过该文章,目前该文章也在不断更新,大家也可以看看。
2. 系统功能
系统逻辑结构:
+---------------------------------------------------+ | | | 25/25 25/25 110/993 143/995 80/443 | | Incoming Outgoing POP3 IMAP WEB-MAIL | | /\ /\ /\ /\ /\ | | || || || || || | | \/ \/ \/ \/ \/ | +-------------------+---------------+---------------+ | Postfix | | IMP | | | +---------------+ | | Cyrus-IMAP | | +-----------+-------------------------------+ | | Cyrus-SASL | | +-------------------------------------------+ | | saslauthd | | +-------------------------------------------+ | | PAM | | +-------------------------------------------+ | | pam_mysql | +-------+-------------------------------------------+ | MySQL | +---------------------------------------------------+
整个系统对外的界面包括几个部分,用来发信的SMTP、用来收信的POP3和IMAP、以及一个WEB界面的邮件使用系统。这里没有提供WEB界面的管理工具,需要大家自行依据实际需要开发。如果需要商业应用,可以购买CEM产品(),其中包括了完善的管理界面和优化的邮件服务器环境。
MySQL作为系统中存储数据的核心,它存储了用户的信息。这个信息不但用于POP3/IMAP和SMTP AUTH的认证需要,而且也为Postfix提供了本地接收者的列表和转发功能。
认证流程比较繁琐。整个认证是通过Cyrus-SASL来做的,通过运行一个守护进程saslauthd来监听认证需求。saslauthd这里使用了pam认证方式通过pam_mysql插件对MySQL数据库进行查找。
系统支持虚拟域用户和非虚拟域邮箱。
为什么选择这些部件组成这套邮件系统呢?
选择Postfix作为MTA,是因为它是一个非常优秀的MTA服务器,它不但性能卓越,对sendmail的兼容性好,支持和多种其它软件的隅合,而且本身就带有很强的反垃圾邮件功能。
选择MySQL作为存储用户信息的部分,是因为一方面MySQL本身是一个轻量级的数据库,在处理少量数据时非常快速,而且通过关系型数据库可以更方便地管理用户信息和提供更多用户特性(如基本每用户的过滤控制),此外还消除了因为使用系统用户所带来的安全隐患。
选择Cyrus-SASL作为认证机制,是因为它是一个标准的认证层,多数软件都支持它的认证。
选择Cyrus-IMAP作为IMAP/POP3服务器,是因为它的IMAP/POP实现效率很高,要比Courier-IMAP的实现要高一些,虽然它因此而使用的Maildir/格式与标准的QMAIL定义的格式有所不同。
这个系统将来可能的改进有几个方面:一是使用更高版本的Cyrus-SASL,直接支持对MySQL的查询认证,避免了使用saslauthd =>pam=>pam_mysql这样罗嗦的环节;二是使用更高版本的Cyrus-IMAP,对虚拟域有更加直接的支持,不用像现在这样需要 做别名转发才能实现。
3. 系统基本前提
本文以Linux系统为目标平台,支持多数的Linux平台如RedHat 7.x/8.x/9.x/AS2.1/AS3、Mandrake 8.x/9.x等,理论上也会支持其他的Linux发行版,甚至其他的UNIX系统。
这里以RedHat Linux Advance Server Enterprise V 3.0 (以下简称AS3)为说明平台。我采用了最基本的AS3安装,只选择了Web Server、Dns Name Server、MySQL Database Server、Development Tools和Kernel Development等软件包组(Core和Base组是默认必选的软件包)。
除此外,还需要额外安装以下RPM:
1、php-mysql-4.3.2-8.ent.i386.rpm(在CD3)
4. 安装MySQL
4.1. 下载
AS3默认是只包含MySQL除了服务器程序外的部分的,所以需要从RPMFIND下载MySQL的源RPM重建(最好使用源码包,采用MySQL.com提供的RPM和BIN包都可能在其它使用mysql的部分编译时候出现错误)。
[root@mail root]# cd /usr/src
转载:转载请保留本信息,本文来自http://www.51dibs.com/lp07/la/a8/l_a_f83c956634c392e3.html
|