作者:LinuxAid Floatboat
一切版权属于作者
前言
POSTFIX是一个性能卓越的MTA,拥有非常高的稳定性及安全性。在一台普通的机器上拥有足够带宽的前提下每天可以处理超过四百万封邮件。作为一个MTA,POSTFIX被设计为代替Sendmail的一个软件。关于POSTFIX的更多信息可以参见其官方网站:http: //www.postfix.org。
POSTFIX一般情况下与CYRUS-IMAP相配合,由于CYRUS-IMAP及相关的附加模块配置起来非常复杂,所以POSTFIX CYRUS-IMAP并不一定适合于初学者使用!
由于此手册未经实际验证,所以请不要转载以免误导最终用户!
本手册只在www.linuxaid.com.cn发表,大家有关于此手册的任何问题请至LinuxAid.com.cn技术支持论坛的《邮件服务器》版面讨论,LinuxAid的技术支持工程师会根据讨论的结果继续完善此手册。
一、编译源码
1、基本概念
POSTFIX只是一个MTA,也就是一个SMTP服务器。它本身只提供SMTP服务,如果你需要POP3或IMAP服务,则需要通过安装类似于CYRUS这样的IMAP服务器与其配合从而实现一个完整的系统。
由于POSTFIX只是一个MTA,它只负责邮件的转发以及本地的分发,用户管理工作由MDA负责,所以在理解上要注意。
POSTFIX的SMTP验证需要通过SASL库才可以实现,SASL库则通过一个称为PWCHECK的服务向POSTFIX提供验证的渠道。
PWCHECK会在/var/pwcheck中创建一个UNIX SOCKET文件,供客户端进行访问。
除了CYRUS-IMAP外,所有需要通过SASL进行验证的客户端软件(POSTFIX,等)都需要在SASL库的SASL目录下创建其进程所对应的配置文件,如POSTFIX的文件名为smtpd.conf。并在其中指定验证方式。
POSTFIX通过LMTP或PIPE与CYRUS-IMAP沟通,将发往本地的邮件直接通过LMTP或PIPE转给CYRUS-IMAP处理。
POSTFIX可以与MySQL结合将别名(Alias)存放于数据库中。
缺省情况下POSTFIX和CYRUS-IMAP都使用系统账号作为缺省的用户数据库。如果要使用数据库做为用户账号数据库则需要对源码进行修改,我们这里不进行介绍。
POSTFIX与CYRUS-IMAP结合并使用系统账号作为邮件账号只适用于不超过两千个账号的系统,当使用数据库(MySQL)作为用户账号存储媒介时只适用于不超过十万个邮件账号的系统。
基本概念大约就是这么多,希望大家都可以理解POSTFIX和CYRUS-IMAP这一对组合到底可以做些什么,以及有什么限制。
2、先期准备
我们假设系统所有的东西都将安装在:/usr/local/servers中,之所以要安装在这个目录里面而不使用缺省的安装路径,是为了方便大家在想要删除POSTFIX及其相关的支持文件时,可以直接通过rm对应的目录即可删除,而不需要手工去查找哪些文件需要删除(这特别适用于新入门的用户)。
相关的路径信息:
POSTFIX源码目录:/usr/local/servers/packages/postfix
POSTFIX安装目录:/usr/local/servers/postfix
CYRUS-IMAP源码目录:/usr/local/servers/packages/cyrus
CYRUS-IMAP安装目录:/usr/local/servers/cyrus
CYRUS-SASL源码目录:/usr/local/servers/packages/sasl
CYRUS-SASL安装目录:/usr/local/servers/library/sasl
在安装前我们需要先准备好所需要的目录,按照以下的步骤进行(#号后面的是注释,执行时不要输入):
useradd postfix #为POSTFIX添加一个系统账号
useradd cyrus -g mail #为cyrus添加一个系统账号,并将其所属的组设置为mail
passwd cyrus #设置cyrus的密码,注意此密码将用于管理用户账号。
usermod daemon -g group #将daemon系统账号所属的组设置为mail,因为POSTFIX在做为DAEMON支持时需要用到这个用户
mkdir /var/pwcheck #为PWCHECK,用户身份验证服务创建目录
chown cyrus.mail /var/pwcheck #将这个目录的所有者设置为cyrus和mail组
3、为支持SMTP验证准备好库文件
POSTFIX的SMTP验证需要SASL库的支持,为此我们需要在安装POSTFIX源码前先行安装SASL库文件,步骤如下:
mkdir /usr/local/servers/packages/sasl
cd /usr/local/servers/packages/sasl
wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-1.5.24.tar.gz
tar zxf cyrus-sasl-1.5.24.tar.gz
cd cyrus-sasl-1.5.24
./configure –prefix=/usr/local/servers/library/sasl –enable-plain=yes –enable-login=yes –enable-cram=no –enable-digest=no –with-pwcheck=/var/pwcheck
make
make install
ln -s /usr/local/servers/library/sasl /usr/lib/sasl
修改/etc/ld.so.conf,添加:
/usr/local/servers/library/sasl/lib
/usr/local/servers/library/sasl/lib/sasl
存盘退出,运行:
ldconfig
运行:
/usr/local/servers/library/sasl/sbin/saslpasswd -c admin
输入两次密码,这个程序会在/etc生成一个sasldb文件。对于当前版本的SASL,这个文件是必须的(虽然它在PWCHECK验证方式下没有任何作用)。
chmod …