qmail是可以完全替代Sendmail-binmail体系的新一代UNIX邮件系统,它也是一个基于UNIX操作系统的Internet邮件传输机构( Internet Mail Transfer Agent 简称MTA)。它采用标准的简单邮件传输协议(Simple Mail Transfer Protocol 简称SMTP)与Internet上其他MTA交换信息。为了解决用户邮件存储问题,qmail提出了Maildir存储方式,每个邮件作为单独的一个文件保存在用户个人的邮件目录下,这就避免了加锁。同时,qmail支持虚拟域(Virtual Domain)和虚拟用户(Virtual User),使邮件系统的用户独立于UNIX系统用户。与Sendmail相比,qmail有以下优点:
*安全---- qmail将E-mail处理过程分为多个分过程,尽量避免以Root用户身份运行。同时qmail也禁止对特权用户(Root、Deamon等)直接发信。
*可靠---- qmail的直接投递保证了E-mail在投递过程中不会丢失。qmail同时支持新的更可靠的信箱格式——Maildir,保证系统在突然崩溃情况下不至破坏整个信箱。
* 高效----运行在奔腾的BSD上,qmail每天可以轻松地投递20万封电子邮件。
*简单---- qmail 要比其他的Internet Mail系统小得多。 它通过统一的向前机制完成Forwarding、Alias和Maillist等功能, qmail使用简单高效队列来处理投递。qmail-SMTPD可以由Inetd启动,节省了一定资源。
1.3 何处可得到本指南最新版本?
本文档最新版本从http://www.xuki.org/可以得到。
1.4 本指南的发展历史?
2.9-2005年4月8日
-
系统升级成RHEL 4/CentOS4,使用2.6的内核
-
补丁和脚本集升级成最新的toaster-scripts-0.7&qmail-toaster-0.7.2
-
Clamav升级至0.83
-
qmail-scanner升级至1.25
-
spamassassin升级至3.0.2,增加及集成中文垃圾邮件过滤和中国反垃圾邮件联盟实时黑名单服务
-
vpopmail升级至vpopmail-5.4.10
2.8-2004年11月22日,之前没有规范的记录
。
。
。
1.0-2004年10月份,记不太清楚了
1.5 参考文章
Bill's Linux qmail Toaster
Life with qmail
The qmailrocks.org qmail Installation guide
1.6 免责声明
1. 此篇文章仅做参考,如果因为此文所引致的一切后果请自行负责;
2. 本人没有义务对此文做技术支持,各位如果有疑问请到我的论坛交流。
1.7 致谢
作者感谢所有对此文档及其相关内容提出疑问及报告错误的网友,是他们促进了本文档的完善,使本文档具有更好的可用性。
第二节:安装qmail前软件和环境确认 TOP
在成功安装qmail邮件系统之前,请务必确认安装中所需要的软件包和相关设置。此节给出一些确认清单,以方便各位朋友在安装之前进行相关设置的确认。当然不同的系统和服务器设置方法不一样,你可能发现有些确认动作没有列出来;如果各位有需要补充的,请联络我改正。
2.1 磁盘空间确认
下面是通常安装一套系统所需要的空间,根据需求不同空间要求也不一样。
最保守的磁盘空间必须有80-90MB;这些空间包括下载软件包和解开软件包所需要的磁盘空间。 在安装完成之后,删除下载的软件安装包,邮件服务运行所需要的安全空间15MB 就够了。
如果你的系统有多个分区:
/ 70MB.
/var 10MB
/home 起动邮件系统3MB够了,但因为邮件均存放在/home/vpopmail下,要根据实际情况调整
当然像现在硬盘价格这么低的状况下,我想硬盘空间不是什么问题的。
2.2 检查DNS设置
在开始之前,确保正确设置了DNS MX记录.例如使用"domain.com"作为邮件域,对MX记录进行测试:
在Linux下:
host -t mx domain.com
domain.com. mail is handled by 10 mail.domain.com.
host -t a mail.domain.com
mail.domain.com. has address xxx.xxx.xxx.xxx
在Windows下:
C:\>nslookup
Default Server: ns.domain.com
Address: xxx.xxx.xxx.xxx
>set type=mx
>domain.com
domain.com MX preference = 10, mail exchanger = mail.domain.com
mail.domain.com internet address = xxx.xxx.xxx.xxx
>exit
如果你的邮件服务器是用做公司内部邮件服务,不对外提供服务,此处可略过。
2.3 确认系统环境
确认下面的软件是否已经安装:
rpm -q httpd php php-mysql mysql mysql-server mysql-devel gdbm gdbm-devel openssl openssl-devel stunnel krb5-devel
如果你还没有安装, 请先安装它们. 你可以到安装光盘或是在这里找到它们的RPM包http://www.rpmfind.net.
我的操作系统选择和安装包选择:
操作系统:RedHat EL4/CentOS 4
系统软件安装包选择:
Desktops
无
Applications
无
Servers
Web Server:加选php-mysql
Mail Server:加选spamassassin,其它清除
FTP Server:Vsftpd
MySQL Database:加选mysql-bench/mysql-server/php-mysql
Development
Development Tools
SELinux: 像一些setuid程序,比如qmailAdmin, 将不能与SELinux同时工作,你必须在安装系统的时候关掉SELinux; 如果你已经安装好了操作系统并开启SELinux,并希望知道如何关掉它,请参考:
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/selinux-guide/rhlcommon-section-0068.html
如果要通过yum升级CentOS4系统,则需要导入CentOS4.0:RHEL4的dag
rpm --import http://ftp.riken.jp/Linux/dag/packages/RPM-GPG-KEY.dag.txt
2.4 设置防火墙
安装完系统后,修改/etc/httpd/conf/httpd.conf,使web服务正常启用,为mysql添加root用户的密码。如果设置了防火墙,要打开如下端口:
Outbound ports (tcp)
25 - SMTP
110 - POP
143 - IMAP
783 - Spamassassin
993 - IMAPS
Inbound Ports (tcp)
22-SSH
25 - SMTP
80 - HTTP
110 - POP services
143 - IMAP
443 - HTTPS
783 - Spamassassin
993 - IMAPS
2.5 设置MySQL
启动mysql server:
/etc/rc.d/init.d/mysqld start
设置mysql root口令:
mysqladmin -u root password xukixu (设置你的密码)
mysql的头文件和库文件分别在/usr/include/mysql和/usr/lib/mysql。
2.6 卸载已有的邮件系统
确认没有SMTP/POP/IMAP服务在运行:
/etc/init.d/sendmail stop
netstat -na | grep 25
netstat -na | grep 110
netstat -na | grep 143
service sendmail stop
删除已有的SMTP/POP/IMAP软件:
rpm -e --nodeps sendmail
第三节:下载所需要的软件包 TOP
些篇文档所使用的软件清册如下:
qmail – 本文的主角,世界上使用最广的邮件系统之一。此处使用的是netqmail-1.05的补丁集和shupp.org的Toaster 7.0运行脚本
ucspi-tcp - ucspi-tcp软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序
daemontools - 是inetd和winetd的代替品,用它来监听qmail-send,qmail-smtpd,qmail-pop3d
Vpopmail - 一个以qmail为基础的虚拟域管理包,其允许在一个IP地址添加多个虚拟域
iGenus - 大麻兄的作品,PHP编写的Webmail
iGenus_Admin -通过WEB添加域和帐号
Courier-imap -此邮件系统的IMAP模块
ezmlm – 一个快速,强大的邮件列表程序,可以通过qmailadmin对其进行配置
autorespond – 自动回复程序,可以很好的与qmailadmin配合使用
qmailadmin – 通过WEB管理vpopmail域的极好工具
vqadmin – 通过WEB添加域
SpamAssassin – 垃圾邮件防止,中文垃圾邮件清理就靠它了
Clamav - 一个免费的杀毒软件,此邮件系统的杀毒模块
MailDrop – 邮件过滤工具,比较难以使用,但是值得学会它
qmail-scanner – 一个扫描邮件队列的插件,其调用Clamav和SpamAssassin进行清除邮件病毒和垃圾邮件的动作
qmailanalog – 分析难以理解的qmail日志,并每晚给出报告
isoqlog - 一个qmail日志分析工具,可以分析和统计qmail的运行日志,并生成漂亮的HTML格式的报表
MRTG - 多路由器通信监视器(MRTG)是在网络链路上监控通信负载的一件工具
为了方便大家使用,我把下文中所提到的软件打成了一个包,下载地址为:
http://www.xuki.org/qmail_2.9.tar.gz;
大部份的软件都是用的最新版(2005年4月),我也将会跟踪软件的发行来更新些安装指南。
那么下面让我们开始安装必须的软件:
#创建/home/pkg/目录
mkdir /home/pkg
cd home
#下载软件
wget http://www.xuki.org/qmail_2.9.tar.gz
#将软件解压缩到目录中
tar -zvf qmail_2.9.tar.gz
此安装指南中所使用的软件包有:
autorespond-2.0.5.tar.gz clamav-0.83.tar.gz courier-authlib-0.55.tar.bz2 courier-imap-4.0.2.tar.bz2 daemontools-0.76.errno.patch daemontools-0.76.tar.gz ezmlm-0.53.tar.gz ezmlm-idx-0.42.tar.gz igenus_2.0.2_20040901_release.tgz igenus_admin_0.1.tgz isoqlog-2.1.1.tar.gz maildrop-1.8.0.tar.bz2 mrtg-2.10.15-1.i386.rpm netqmail-1.05.tar.gz perl-Razor-Agent-2.40-2.i386.rpm perl-suidperl-5.8.5-12.1.1.i386.rpm qlogtools_errno.patch |
qlogtools-3.1.tar.gz qmailadmin-1.2.3.tar.gz qmailanalog-0.70.errno.patch qmailanalog-0.70.tar.gz qmailmrtg7-4.0.tar.gz qmail-scanner-1.25.tgz qmail-toaster-0.7.2.patch.bz2 qms-analog-0.4.2.tar.gz spamassassin-3.0.2-2.1.el3.rf.i386.rpm squirrelmail-1.4.4.tar.gz sqwebmail-5.0.1.tar.bz2 tnef-1.2.3.1.tar.gz toaster-scripts-0.7.tar.gz ucspi-tcp-0.88.errno.patch ucspi-tcp-0.88.tar.gz vpopmail-5.4.10.tar.gz vqadmin-2.3.6.tar.gz vqregister-2.6.tar.gz |
#解压缩netqmail-1.05.tar.gz
chmod 755 -R pkg
cd pkg
tar -xzf netqmail-1.05.tar.gz
cd netqmail-1.05
./collate.sh
注意:./collate.sh这一步不要忘
第四节:安装