首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > Postfix > POSTFIX和CYRUSIMAP安装手册 > 正文

POSTFIX和CYRUSIMAP安装手册

出处:未知 作者:FloatBoat 时间:2005-8-25 12:15:00

前言
  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

  进一步的功能,如邮件账号与系统账号分析等等将在以后的版本中继续说明。
  然后由于此手册还在编写中,大家在实际操作过程中如果遇到任何问题可以到本站的《邮箱服务器》版讨论,同时协助我们更新此档案。

(作者:FloatBoat)

,
相关文章 热门文章
  • 在Outlook的POP/IMAP4帐号中配置LDAP通讯录
  • SquirrelMail IMAP登录请求拒绝服务漏洞
  • OfflineIMAP SSL凭证验证安全绕过漏洞
  • office outlook 2010 如何修改IMAP电子邮件的数据文件位置
  • POP与IMAP优缺点比较
  • IMAP4协议标准的全面分析
  • 解决Gmail的imap收发邮件无法连接服务器的问题
  • 开通IMAP服务 用Foxmail远程遥控QQ邮箱
  • Cyrus IMAP Server SIEVE脚本栈溢出漏洞
  • IBM Lotus Domino IMAP服务器远程拒绝服务漏洞
  • QQ邮箱支持IMAP协议,轻松实现移动办公
  • UW-IMAP tmail及dmail本地栈溢出漏洞
  • Install and configure Postfix with Cyrus-SASL+Cyr...
  • 在FreeBSD上建立一个功能完整的邮件服务器
  • postfix 邮件病毒过滤
  • 在Fedora上建立自己的邮件服务器
  • Postfix + SpamAssassin 安裝手冊
  • Postfix + Courier-IMAP + Cyrus-SASL + MySQL + IMP...
  • Postfix + Cyrus-SASL + Cyrus-IMAPD + PgSQL HOWTO
  • 在FreeBSD5.1簡單安裝Postfix+Qpopper+Openwebmail
  • 在RHEL 4 上配置全功能的Postfix 服务器
  • Postfix + Cyrus-IMAP + Cyrus-SASL + MySQL + IMP 完..
  • 我的POSTFIX安装笔记
  • Postfix电子邮局的配置步骤
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号