完整的qmail系统(杀毒并反垃圾)

由 Dragonsoar 在 08-17-2004 12:01 发表:

完整的qmail系统(杀毒并反垃圾)

包括

  • daemontools

  • ucspi-tcp

  • qmail

  • vpopmail

  • courier-imap

  • autorespond

  • ezmlm

  • qmailadmin

  • squirrelmail

mysql数据库可以选择带或不带,里面说的很清楚。

文档见下面:

http://qmailtoaster.91i.net/#top

我在LFS上安装成功,webmail我选择的是igenus,而不是squirrelmail ,igenus使用上更符合国人习惯,安装很方便,功能强大。文中最后有igenus的安装步骤。

整个文档很完整详细,只是作者的一些习惯如在根目录下建立那么多的目录让人很别扭,我把igenus的temp和netdisk目录建到了.....apache/htdocs/下,而不是原文说的根目录/下,

安装时的配置文件也相应改一下就行了。

最后根目录下只比安装前多了三个目录:

/command 、/package、 /service

因为都不大,所以安装时没有去改动它们的位置,安装完后这三个目录一定要留着!!!!!


由 hhl00 在 08-17-2004 13:38 发表:



由 Dragonsoar 在 08-17-2004 14:06 发表:


网上流传的其它文档很多都太老了,很多软件版本都太低了,现在的设置方法有了一些变化。

这个文档是刚更新过的。推荐看看。


由 Snoopy 在 08-17-2004 14:50 发表:


兄弟为何不将内容贴出来,贴出作者及文章来源,不是更能方便兄弟 ?


And then in the evening light, when the bars of freedom fall

I watch the two of you in the shadows on the wall

How in the darkness steals some of the choices from my hand

Then will I begin to under


由 smile787 在 08-17-2004 18:26 发表:


Qmail Toaster 中文版

By FunBSD

最后更新日期:2004年8月11日

http://qmailtoaster.91i.net/#whatis

前言

Whatis?

功能列表

参考资料

安装准备

安装环境

检查DNS设置

卸载已有的邮件系统

下载软件

安装软件

daemontools

ucspi-tcp

qmail

vpopmail

courier-imap

autorespond

ezmlm

qmailadmin

squirrelmail

测试

测试qmailadmin

测试squirrelmail

测试POP3

测试IMAP

可选安装

Qmail Scanner

Qmailadmin Limits

iGENUS

--------------------------------------------------------------------------------

前言

Whatis?

什么是Toaster?我也不知道 ,中文没学好,英文也没学好.

英文解释: http://cr.yp.to/qmail/toaster.html

功能列表

SMTP服务器:SMTP-AUTH认证(Plain,Login,CRAM-MD5),TLS(SSL)支持,病毒和垃圾邮件检测

POP3服务器:CRAM-MD5,APOP,和SSL支持

IMAP服务器:TLS(SSL)支持

自动回复

邮件列表

Web管理

WebMail

参考资料

英文原版: http://shupp.org/toaster

FreeBSD版:Qmail FreeBSD Toaster (MySQL)

Qmail参考: http://www.lifewithqmail.org

页首

--------------------------------------------------------------------------------

安装准备

安装环境

这个安装过程基本上你只需要复制粘贴就可以完成.我在RedHat上安装成功,其他系统还没试过.

这里假设Apache,MySQL都安装在/usr/local目录下,PHP配置文件在apache/conf目录下

还要确认下面的软件也已经安装:

rpm -q gdbm

rpm -q gdbm-devel

rpm -q openssl

rpm -q openssl-devel

rpm -q stunnel

rpm -q krb5-devel

检查DNS设置

在开始之前,确保正确设置了DNS MX记录.例如使用"funbsd.org"作为邮件域,对MX记录进行测试:

在Linux下:

host -t mx funbsd.org

funbsd.org. mail is handled by 10 mail.funbsd.org.

host -t a mail.funbsd.org

mail.funbsd.org. has address xxx.xxx.xxx.xxx

在Windows下:

C:>nslookup

