分享
 
 
 

POSTFIX和CYRUSIMAP安装手册

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

作者: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 o+r /etc/sasldb #让所有用户都可以访问,否则POSTFIX在验证的时候怎么样都通不过:)。

echo "pwcheck_method: pwcheck" > /usr/lib/sasl/smtpd.conf #创建SMTP验证文件

至此SASL库已经成功安装。

4、安装POSTFIX源码

安装前我们需要先下载域名,可以从POSTFIX的网站上找到相关的链接,这里我们使用国内的镜像:

ftp://postfix.cn99.com/pub/postfix/index.html

从这个地址可以下载到最新版本的POSTFIX,我们这里使用

ftp://postfix.cn99.com/pub/postfix/official/postfix-20010228-pl06.tar.gz

按照以下的步骤创建我们的安装目录:

mkdir /usr/local/servers/packages/postfix -p

cd /usr/local/servers/packages/postfix

wget ftp://postfix.cn99.com/pub/postfix/official/postfix-20010228-pl06.tar.gz

tar zxf postfix-20010228-pl06.tar.gz

cd postfix-20010228-pl06

到这里我们已经成功的把源码解开了,并使用CD命令进入了POSTFIX的源码目录。接下来需要根据我们的需要进行配置。

make -f Makefile.init makefiles 'CCARGS-DUSE_SASL_AUTH -I/usr/local/servers/library/sasl/include' 'AUXLIBS=-L/usr/local/servers/library/sasl/lib -lsasl'

make

sh INSTALL.sh

按照以下的提示输入相关的路径([]号中的是缺省值,]号后的是输入值)

install_root: [/] /

tempdir: [/usr/local/servers/packages/postfix/postfix-20010228-pl06] /tmp

config_directory: [/etc/postfix] /etc/postfix

daemon_directory: [/usr/libexec/postfix] /usr/local/servers/postfix/libexec

command_directory: [/usr/sbin] /usr/local/servers/postfix/sbin

queue_directory: [/var/spool/postfix] /var/spool/postfix

sendmail_path: [/usr/sbin/sendmail]

newaliases_path: [/usr/bin/newaliases]

mailq_path: [/usr/bin/mailq]

mail_owner: [postfix]

setgid: [no]

manpages: [/usr/local/man] /usr/local/servers/postfix/man

完成以后POSTFIX的安装程序会自动把POSTFIX安装至所提供的目录。

5、安装CYRUS-IMAP源码

从以下地址得到CYRUS-IMAP的源码:

ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-2.0.16.tar.gz

按照以下的步骤创建安装目录:

mkdir /usr/local/servers/packages/cyrus -p

cd /usr/local/servers/packages/cyrus

wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-2.0.16.tar.gz

tar zxf cyrus-imapd-2.0.16.tar.gz

cd cyrus-imapd-2.0.16

然后使用以下命令配置源码:

./configure --prefix=/usr/local/servers/cyrus --with-cyrus-prefix=/usr/local/servers/cyrus --with-sasl=/usr/local/servers/library/sasl

make

make install

完成之后Cyrus会安装在/usr/local/servers/cyrus中。

接下来我们要创建CYRUS运行时所必须的几个目录:

mkdir /var/imap/sieve -p

mkdir /var/spool/imap

chown cyrus.mail /var/imap -R

chown cyrus.mail /var/spool/imap -R

二、系统配置

配置工作主要有两部分,一是配置SMTP服务器也就是POSTFIX,二是配置IMAP服务器也就是CYRUS-IMAP。我们一步一步来,先配置CYRUS-IMAP。

1、配置CYRUS-IMAP服务器

CYRUS-IMAP服务器的配置文件主要有两个cyrus.conf和imapd.conf

创建/etc/cyrus.conf,内容如下:

START {

mboxlist cmd="ctl_mboxlist -r"

deliver cmd="ctl_deliver -r"

}

