欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Qmail
您可以在Wikipedia上了解到此条目的英文信息 Qmail Thanks, Wikipedia. |
Qmail是由Dan Bernstein开发的可以自由下载的MTA.
Qmail被认为相对于Sendmail更加安全和高效,运行Qmail的一台pentium机器一天可以处理大约200,0000条消息。
目录 |
Qmail的特点
- 安全性 为了验证Qmail的安全性,Qmail的支持者甚至出资$1000悬赏寻找Qmail的安全漏洞,一年以后,该奖金没有被领取,而被捐献给自由软件基金会。目前,Qmail的作者也出资$500来寻求Qmail的安全漏洞。
- 速度:Qmail在一个中等规模的系统可以投递大约百万封邮件,甚至在一台486一天上能处理超过10万封邮件,起支持并行投递。Qmail支持邮件的并行投递,同时可以投递大约20封邮件。目前邮件投递的瓶颈在于SMTP协议,通过STMP向另外一台互联网主机投递一封电子邮件大约需要花费10 多秒钟。Qmail的作者提出了QMTP(Quick Mail Transfer Protocol)来加速邮件的投递,并且在Qmail中得到支持。Qmail的设计目标是在一台16M的机器上最终达到每天可以投递大约百万级数目的邮件。
- 可靠性:为了保证可靠性,Qmail只有在邮件被正确地写入到磁盘才返回处理成功的结果,这样即使在磁盘写入中发生系统崩溃或断电等情况,也可以保证邮件不被丢失,而是重新投递。
- 特别简单的虚拟域管理,甚至有一个第三方开发的称为vpopmail的add-on来支持虚拟POP域。使用这个软件包,POP3用户不需要具有系统的正式帐户。
- 使用ezmlm支持用户自控制的邮件列表功能。
- 邮件用户和系统帐户隔离,为用户提供邮件帐户不需要为其设置系统帐户,从而增加了安全性。
软件包
基础的邮件系统包含了SMTP/POP3和简单的用户管理功能,这样就只需要下面这几个软件包:
1、QMail,主要的MTA和信箱管理工具,下载网址:http://qmail.org/netqmail/ 我们都知道,在使用开源软件的时候,最大的麻烦就是修补和编译,好在QMail的最稳定的版本已经有非常长的时间没有更新过了。而第三方也有了非常完善的整合包,也就是把很多比较优秀的修补整合到一起发布。
我们这次就采用了qmail.org/netqmail/制作的整合包,可以非常好地实现目前流行的SMTP/POP3功能,甚至包括支持SMTP认证等QMail官方版本不支持的功能。
2、vPOPMail,支持邮件用户和件域的管理,下载网址:http://www.inter7.com/vpopmail.html/
由于QMail官方版本是采用系统的用户来作为邮件用户的,这样就带来2个问题。第一是系统用户可能会带来一些安全上的问题;第二就是系统文件的认证方式会带来性能和用户数量的问题,给管理带来不便。这个程序就是用来弥补这两个缺陷的,我们甚至可以通过这个软件把用户数据放到数据库或者LDAP里面。并且可以创建多个虚拟的邮件域,在单个主机上同时给多个邮件域提供服务。
3、UCSPI-TCP,给QMail提供TCP服务支持,下载网址: http://cr.yp.to/ucspi-tcp.html
由于QMail本身是不提供网络层次的功能的,整个MTA是通过UNIX的标准输出、管道等技术来和网络辅助工具交换数据的,因此QMail还需要一个辅助工具来从网络连接和客户端/其他邮件服务器来交换数据。传统的UNIX都有Inetd这个辅助进程,但是目前看来,这个程序性能和功能都比较过时了,而UCSPI-TCP是QMail官方首选的网络辅助程序,所以我们就采用了这个程序。
安装指南
Debian用户
加入以下内容到 /etc/apt/sources.list deb http://smarden.org/pape/Debian/ sarge unofficial deb-src http://smarden.org/pape/Debian/ sarge unofficial or deb http://smarden.org/pape/Debian/ woody unofficial deb-src http://smarden.org/pape/Debian/ woody unofficial # apt-get update # apt-get install qmail # apt-get install qmail-run
其它Linux用户
mkdir /var/qmail groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails
然后把net-QMail解压缩到/home/pkg,最后再使用如下命令完成QMail MTA的安装:
make
make setup check
接下来对QMail进行配置:./config-fast mail.domain.com
cd /var/qmail/alias
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 /var/qmail/alias/.qmail*
echo 1 > /var/qmail/control/mfcheck
echo ./Maildir/ >/var/qmail/control/defaultdelivery
第二步,是UCSPI-TCP的安装,几乎和QMail的安装过程一样,命令如下:
make
make setup check
这样就完成了安装。接下来就轮到vPOPMail了!
这个步骤需要解压缩后进行默认配置、编译安装就可以了。
用下面的命令来配置又见,并把用户的邮件存放到/home/vpopmail下面。然后:./configure –prefix=/home/vpomail
Make install
至此,我们就把这个基本的系统安装完成了。
脚本配置 这里,我们再教你配置一些必要的脚本,以便把刚刚建立好的三个应用程序部分组合起来,并且自动启动QMail。
1、 建立SMTP的转发规则,主要是在/etc/tcp.smtp内写入如下命令::allow
#接受任何Client发出的邮件
#如果要拒绝某些IP所发出的Relay就要修改/etc/tcp.smtp成下面这样
1.2.3.4:allow,RELAYCLIENT=""
127.:allow, RELAYCLIENT=""
#只接受来自1.2.3.4的邮件
2、 下面是把文本格式的规则转换成tcpserver能够识别的cdb格式,命令如下:
/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
3、 再建立下面这个文件,用于启动QMail的MTA和POP3/SMTP服务。文件名为:/etc/rc.d/qmail.sh,代码如下:
/var/qmail/rc &
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
tcpserver -v -x /etc/tcp.smtp.cdb -u UID -g GID 0 smtp /var/qmail/bin/qmail-smtpd &
tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup mail.mydomain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
然后我们就可以用/home/vpopmail/vadduser [email protected]增加新的用户,并和普通的邮件系统一样使用了。
相关链接
- http://www.qmail.org/
- qmailrocks.org - a qmail installation guide
- http://forum.qmailrocks.org/
<discussion>characters_max=300</discussion>