Default Server: ns.funbsd.org

Address: xxx.xxx.xxx.xxx

>set type=mx

>funbsd.org

funbsd.org MX preference = 10, mail exchanger = mail.funbsd.org

mail.funbsd.org internet address = xxx.xxx.xxx.xxx

>exit

卸载已有的邮件系统

确认没有SMTP/POP/IMAP服务在运行:

/etc/init.d/sendmail stop

netstat -na | grep 25

netstat -na | grep 110

netstat -na | grep 143

ntsysv

删除已有的SMTP/POP/IMAP软件:

rpm -e --nodeps sendmail

rpm -e --nodeps postfix

下载软件

我一般把软件放在/home/pkg下面,根据个人习惯吧

mkdir /home/pkg

cd /home/pkg

wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz

wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz

wget http://shupp.org/software/netqmail-1.05.tar.gz

wget http://shupp.org/software/toaster-scripts-0.6.tar.gz

wget http://shupp.org/patches/qmail-toaster-0.6-1.patch.bz2

wget http://easynews.dl.sourceforge.net/...il-5.4.5.tar.gz

wget http://shupp.org/patches/chkuser-0.6.patch

wget http://shupp.org/patches/chkuser-0.6.mysql.patch

wget http://shupp.org/software/courier-i...0040207.tar.bz2

wget http://shupp.org/software/autorespond-2.0.4.tar.gz

wget http://ezmlm.org/archive/ezmlm-0.53.tar.gz

wget http://ezmlm.org/archive/0.42/ezmlm-idx-0.42.tar.gz

wget http://optusnet.dl.sourceforge.net/...in-1.2.2.tar.gz

wget http://shupp.org/software/squirrelmail-1.4.2.tar.bz2

wget http://shupp.org/software/quota_usage-1.2.tar.gz

tar -xzf netqmail-1.05.tar.gz

cd netqmail-1.05

./collate.sh

注意:./collate.sh这一步不要忘

页首

--------------------------------------------------------------------------------

安装软件

daemontools

daemontools是一个收集管理UNIX进程的工具.用它来监听qmail-send,qmail-smtpd,qmail-pop3d.

参考: http://cr.yp.to/daemontools.html

安装:

mkdir /package

chmod 1755 /package

cd /package

tar -zxvf /home/pkg/daemontools-0.76.tar.gz

cd admin/daemontools-0.76

patch -p1 < /home/pkg/netqmail-1.05/other-patches/daemontools-0.76.errno.patch

package/install

验证daemontools已经正常运行:

sleep 5

ps ax | grep svscan

ucspi-tcp

ucspi-tcp包括tcpserver和tcpclient,一个命令行工具来建立client-server应用程序.

参考: http://cr.yp.to/ucspi-tcp.html

安装:

cd /home/pkg

tar zxvf ucspi-tcp-0.88.tar.gz

cd ucspi-tcp-0.88

patch -p1 < /home/pkg/netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch

make

make setup check

页首

--------------------------------------------------------------------------------

qmail

参考: http://www.qmail.org

这个toaster补丁,是下面这几个补丁的组合:

smtp auth 0.4.2

qmail-queue (to allow for virus scanners)

maildir++ patch

support oversize dns packets (not necessary if you use dnscache)

mfcheck (check that the envelope sender has a dns entry)

tarpit delay

qregex (regular expression matching in badmailfrom and badmailto)

big concurrency (set the spawn limit above 255)

安装:

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

在这里把vpopmail用户也加上

groupadd -g 89 vchkpw

useradd -u 89 -g vchkpw vpopmail

cd /home/pkg

tar -xzf toaster-scripts-0.6.tar.gz

cd netqmail-1.05/

bunzip2 -c ../qmail-toaster-0.6-1.patch.bz2 | patch -p0

cd netqmail-1.05

注:在RedHat上,需要为TLS补丁链接一个include文件:

ln -s /usr/kerberos/include/com_err.h /usr/kerberos/include/krb5.h \

/usr/kerberos/include/profile.h /usr/include/