SERVICES {

imap cmd="imapd" listen="imap" prefork=0

pop3 cmd="pop3d" listen="pop3" prefork=0

sieve cmd="timsieved" listen="127.0.0.1:sieve" prefork=0

lmtpunix cmd="lmtpd" listen="/var/imap/conf/socket/lmtp" prefork=0

}

存盘退出,在/etc/services中添加一项:

sieve 2000/tcp

存盘退出,再创建/etc/imapd.conf,内容如下:

configdirectory: /var/imap/conf

partition-default: /var/spool/imap

admins: cyrus

sasl_pwcheck_method: pwcheck

sendmail: /usr/sbin/sendmail

sieveusehomedir: false

sievedir: /var/imap/sieve

存盘退出。至此CYRUS-IMAP的配置文件已经设置完成,我们要运行它的初始化命令去生成整个目录结构:

cd /usr/local/servers/packages/cyrus/cyrus-imapd-2.0.16/tools

su cyrus

./mkimap

exit

完成之后mkimap程序会自动创建CYRUS-IMAP运行时所需的所有目录。

接下来就要创建启动脚本了,CYRUS-IMAP缺省是没有启动脚本的,我自己写了两个:

启动脚本,请将其存为/sbin/startcyrus,内容如下:

#!/bin/sh

#

# /sbin/startcyrus

#

# Starts the cyrus daemon

test -x /usr/local/servers/cyrus/bin/master' 'exit 0

if [ ! -f /var/lock/subsys/cyrus.pid ]; then

/usr/local/servers/cyrus/bin/master&

echo $! > /var/lock/subsys/cyrus.pid

echo ""

echo "Cyrus IMAP Server started."

echo ""

else

echo "Cyrus IMAP Server:`cat /var/lock/subsys/cyrus.pid`"

kill -TERM `cat /var/lock/subsys/cyrus.pid`

rm -f /var/lock/subsys/cyrus.pid

echo ""

echo "Cyrus IMAP Server shutdown normally."

echo ""

/usr/local/servers/cyrus/bin/master&

echo $! > /var/lock/subsys/cyrus.pid

echo ""

echo "Cyrus IMAP Server started."

echo ""

fi

停止脚本,请交其存为/sbin/stopcyrus,内容如下:

#!/bin/sh

if [ ! -f /var/lock/subsys/cyrus.pid ]; then

echo ""

echo "Is cyrus running already?"

echo "I can't found it's pid."

echo ""

else

echo "Cyrus IMAP Server:`cat /var/lock/subsys/cyrus.pid`"

kill -TERM `cat /var/lock/subsys/cyrus.pid`

rm -f /var/lock/subsys/cyrus.pid

echo ""

echo "Cyrus IMAP Server shutdown normally."

echo ""

fi

创建这两个文件之后,不要忘记给它们设置执行属性:

chmod +x /sbin/startcyrus

chmod +x /sbin/stopcyrus

完成以后,以ROOT的身份运行

startcyrus

然后使用

tail /var/log/messages

应该可以看到与之类似的内容:

Nov 4 19:48:28 linuxaid master[1092]: process started

Nov 4 19:48:28 linuxaid ctl_mboxlist[1093]: running mboxlist recovery

Nov 4 19:48:29 linuxaid ctl_mboxlist[1093]: done running mboxlist recovery

Nov 4 19:48:29 linuxaid master[1092]: ready for work

如果有其它的错误信息,请至论坛《邮件系统》版讨论。然后使用

stopcyrus

将CYRUS-IMAP停止。

2、配置POSTFIX服务

POSTFIX的主要配置文件都在/etc/postfix目录中。主配置文件名为main.cf,内容如下:

queue_directory = /var/spool/postfix

command_directory = /usr/local/servers/postfix/sbin

daemon_directory = /usr/local/servers/postfix/libexec

alias_maps = hash:/etc/postfix/aliases

mail_owner = postfix

myhostname = smtp.linuxaid.com.cn #主机名

mydomain = linuxaid.com.cn #域名

myorigin = $mydomain

mailbox_transport = lmtp:unix:/var/imap/conf/socket/lmtp

