Qmail

来自开放百科 - 灰狐
跳转到: 导航, 搜索
Wikipedia-35x35.png 您可以在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]增加新的用户,并和普通的邮件系统一样使用了。

相关链接

Comment-32x32.png

<discussion>characters_max=300</discussion>

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