make

make setup check

用你自己的主机名代替下面的mail.funbsd.org

./config-fast mail.funbsd.org

cd /var/qmail/alias

touch .qmail-postmaster .qmail-mailer-daemon .qmail-root

chmod 644 /var/qmail/alias/.qmail*

cd -

echo 1 > /var/qmail/control/mfcheck

echo ./Maildir/ >/var/qmail/control/defaultdelivery

make cert

按提示输入公司信息

make tmprsadh

注:这里可能要多等一会

用"crontab -e"在crontab里增加下面这条,每天晚上更新temp keys

01 01 * * * /var/qmail/bin/update_tmprsadh > /dev/null 2>&1

创建服务:

mkdir -p /var/qmail/supervise/qmail-send/log

mkdir -p /var/qmail/supervise/qmail-smtpd/log

mkdir -p /var/qmail/supervise/qmail-pop3d/log

mkdir -p /var/qmail/supervise/qmail-pop3ds/log

chmod +t /var/qmail/supervise/qmail-send

chmod +t /var/qmail/supervise/qmail-smtpd

chmod +t /var/qmail/supervise/qmail-pop3d/log

chmod +t /var/qmail/supervise/qmail-pop3ds/log

cp /home/pkg/toaster-scripts-0.6/send.run /var/qmail/supervise/qmail-send/run

cp /home/pkg/toaster-scripts-0.6/send.log.run /var/qmail/supervise/qmail-send/log/run

cp /home/pkg/toaster-scripts-0.6/smtpd.run /var/qmail/supervise/qmail-smtpd/run

cp /home/pkg/toaster-scripts-0.6/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run

cp /home/pkg/toaster-scripts-0.6/pop3d.run /var/qmail/supervise/qmail-pop3d/run

cp /home/pkg/toaster-scripts-0.6/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run

cp /home/pkg/toaster-scripts-0.6/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run

cp /home/pkg/toaster-scripts-0.6/pop3ds.log.run /var/qmail/supervise/qmail-pop3ds/log/run

echo 20 > /var/qmail/control/concurrencyincoming

chmod 644 /var/qmail/control/concurrencyincoming

chmod 755 /var/qmail/supervise/qmail-send/run

chmod 755 /var/qmail/supervise/qmail-send/log/run

chmod 755 /var/qmail/supervise/qmail-smtpd/run

chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

chmod 755 /var/qmail/supervise/qmail-pop3d/run

chmod 755 /var/qmail/supervise/qmail-pop3d/log/run

chmod 755 /var/qmail/supervise/qmail-pop3ds/run

chmod 755 /var/qmail/supervise/qmail-pop3ds/log/run

mkdir -p /var/log/qmail/smtpd

mkdir -p /var/log/qmail/pop3d

mkdir -p /var/log/qmail/pop3ds

chown -R qmaill /var/log/qmail

启动脚本:

cp /home/pkg/toaster-scripts-0.6/rc /var/qmail/

cp /home/pkg/toaster-scripts-0.6/qmailctl /var/qmail/bin/

chmod 755 /var/qmail/rc

chmod 755 /var/qmail/bin/qmailctl

ln -s /var/qmail/bin/qmailctl /usr/bin

ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

用daemontools来启动qmail-send和qmail-smtpd

ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service

命令:

启动,停止,重启,查看队列等

qmailctl start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help

检查服务

netstat -an | grep 25

ps -ef | grep qmail

ps -efl | grep "service errors" | grep -v grep

页首

--------------------------------------------------------------------------------

vpopmail

vpopmail是一个以qmail为基础的虚拟域管理包

参考: http://vpopmail.sf.net/

vpopmail的用户和组我们前边已经建立了

配置:

mkdir ~vpopmail/etc

设置默认域

echo "funbsd.org" > ~vpopmail/etc/defaultdomain

设置smtp规则

echo '127.0.0.1:allow,RELAYCLIENT=""' > ~vpopmail/etc/tcp.smtp

cd ~vpopmail/etc ; tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp

设置MySQL信息

echo "localhost|0|vpopuser|vpoppwd|vpopmail" > ~vpopmail/etc/vpopmail.mysql

chmod 640 ~vpopmail/etc/vpopmail.mysql

chown -R vpopmail.vchkpw ~vpopmail/etc

在MySQL里添加vpopmail的帐号

/usr/local/mysql/bin/mysql -uroot --password="mysqlpwd"

CREATE DATABASE vpopmail;

GRANT select,insert,update,delete,create,drop ON vpopmail.*

TO vpopuser@localhost IDENTIFIED BY 'vpoppwd';

FLUSH PRIVILEGES;

QUIT

安装:

cd /home/pkg/

tar zxvf vpopmail-5.4.5.tar.gz

cd vpopmail-5.4.5

不带数据库支持

./configure \

--enable-logging=v

带数据库支持

./configure \

--enable-auth-module=mysql \

--enable-incdir=/usr/local/mysql/include \

--enable-libdir=/usr/local/mysql/lib \

--disable-many-domains \

--enable-mysql-logging \

--enable-mysql-limits \

--enable-valias \

--enable-logging=v

make

make install-strip

管理:

echo 'export PATH=$PATH:/home/vpopmail/bin' >> /etc/profile

source /etc/profile

添加域

vadddomain funbsd.org funpwd

参照/home/vpopmail/etc/vlimits.default

用MySQL-Front设置每个域的default_quota,default_maxmsgcount等

添加用户

vadduser -q 10485760S [email protected] 1234

vmoduser -c 王晓亚 [email protected]

设置邮箱容量达到90%的警告信息

vi ~vpopmail/domains/.quotawarn.msg

From: XYZ邮箱管理员

Reply-To: [email protected]

To: 邮箱用户

Subject: 邮箱空间警告

Mime-Version: 1.0

Content-Type: text/html; charset=gb2312

Content-Transfer-Encoding: base64

您的邮箱空间已经达到90%.如果想继续使用,请删除一些信件.

如果需要帮助,请联系邮箱管理员:

Email : [email protected]

设置邮箱已满的警告信息

echo "邮件被拒绝,用户的邮箱空间已满." > ~vpopmail/domains/.over-quota.msg

启动脚本:

cp /home/pkg/toaster-scripts-0.6/vpopmailctl /var/qmail/bin

ln -s /var/qmail/bin/vpopmailctl /usr/bin

chmod 755 /var/qmail/bin/vpopmailctl

用daemontools来启动qmail-pop3d和qmail-pop3ds

ln -s /var/qmail/supervise/qmail-pop3d /service

ln -s /var/qmail/supervise/qmail-pop3ds /service

命令:

启动,停止,重启,查看队列等

vpopmailctl start|stop|restart|stat|pause|cont|help

检查服务

netstat -an | grep 110

ps -ef | grep qmail

ps -efl | grep "service errors" | grep -v grep

用MySQL-Front查看数据库

补丁:

不带数据库支持

cd /home/pkg/netqmail-1.05/netqmail-1.05

patch -p0 < /home/pkg/chkuser-0.6.patch

带数据库支持

cd /home/pkg/netqmail-1.05/netqmail-1.05

patch -p0 < /home/pkg/chkuser-0.6.mysql.patch

如果数据库是自定义安装的,还要把libmysqlclient.a复制到指定位置

mkdir -p /usr/local/mysql/lib/mysql/

cp /usr/local/mysql/lib/libmysqlclient.a /usr/local/mysql/lib/mysql/

make clean

make

qmailctl stop

make setup check

qmailctl start

安装选项参考:

vpopmail 5.4.5

------------------------------------

vpopmail directory = /home/vpopmail

uid = 89

gid = 89

roaming users = OFF --disable-roaming-users (default)

password learning = OFF --disable-learn-passwords (default)

md5 passwords = ON --enable-md5-passwords (default)

file locking = ON --enable-file-locking (default)

vdelivermail fsync = OFF --disable-file-sync (default)