fallback_transport = lmtp:unix:/var/imap/conf/socket/lmtp

mynetworks = 127.0.0.0/8

smtpd_banner = $mydomain ESMTP 1.0

local_destination_concurrency_limit = 2

default_destination_concurrency_limit = 10

debug_peer_level = 2

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_maps_rbl, check_relay_domains

smtpd_sasl_auth_enable = yes

broken_sasl_auth_clients = yes

smtp_sasl_security_options = noanonymous

maximal_queue_lifetime = 30m

maps_rbl_domains = blackholes.mail-abuse.org, dialups.mail-abuse.org, relays.mail-abuse.org

smtpd_client_restrictions = permit_mynetworks, reject_maps_rbl

完成之后存盘退出,生成别名文件:

/usr/local/servers/postfix/sbin/postalias /etc/postfix/aliases

至此所有配置文件都已经成功设置,再运行:

/usr/local/servers/postfix/sbin/postfix start

即可启动POSTFIX,使用

tail /var/log/maillog

应该可以看到,与之类似的信息:

Nov 4 20:10:25 linuxaid postfix-script: warning: creating missing Postfix pid directory

Nov 4 20:10:25 linuxaid postfix-script: warning: creating missing Postfix incoming directory

Nov 4 20:10:25 linuxaid postfix-script: warning: creating missing Postfix active directory

Nov 4 20:10:25 linuxaid postfix-script: warning: creating missing Postfix bounce directory

Nov 4 20:10:25 linuxaid postfix-script: warning: creating missing Postfix defer directory

Nov 4 20:10:25 linuxaid postfix-script: warning: creating missing Postfix deferred directory

Nov 4 20:10:25 linuxaid postfix-script: warning: creating missing Postfix flush directory

Nov 4 20:10:25 linuxaid postfix-script: warning: creating missing Postfix saved directory

Nov 4 20:10:25 linuxaid postfix-script: warning: creating missing Postfix corrupt directory

Nov 4 20:10:25 linuxaid postfix-script: warning: creating missing Postfix public directory

Nov 4 20:10:25 linuxaid postfix-script: warning: creating missing Postfix private directory

Nov 4 20:10:26 linuxaid postfix-script: starting the Postfix mail system

Nov 4 20:10:26 linuxaid postfix/master[1324]: daemon started

然后使用:

/usr/local/servers/postfix/sbin/postfix stop

将POSTFIX停止

至此一个完整的服务已经安装完成。

三、管理

1、记录文件

邮件系统的记录文件主要有两个,一个是CYRUS-IMAP的记录文件/var/log/messages,另外一个是POSTFIX的记录文件/etc/log/maillog。需要监视系统时只要查看这两个文件即可。

2、用户管理

由于POSTFIX和CYRUS-IMAP都使用系统账号,所以添加用户时需要在使用系统的useradd对应的添加用户账号。下面我们以用户testuser为例子说明添加用户的过程。

步骤1,添加普通用户,并设置用户主目录为/home/mailuser,不允许其登录。

useradd testuser -d /home/mailuser -s/usr/bin/passwd

步骤2,为此用户添加邮箱。

/usr/local/servers/cyrus/bin/cyradm -u cyrus localhost

#启动CYRUS邮箱管理器,会提示你输入CYRUS的密码,输入后就可以进入管理命令行。

在命令行运行:

cm user.testuser

即可为此用户添加一个账号,如果需要添加发件箱、垃圾箱,则可以继续使用命令:

cm user.testuser.Sent

cm user.testuser.Trash

cm user.testuser.Drafts

注意,收件箱是user.testuser,所有的文件夹都必须以user.testuser为基础创建。

其它用户的管理方法也是这样。

四、启动系统

只需要使用:

startcyrus

/usr/local/servers/postfix/sbin/postfix start

就可以启动,至此你就拥有一个支持以下功能的邮件系统了:

SMTP

SMTP AUTH

IMAP4

POP3

SIEVE

进一步的功能,如邮件账号与系统账号分析等等将在以后的版本中继续说明。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有