make seekable = ON --enable-make-seekable (default)

clear passwd = ON --enable-clear-passwd (default)

user dir hashing = ON --enable-users-big-dir (default)

address extensions = OFF --disable-qmail-ext (default)

ip alias = OFF --disable-ip-alias-domains (default)

domain quotas = OFF --disable-domainquotas (default)

auth module = mysql --enable-auth-module=mysql

mysql replication = OFF --disable-mysql-replication (default)

mysql logging = ON --enable-mysql-logging

mysql limits = ON --enable-mysql-limits

MySQL valias = ON --enable-valias

auth inc = -I/usr/local/mysql/include

auth lib = -L/usr/local/mysql/lib -lmysqlclient -lz -lm

system passwords = OFF --disable-passwd (default)

pop syslog = log success and errors including passwords

--enable-logging=v

auth logging = ON --enable-auth-logging (default)

one domain per SQL table = --disable-many-domains

页首

--------------------------------------------------------------------------------

courier-imap

Courier-IMAP支持IMAP/SIMAP访问

参考: http://www.inter7.com/courierimap

安装:

cd /home/pkg

tar -xjf courier-imap-2.2.2.20040207.tar.bz2

cd courier-imap-2.2.2.20040207

作为vpopmail用户进行安装

chown -R vpopmail:vchkpw ../courier-imap-2.2.2.20040207

su vpopmail

./configure --with-redhat

注:Redhat用户需要使用"--with-redhat"选项

make

exit

make install-strip

make install-configure

cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imap

chmod 755 /etc/rc.d/init.d/courier-imap

chkconfig --add courier-imap

配置:

修改文件/usr/lib/courier-imap/etc/authdaemonrc

authmodulelist="authvchkpw"

修改文件/usr/lib/courier-imap/etc/imapd

IMAPDSTART=YES

修改文件/usr/lib/courier-imap/etc/imapd-ssl

IMAPDSSLSTART=YES

启动:

/etc/rc.d/init.d/courier-imap start

页首

--------------------------------------------------------------------------------

autorespond

Autorespond是一个自动回复工具,可以很好的与qmailadmin配合使用

参考: http://qmailadmin.sf.net

安装:

cd /home/pkg

tar -xvzf autorespond-2.0.5.tar.gz

cd autorespond-2.0.5

make

make install

ezmlm

exmlm是一个快速,强大的邮件列表程序,可以通过qmailadmin对其进行配置

参考: http://www.ezmlm.org

安装:

cd /home/pkg

tar -xvzf ezmlm-0.53.tar.gz

tar -xvzf ezmlm-idx-0.42.tar.gz

cp -rf ezmlm-idx-0.42/* ezmlm-0.53/

cd ezmlm-0.53

patch < idx.patch

chmod u+x makelang

不带数据库支持

make

带数据库支持

按照Ezmlm的说法:This is for the MySQL-3.22.10.i386 rpm.

我在MySQL-4.0上编译没有成功,这里只是个例子:

echo "-I/usr/local/mysql/include" > sub_mysql/conf_sqlcc

echo "-L/usr/local/mysql/lib -lmysqlclient -lnsl -lm" > sub_mysql/conf-sqlld

make mysql

make man

make ch_GB

make setup

页首

--------------------------------------------------------------------------------

qmailadmin

qmailadmin除了不能添加删除虚拟域外,几乎可以完成所有的虚拟域管理

参考: http://sourceforge.net/projects/qmailadmin

安装:

cd /home/pkg

tar -xvzf qmailadmin-1.2.2.tar.gz

cd qmailadmin-1.2.2

./configure \

--enable-htmldir=/usr/local/apache/htdocs \

--enable-cgibindir=/usr/local/apache/cgi-bin \

--enable-vpopuser=vpopmail \

--enable-autoresponder-bin=/usr/bin \

--enable-ezmlmdir=/usr/local/bin/ezmlm \

--enable-maxusersperpage=20 \

--enable-maxaliasesperpage=20 \

--enable-modify-quota \

--disable-ezmlm-mysql \

--disable-help

make

make install-strip

cd /usr/local/share/qmailadmin/lang

mv en en.bak

cp zh-cn en

安装选项参考:

qmailadmin 1.2.2

---------------------------------------

cgi-bin dir = /usr/local/apache/cgi-bin

html dir = /usr/local/apache/htdocs

image dir = /usr/local/apache/htdocs/images/qmailadmin

image URL = /images/qmailadmin

template dir = /usr/local/share/qmailadmin

qmail dir = /var/qmail

vpopmail dir = /home/vpopmail

autorespond dir = /usr/bin

ezmlm dir = /usr/local/bin/ezmlm

ezmlm idx = yes

mysql for ezmlm = no

help = no

modify quota = yes

domain autofill = no

modify spam check = no

页首

--------------------------------------------------------------------------------

squirrelmaild

SquirrelMail是一个基于IMAP的webmail

参考: http://www.squirrelmail.org

安装:

cd /home/pkg

tar -xjf squirrelmail-1.4.2.tar.bz2

cd squirrelmail-1.4.2/plugins

tar -xvzf /home/pkg/quota_usage-1.2.tar.gz

cp quota_usage/config.php.sample quota_usage/config.php

cd ..

./configure

1. --> 6. --> zh_CN

4. --> 1. --> GB2312

4. --> 2. --> /usr/local/apache/squirreldata

8. --> 17

D. --> courier

S 保存

Q 退出

这些选项也可以直接在配置文件里修改:squirrel/config/config.php

中文模版文件:squirrel/locale/zh_CN/LC_MESSAGES/squirrelmail.po

mv data /usr/local/apache/squirreldata

chown -R apache:apache /usr/local/apache/data

cd ../

mv squirrelmail-1.4.2 /usr/local/apache/htdocs/squirrelmail

页首

--------------------------------------------------------------------------------

测试

测试qmailadmin

http://mail.funbsd.org/cgi-bin/qmailadmin

测试squirrelmail

http://mail.funbsd.org/squirrelmail/

测试POP3

telnet localhost 110

Trying 127.0.0.1...

Connected to localhost.localdomain.

Escape character is '^]'.

+OK Hello there.

user [email protected]

+OK Password required.

pass [password]

+OK logged in.

quit

+OK Bye-bye.

Connection closed by foreign host.

测试IMAP

telnet localhost 143

Trying 127.0.0.1...

Connected to localhost.localdomain.

Escape character is '^]'.

  • OK Courier-IMAP ready. Copyright 1998-2001 Double Precision, Inc. See COPYING for distribution information.

a001 login [email protected] [password]

a001 OK LOGIN Ok.

a001 logout

  • BYE Courier-IMAP server shutting down

a001 OK LOGOUT completed

Connection closed by foreign host.

页首

--------------------------------------------------------------------------------

可选安装

Qmail Scanner

这个toaster已经包含了qmail-scanner的支持.

参考: http://qmail-scanner.sourceforge.net

Qmailadmin Limits

Qmailadmin可以针对每个域设置配额和缺省值.

参考:qmailadmin-1.2.2/INSTALL.

iGENUS

iGENUS使用上更符合中国人的习惯,功能也很强.

参考: http://www.igenus.org

安装准备:

由于igenus本身设计的原因,在vpopmail安装的时候不能使用--disable-many-domains选项

也就是说,在igenus配置文件里,$CFG_VPOPMAIL_MYSQL_LARGE_SITE 这个参数的值只能为0

vpopmail安装选项参考:

./configure \

--enable-auth-module=mysql \

--enable-incdir=/usr/local/mysql/include \

--enable-libdir=/usr/local/mysql/lib \

--enable-mysql-logging \

--enable-mysql-limits \

--enable-valias \

--enable-logging=v

安装:

停止Apache

/usr/local/apache/bin/apachectl stop

解压到apache/htdocs目录

cd /usr/local/apache/htdocs/

tar zxvf /home/pkg/igenus_2.0.1_20040713_re

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus