博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

Perry

心态决定一切!
  perry001.cublog.cn

关于作者
姓名:徐忠飞
职业:SA
年龄:24
位置:北京海淀
个性介绍:路漫漫其修远兮,吾将上下而求索!
|| << >> ||
我的分类


Linux qmail安装指南

Linux qmail安装指南

 

许靖

 

版本:2.9

最后更新日期: 2005-04-20

邮箱:

网站: http://www.xuki.org/

问题讨论:http://www.xuki.org/bbs/

 

 

本文档全面介绍如何使用qmailLinux上建造一个高性能的邮件服务器,如何用Vpopmail实现虚拟的邮件域,如何使用qmailadmin 通过Web页面方便的管理用户,如何添加大容量的邮件列表支持,如何实现病毒邮件清除,如何实现中文垃圾邮件过滤,以及如何实现用户的Web登陆。

我将在linux下安装qmail分成若干步骤,您只要按照顺序完成这些步骤,则可安装一台基于Linuxqmail邮件服务器;此套安装方法已经在RedHat AS4Cent OS4下测试通过;希望有时间又有兴趣的朋友能够加入其中,一起完善它,做一套最完善的中文qmail安装指南,以帮助更多的正在学习qmail的朋友少走些弯路。

 

此文所实现的邮件系统功能列表:

·           SMTP服务器:SMTP-AUTH认证(Plain,Login,CRAM-MD5)TLS(SSL)支持

·           POP3服务器:CRAM-MD5APOP,和SSL支持

·           IMAP服务器:TLS(SSL)支持

·           邮件病毒清除

·           邮件附件限制

·           中文垃圾邮件过滤(最高90%)

·           自动回复

·           邮件列表

·           Web管理

·           用户注册

·           通过Web显示统计信息

·           WebMail

·           MRTG

 

 

安装前准备:

第一节:安装引言

1.1    介绍

1.2    什么是qmail?为什么选择qmail?

1.3    何处可得到最新版本

1.4    本指南发展历史

1.5    参考文章

1.6    免责声明

1.7    致谢

第二节:安装qmail前软件和环境确认

2.1    磁盘空间确认

2.2    检查DNS设置

2.3    确认系统环境

2.4    设置防火墙

2.5    设置MySQL

2.6    卸载已有的邮件系统

 

安装邮件系统:

第三节:下载所需要的软件包

第四节:安装qmail

第五节:安装vpopmail

第六节:安装iGenus(可选)

第七节:安装iGenus_Admin(可选)

第八节:安装courier-imap

节:安装SquirrelMail(可选)

第十节:安装SqwebMail(可选)

第十节:安装Wmail(可选)

第十节:安装Autorespond&Ezmlm

第十三节:安装qmailadmin

第 十四节:安装Vqregister(可选)

第十五节:安装vQadmin

第十六节:安装SpamAssassin

第十七节:安装Clamav

第十八节:安装MailDrop TNEF reader

第 十九节:安装qmail-scanner&qms-analog

第二十节:安装qmailAnalog & qlogtools

第二十一节:安装isoqlog

第二十二节:安装MRTG

 

测试及维护:

第二十三节:测试

第二十四节:系统维护

第二十五节:FAQ(网上收集)

 

 

第一节:安装引言  TOP

 

1.1 介绍

本指南的目的是帮助你从头开始建立一个大容量(1000用户以上)、易管理、易扩充、分布式、用户界面友好的邮件系统。如果仅仅是为了支持内部网络的很少用户,你可以选择sendmail,甚至是基于NT平台的任何共享的邮件服务器软件,它们更加易与操作和设定。作为一种尝试,当然你也可以选择本系统,但是你必须对Linux系统有相当的了解,至少是可以独立的配置一台Linux网络服务器。

本文档并不是简单的把相关软件的安装文档及FAQ汉化,相反的,本文档几乎不包括任何相关软件的安装文档及FAQ,我认为作为一个qmail的使用者,他应该做到以下几点:

·     熟悉了所有Dan Bernsteinqmail的作者)发布的文档;

·     熟悉www.qmail.orgqmail官方站点)的相关资源;

·     尽量理解Life With qmail

·     耐心阅读所有相关软件的安装文档及FAQ!

qmail是一个非常复杂的系统,尽管它本身非常简洁。如果你对它的复杂性不够了解,你可以对照一下Sendmail qmail就是设计用来取代Sendmail的。尽管qmail的配置要比Sendmail简单的多,而且通过第三方编程人员的不断努力,附加的add-on使得qmail更加易于配置和管理,但是它确实是一个非常复杂的系统。它需要你具有丰富的*NIX平台的管理经验,一旦你能正确的理解qmail,你就会发现,qmail确实是一个空前优秀的邮件系统。

本文档想起到一个粘合剂的作用,希望能够帮助qmail用户迅速实现一个以qmail为核心的大型邮件系统,并希望能够针对各组件的协调工作问题给出一个可行的解决方案。
本文档及其所有的附加脚本都已经经过了作者本人N(N>20)遍的测试,如果在你的系统上不能工作或出现异常错误,你可以参见第二节:安装qmail前软件和环境确认,对于其他的 *NIX 系统,我相信本文档的基本概念是正确的。
 

1.2 什么是qmail?为什么选择qmail?

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有以下优点:

  *安全---- qmailE-mail处理过程分为多个分过程,尽量避免以Root用户身份运行。同时qmail也禁止对特权用户(RootDeamon)直接发信。

  *可靠---- qmail的直接投递保证了E-mail在投递过程中不会丢失。qmail同时支持新的更可靠的信箱格式——Maildir,保证系统在突然崩溃情况下不至破坏整个信箱。

  * 高效----运行在奔腾的BSD,qmail每天可以轻松地投递20万封电子邮件。

  *简单---- qmail 要比其他的Internet Mail系统小得多。 它通过统一的向前机制完成ForwardingAliasMaillist等功能, qmail使用简单高效队列来处理投递。qmail-SMTPD可以由Inetd启动,节省了一定资源。

 

1.3 何处可得到本指南最新版本?

本文档最新版本从http://www.xuki.org/可以得到。

 

1.4 本指南的发展历史?

2.9-2005年4月8日

  1. 系统升级成RHEL 4/CentOS4,使用2.6的内核 

  2. 补丁和脚本集升级成最新的toaster-scripts-0.7&qmail-toaster-0.7.2

  3. Clamav升级至0.83

  4. qmail-scanner升级至1.25

  5. spamassassin升级至3.0.2,增加及集成中文垃圾邮件过滤和中国反垃圾邮件联盟实时黑名单服务

  6. 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

 

如果你还没有安装, 请先安装它们. 你可以到安装光盘或是在这里找到它们的RPMhttp://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:RHEL4dag

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.orgToaster 7.0运行脚本
ucspi-tcp - ucspi-tcp
软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序
daemontools -
inetdwinetd的代替品,用它来监听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
一个扫描邮件队列的插件,其调用ClamavSpamAssassin进行清除邮件病毒和垃圾邮件的动作
qmailanalog
分析难以理解的qmail日志,并每晚给出报告
isoqlog -
一个qmail日志分析工具,可以分析和统计qmail的运行日志,并生成漂亮的HTML格式的报表
MRTG -
多路由器通信监视器(MRTG)是在网络链路上监控通信负载的一件工具

 

为了方便大家使用,我把下文中所提到的软件打成了一个包,下载地址为:

http://www.xuki.org/qmail_2.9.tar.gz

大部份的软件都是用的最新版(20054),我也将会跟踪软件的发行来更新些安装指南。

 

那么下面让我们开始安装必须的软件:

#创建/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这一步不要忘

 

 

 

第四节:安装qmail  TOP

 

除非你确实熟悉各个软件和系统结构,否则请按照如下步骤一步一步安装软件,此文将引导你安装一套完整的邮件系统。这个安装过程基本上你只需要复制粘贴就可以完成。

 

安装daemontools

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

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

 

#安装:

cd /home/pkg

tar -zxvf 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软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序。TcpServer是一个比inetd安全性更好的选择。它内建有基于规则的连接控制,能完善地在达到预定义的最大系统负载时将连接推迟,这点比 inetd好。Tcpserver也被推荐与qmail一同使用,因为它们是同一个作者编的程序。

参考: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 < ../ucspi-tcp-0.88.errno.patch

make

make setup check

  

安装qmail

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

          http://www.lifewithqmail.org/

 

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

smtp auth SMTP认证)

spf (发信人DNS检查)

qmail-queue (如果要使用病毒扫描引擎则需要这个补丁)

maildir++ patch

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

chkuser (检查本地vpopmail用户表,信头的语法,这个补丁需要在安装vpopmail后被安装。)

spam throttle

qregex (匹配badmailfrombadmailto文件里的规则)

big concurrency (set the spawn limit above 255)

 

#安装:

#创建所需要的用户

mkdir /var/qmail

groupadd nofiles

useradd alias -g nofiles -d /var/qmail/alias -s /sbin/nologin

useradd qmaild -g nofiles -d /var/qmail -s /sbin/nologin

useradd qmaill -g nofiles -d /var/qmail -s /sbin/nologin

useradd qmailp -g nofiles -d /var/qmail -s /sbin/nologin

groupadd qmail

useradd qmailq -g qmail -d /var/qmail -s /sbin/nologin

useradd qmailr -g qmail -d /var/qmail -s /sbin/nologin

useradd qmails -g qmail -d /var/qmail -s /sbin/nologin

 

#顺便添加vpopmail用户

groupadd vchkpw -g 89

useradd vpopmail -u 89 -g vchkpw

 

#准备安装qmail

cd /home/pkg

tar -xzf toaster-scripts-0.7.tar.gz

cd netqmail-1.05/netqmail-1.05/

 

# 搜索函数straynewline中的451改为553

vi qmail-smtpd.c

# 当你的服务器收到无效格式的邮件时,会发送:"I am not going to accept that message at the moment,you can try again later",对方服务器收到后,几秒钟后又会发送同样的邮件给你,造成多次的重复。

# 改为553后,你的服务器将直接发送:"I am not going to accept that message,don't try sending it again.",告诉对方的服务器不要再发这封无效的信件。

 

# RedHat/Fedora用户可能需要为TLS补丁链接一个include文件

# 输入如下命令:

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

 

# 删除sendmail的链接

rm -rf /usr/sbin/sendmail

 

#qmail编译安装

make

make setup check

#注:qmail的补丁在vpopmail安装之后再打。

 

# 用你自己的主机名代替下面的mail.domain.com

./config-fast mail.domain.com

 

#设置管理员的邮箱地址。

#发往root/postmaster/mailer-daemon地址的邮件将会由定义的管理员邮箱接收。

#将如下的admin@domain.com"替换成你的管理员邮箱。

cd /var/qmail/alias

echo "admin@domain.com" > .qmail-postmaster

echo "admin@domain.com" > .qmail-mailer-daemon

echo "admin@domain.com" > .qmail-root

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

 

#开启SPF设置

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

echo 3 > /var/qmail/control/spfbehavior

 

#添加qmail的帮助手册

echo MANPATH /var/qmail/man >> /etc/man.config

 

#qmail服务建立监控目录和日志文件:

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

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

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

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

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

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

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

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

cp /home/pkg/toaster-scripts-0.7/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

 

#启动脚本:

cd /home/pkg

cp toaster-scripts-0.7/rc /var/qmail/rc

chmod 755 /var/qmail/rc

cp toaster-scripts-0.7/qmailctl /var/qmail/bin/

chmod 755 /var/qmail/bin/qmailctl

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

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

rm -rf /usr/lib/sendmail

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

 

# daemontools来启动qmail-sendqmail-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

 

 

#日志:

/var/log/maillog

/var/log/qmail/current

/var/log/qmail/pop3d/current

/var/log/qmail/pop3ds/current

/var/log/qmail/smtpd/current

 

我建议重新回顾一下刚才我们所做的步骤以熟悉对qmail的安装. 下面我们将开始vpopmail的安装.

 

 

第五节:安装vpopmail  TOP

 

vpopmail是一个以qmail为基础的虚拟域管理包;其允许在一个IP地址添加多个虚拟域;并且可以不需要使用系统帐号做邮件帐号。

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

 

#创建目录:

mkdir -p /home/vpopmail/etc

 

# 设置默认域,红色部份改成你要设置的域。

echo "domain.com" > /home/vpopmail/etc/defaultdomain

 

# 设置smtp规则,关闭open relays

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

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

 

# 设置MySQL信息,第一个vpopmail是帐号,xukixu为密码,第二个vpopmail是数据库

echo "localhost|0|vpopmail|xukixu|vpopmail" > /home/vpopmail/etc/vpopmail.mysql

chmod 640 /home/vpopmail/etc/vpopmail.mysql

chown -R vpopmail.vchkpw /home/vpopmail/etc

 

# MySQL里添加vpopmail的帐号

mysql -uroot -pxukixu

 

CREATE DATABASE vpopmail;

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

TO vpopmail@localhost IDENTIFIED BY 'xukixu';

FLUSH PRIVILEGES;

QUIT

 

#安装:

cd /home/pkg/

tar zxvf vpopmail-5.4.10.tar.gz

cd vpopmail-5.4.10

 

# 带数据库支持

 

./configure --enable-incdir=/usr/include/mysql --enable-libdir=/usr/lib/mysql --disable-roaming-users --enable-logging=p --disable-passwd --enable-clear-passwd --disable-domain-quotas --enable-auth-module=mysql --enable-auth-logging --enable-sql-logging --disable-valias --disable-mysql-limits --enable-learn-passwords

 

make

make install-strip

 

#管理:

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

source /etc/profile

 

# 添加域,红色部份前面是域名,后面是管理员(postmaster)密码

vadddomain domain.com xukixu

 

# 添加用户,红色部份为注解,不用输入

vadduser -q 10485760S(邮箱大小) xukixu@domain.com(邮箱帐号) 1234(密码)

vmoduser -c 许靖(邮箱描述) xukixu@domain.com

 

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

vi /home/vpopmail/domains/.quotawarn.msg

 

From: 邮箱管理员

Reply-To: postmaster@domain.com

To: 邮箱用户

Subject: 邮箱空间警告

Mime-Version: 1.0

Content-Type: text/html; charset=gb2312

Content-Transfer-Encoding: base64

 

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

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

Email : postmaster@domain.com

 

 

# 设置邮箱已满的警告信息

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

 

#启动脚本:

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

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

chmod 755 /var/qmail/bin/vpopmailctl

 

#现在打上qmail的补丁:

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

bunzip2 -c /home/pkg/qmail-toaster-0.7.2.patch.bz2 | patch -p0

make clean

make

qmailctl stop

make setup check

chown -R vpopmail:vchkpw /var/qmail/spam

 

#创建SSL Key

 

make cert

#按提示输入公司信息

[root@mail netqmail-1.05]# make cert

Generating a 1024 bit RSA private key

.............++++++

...............++++++

writing new private key to '/var/qmail/control/servercert.pem'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [GB]:CN

State or Province Name (full name) [Berkshire]:GD

Locality Name (eg, city) [Newbury]:SZ

Organization Name (eg, company) [My Company Ltd]:Domain

Organizational Unit Name (eg, section) []:Domain

Common Name (eg, your name or your server's hostname) []:domain.com

Email Address []:xukixu@domain.com

 

make tmprsadh

#:这里可能要多等一会

 

chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem

 

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

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

 

#起动qmail

qmailctl start

 

# daemontools来启动qmail-pop3dqmail-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

 

 

安装选项参考:

           vpopmail 5.4.10

            Current settings

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

 

vpopmail directory = /home/vpopmail

               uid = 89

               gid = 89

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

 password learning = ON --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)

       sql logging = ON  --enable-sql-logging

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

      MySQL valias = OFF --disable-valias (default)

          auth inc = -I/usr/include/mysql

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

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

        pop syslog = show failed attempts with clear text password

                     --enable-logging=p

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

all domains in one SQL table = --enable-many-domains (default)

 

#POP3SMTP测试

outlook测试qmailsmtppop3是否正常,注意由于vpopmail支持虚拟域名,所以在outlook中设置邮件帐号时,用户名后要加上域名,如demo@demo.comsmtp是带认证的,在outlook中也要作相应设置。建议先测试正常后再进行下一步安装。如果qmail出现问题,可查看mysql中的vpopmail数据库,/var/log下的mysqldmaillog日志记录,这样容易很快找出问题。

 

 

 

第六节:安装iGenus(可选)  TOP

 

iGENUS 不是一套独立的邮件系统,只是一个 Webmail 接口,需要配合 qmail+vpopmail+Mysql 使用。iGENUS 是由 PHP 写成,采用直接对 qmail Maildir 进行读写操作,因而比 IMAP/POP 方式更快一点。

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

 

#安装:

cd /home/pkg

tar zxvf igenus_2.0.2_20040901_release.tgz -C /var/www/

cd /var/www/

rm -rf html/

mv igenus html

 

#temp文件夹

mkdir /tmp/temp

chmod -R 0755 /tmp/temp

chown -R vpopmail:vchkpw /tmp/temp

 

mkdir /home/netdisk

chmod -R 0755 /home/netdisk

chown -R vpopmail:vchkpw /home/netdisk

 

chmod -R 0755 /var/www/html/

chown -R vpopmail:vchkpw /var/www/html/

 

 

#修改httpd.conf

vi /etc/httpd/conf/httpd.conf

 

User vpopmail

Group vchkpw

DocumentRoot "/var/www/html/"

 

AddDefaultCharset GB2312 //使默认页面为中文

 

/etc/rc.d/init.d/httpd restart //重启apache,使修改生效

 

#修改config_inc.php文件

cd /var/www/html/config

vi config_inc.php

 

$CFG_BASEPATH = "/var/www/html/"; \\改成你安装的目录

 

$CFG_MYSQL_HOST = 'localhost';

$CFG_MYSQL_USER = 'vpopmail'; \\vpopmail访问mysql的帐号

$CFG_MYSQL_PASS = 'xukixu'; \\vpopmail访问mysql的密码

$CFG_MYSQL_DB = 'vpopmail'; \\数据库

 

$CFG_TEMP = "/tmp/temp"; \\删除$CFG_BASEPATH,并修改路径

 

 

#重新编制Mysql数据库表格

 

#删除之前创建的域名

vdeldomain domain.com

 

#编辑数据库:

mysql -uroot -pxukixu

 

use vpopmail;

drop table lastauth;

drop table vpopmail;

quit;

 

#编辑/var/www/html/docs/iGENUS.sql

 

vi /var/www/html/docs/iGENUS.sql

 

# phpMyAdmin SQL Dump

# version 2.5.3

# http://www.phpmyadmin.net

#

# Host: localhost

# Generation Time: Jun 04, 2004 at 11:26 AM

# Server version: 3.23.55

# PHP Version: 4.3.0

#

# Database : `vpopmail`

#

 

# --------------------------------------------------------

 

#

# Table structure for table `address`

#

 

use vpopmail; //加入这一行

CREATE TABLE `address` (

`id` int(11) unsigned NOT NULL auto_increment,

`pw_id` int(5) NOT NULL default '0',

`name` varchar(64) NOT NULL default '',

`email` varchar(128) NOT NULL default '',

UNIQUE KEY `id` (`id`),

KEY `pw_id` (`pw_id`)

) TYPE=MyISAM PACK_KEYS=1 ;

 

# --------------------------------------------------------

。。。。。。。。。

。。。。。。。。。。

 

 

CREATE TABLE `vpopmail` (

`pw_id` int(5) unsigned NOT NULL auto_increment,

`pw_name` varchar(32) NOT NULL default '',

`pw_domain` varchar(64) NOT NULL default '',

`pw_passwd` varchar(40) NOT NULL default '',

`pw_uid` int(11) default NULL,

`pw_gid` int(11) default NULL,

`pw_gecos` varchar(48) default NULL,

`pw_dir` varchar(255) default NULL,

`pw_shell` varchar(20) default NULL,

`pw_clear_passwd` varchar(16) default NULL, \\加入这一行

`createtime` timestamp(14) NOT NULL,

PRIMARY KEY (`pw_id`),

KEY `pw_name` (`pw_name`,`pw_domain`)

) TYPE=MyISAM PACK_KEYS=1 ;

 

#运行如下命令导入数据表

mysql -uroot -pxukixu </var/www/html/docs/iGENUS.sql

 

#设置igenus 定义允许上传下载的邮件的大小

#编辑/etc/php.ini

vi /etc/php.ini

 

max_execution_time=60

memory_limit=20M

post_max_size = 10M

file_uploads=on

upload_max_filesize=10M

register_globals=On

session.bug_compat_42=0

session.bug_compat_warn=0

sendmail_path = /var/qmail/bin/qmail-inject

 

#编辑/etc/http/conf/httpd.conf

vi /etc/httpd/conf/httpd.conf

 

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

DirectoryIndex index.php index.html

NameVirtualHost *:80

<VirtualHost *:80>

ServerName mail.domain.com

DocumentRoot /var/www/html

</VirtualHost>

 

chmod 777 /var/lib/php/session/ -R

 

#重启apache:

service httpd restart

 

#如果需要,用vadddomainvadduser添加新域名和新用户。

 

最后打开浏览器,输入http://domain.com/,就可以访问网站了。

 

 

第七节:安装iGenus_Admin(可选)  TOP

 

一个基于Webvpopmail域和帐号管理工具。

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

 

#安装

cd /home/pkg

tar -xzvf igenus_admin_0.1.tgz -C /var/www/html/

 

#设置

 

vi /var/www/html/admin/includes/config_inc.php

 

<?php

/*-

* iGENUS webmail

*

* Copyright (c) 1999-2002 by iGENUS Org.

* All rights reserved.

* Author: Wu Qiong <wuqiong@sczg.com>

*

* $Id: config_inc.php,v 1.11 2004/03/23 13:59:12 wuqiong Exp $

*/

 

if(!defined("INCLUDE_CONFIG_OK")) {

define("INCLUDE_CONFIG_OK","TRUE");

 

/* gid flags defind by vpopmail.h */

 

// define('NO_PASSWD_CHNG',0x01);

define('NO_POP', 0x02);

define('NO_WEBMAIL', 0x04);

// define('NO_IMAP', 0x08);

// define('BOUNCE_MAIL', 0x10);

// define('NO_RELAY', 0x20);

// define('NO_DIALUP', 0x40);

// define('V_USER0', 0x080);

// define('V_USER1', 0x100);

// define('V_USER2', 0x200);

// define('V_USER3', 0x400);

define('NO_SMTP', 0x800);

// define('QA_ADMIN', 0x1000);

 

$CFG_VPOPMAIL_HOST = "localhost";

$CFG_VPOPMAIL_USER = "vpopmail"; \\改为你的帐号

$CFG_VPOPMAIL_PASS = "xukixu"; \\改为你的密码

$CFG_VPOPMAIL_DB = "vpopmail";

$CFG_VPOPMAIL_TABLE = "vpopmail";

$CFG_ADMIN_TABLE = "admin";

$CFG_LAGESITE = true;

$CFG_NUMOFPAGE = 20;

 

$CFG_MAILBOX['inbox'] = ".";

$CFG_MAILBOX['outbox'] = ".Outbox";

$CFG_MAILBOX['draft'] = ".Draft";

$CFG_MAILBOX['trash'] = ".Trash";

 

$CFG_VPOPMAIL_PATH = "/home/vpopmail"; \\改为你的vpopmail安装目录 

// $CFG_VPOPMAIL_PATH = "/home2/vpopmail";

 

$CFG_SYSADMIN_NAME = "Admin";

$CFG_SYSADMIN_PASSWD= '$1$GvmONIco$0SwBB.mEoP3KJ5Zda7ioV0';

 

$CFG_SYSADMIN_PASSWD_FILE = $CFG_VPOPMAIL_PATH . "/etc/syspasswd.dat";

$CFG_TIMEOUT = 600;

 

$CFG_IGENUS_ADM = "iGENUS邮件系统管理";

 

$CFG_TEMPLATE_PATH = "template/";

}

?>

 

#保存退出

touch /etc/syspasswd.dat

chown -R vpopmail.vchkpw /var/www/html

chmod -R 755 /var/www/html

 

#登录设置页面

http://domain.com/admin/sys/

用户:Admin密码Admin来登录.注意A要大写..这个管理帐号密码登录后可以改的

 

登录后,首先点"更新数据库"你就会看见你的域名.然后点"编辑""登录权限 该域管理员(Postmaster)有权登录进行用户管理"这一项打勾,确认后,就可以用

http://domain.com/admin/  

来登录管理了。

 

 

 

第八节:安装courier-imap  TOP

 

Courier-IMAP支持IMAP/SIMAP访问

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

 

courier-imap 从 4版本开始,把 courier-authlib 独立出来了,需要先安装 courier-authlib. 具体步骤:

cd /home/pkg

tar -xjvf courier-authlib-0.55.tar.bz2

cd courier-authlib-0.55

./configure --prefix=/usr/local --exec-prefix=/usr/local --with-authvchkpw --without-authldap --without-authmysql --disable-root-check --with-ssl --with-authchange  pwdir=/usr/local/libexec/authlib --with-redhat

make

make install

make install-configure

#修改设置文件:/usr/local/etc/authlib/authdaemonrc,去掉不需要的认证模式,只留vchkpw方式,然后认证进程改成2

 

#完成后启动它:

/usr/local/sbin/authdaemond start

#需要把这个脚本放到/etc/init.d, 然后在/etc/rc3.d /etc/rc5.d做一个符号连接,以便系统启动时自动运行。

 

#启动后,在内存中可以看到2authlib进程:

ps -aef |grep authlib

root     20108 20107  0 Jan28 ?        00:00:00 /usr/local/libexec/courier-authlib/authdaemond

root     20109 20108  0 Jan28 ?        00:00:00 /usr/local/libexec/courier-authlib/authdaemond

 

#这里可以想办法把运行身份改成vpopmail,毕竟用root运行,如果出现问题影响范围会大很多。

#测试是否正常:

运行/usr/local/sbin/authtest:(红字为输入内容,后面的1121221应该是pop3密码,后面部分应该是命令结果)

authtest xukixu@domain.com 1121221

     Authenticated: xukixu@domain.com (uid 509, gid 509)

    Home Directory: /var/vpopmail/domains/domain.com/xukixu

           Maildir: (none)

             Quota: (none)

Encrypted Password: $1$LJjMeeeeqqeqF9VWUywtLV/O5ciqeg.

Cleartext Password: xukixu

           Options: disablewebmail=0,disablepop3=0,disableimap=0

#出现上面的提示就是说authlib运行正常

 

#下面来安装courier-imap

cd /home/pkg

tar -xjf courier-imap-4.0.2.tar.bz2

cd courier-imap-4.0.2

# 作为vpopmail用户进行安装

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

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,如果没有,则链接/usr/local/etc/authlib/authdaemonrc

authmodulelist="authvchkpw"

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

IMAPDSTART=YES

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

IMAPDSSLSTART=YES  

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

CN=domain.com

emailAddress=postmaster@domain.com

# 修改文件/usr/lib/courier-imap/etc/pop3d.cnf

CN=domain.com

emailAddress=postmaster@domain.com

#启动:

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

#使用outlook测试一下IMAP是否正常

 

 

第九节:安装SquirrelMail(可选)  TOP

 

SquirrelMail 是一个PHP编写的IMAP客户端,在安装SquirrelMail之前,要确保你的IMAP正常运行。

 

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

 

 

#安装

 

cd /home/pkg

tar -xzvf squirrelmail-1.4.4.tar.bz

cd squirrelmail-1.4.4

cd plugins

tar -xzf ../../quota_usage-1.3-1.2.7.tar.gz

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

cd ../

./configure

# 你将要设置如下选项

 

#选择 2. Server Settings”=>A. Update IMAP Settings”=>8. Server software改成“courier;回到主菜单,选择“4.General Options=>1. Data Directoryand改成“/var/www/data/;再退回主菜单,选择“8. Plugins=>添加你希望用到的插件。回到主菜单,选择“10. Languages”,将“ Default Language”改成“zh_CN”,“Default Charset”改成“GB2312”。保存退出。

mv data /var/www/

chown -R vpopmail.vchkpw /var/www/data

cd ../

mv squirrelmail-1.4.4 /var/www/html/squirrelmail

 

#登录http://domain.com/squirrelmail 验证是否安装成功。

 

 

 

第十节:安装SqwebMail(可选)  TOP

 

Sqwebmail同SquirrelMail一样,也是一个基于IMAP客户端的webmail,在安装它之前,同样要确保IMAP服务运行正常.

参考:www.courier-mta.org/sqwebmail/  

安装sqwebmail后,如果希望在webmail上直接修改密码,则需要安装如下两个RPM包:

cd /home/pkg
rpm -Uvh expect-5.42.1-1.i386.rpm tcl-8.4.7-2.i386.rpm

#下面开始安装sqwebmail

cd /home/pkg
tar -xjvf sqwebmail-5.0.1.tar.bz2
cd sqwebmail-5.0.1

./configure --enable-webpass=vpopmail --enable-softtimeout=300 --enable-autopurge=10 --enable-maxpurge=30 --enable-mimecharset=gb2312 --with-maxargsize=5000000 --with-maxformargsize=5000000 --with-maxmsgsize=5000000 --without-ispell --without-authshadow --without-authmysql --without-authldap --without-authuserdb --without-authpwd --without-authpam --with-authvchkpw --without-authdaemon --enable-unicode --enable-hardtimeout=14400 --enable-softtimeout=3600 --enable-webpass=yes  

make configure-check
umask 220
make
make check
make install-strip
make install-configure

#完成后,启动脚本在/usr/local/sqwebmail/libexec/sqwebmaild.rc,要把它放到/etc/init.d,并且让他启动时运行

/usr/lib/sqwebmail/libexec/sqwebmaild.rc start
su -c "/usr/lib/sqwebmail/share/sqwebmail/cleancache.pl"  

cp /usr/lib/sqwebmail/libexec/sqwebmaild.rc /etc/init.d/sqwebmaild
chmod 755 /etc/init.d/sqwebmaild  

ln -s /etc/init.d/sqwebmaild /etc/rc.d/rc3.d/S89sqwebmaild
ln -s /etc/init.d/sqwebmaild /etc/rc.d/rc5.d/S89sqwebmaild
 

#用"crontab -e"在crontab里增加下面这条,定时清除cache

crontab -e

*/30 * * * *su -c "/usr/lib/sqwebmail/share/sqwebmail/cleancache.pl"

#登录http://domain.com/cgi-bin/sqwebmail 验证是否安装成功。

 

 

 

 

 

第十一节:安装Wmail(可选)  TOP

 

Wmail其实就是sqwebmail,只不过作者进行了一下汉化和修改了HTML模板而已 

 

 

 

第十二节:安装Autorespond&Ezmlm  TOP

 

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

 

#安装:

 

cd /home/pkg

tar -xvzf autorespond-2.0.5.tar.gz

cd autorespond-2.0.5

make 

make install

 

 

安装Ezmlm

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

 

#安装:

 

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

make man

 

 #汉字GB2312支持

make ch_GB

make setup

 

 

 

第十三节:安装qmailadmin  TOP

 

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

 

#安装:

 

cd /home/pkg

tar -xvzf qmailadmin-1.2.3.tar.gz

cd qmailadmin-1.2.3

 

./configure --enable-htmldir=/var/www/html --enable-cgibindir=/var/www/cgi-bin --enable-vpopuser=vpopmail --enable-autoresponder-bin=/usr/bin --disable-ezmlm-mysql --enable-maxusersperpage=20 --enable-maxaliasesperpage=20 --enable-modify-quota  --enable-domain-autofill

 

make

make install-strip

cd /usr/local/share/qmailadmin/lang

mv en en.bak

cp zh-cn en

 

安装选项参考:

 

qmailadmin 1.2.3

Current settings

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

cgi-bin dir = /var/www/cgi-bin

html dir = /var/www/html

image dir = /var/www/html/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 = /var/qmail/bin/ezmlm

ezmlm idx = yes

mysql for ezmlm = no

help = no

modify quota = yes

domain autofill = yes

modify spam check = no

 

 

 

第十四节:安装Vqregister(可选)  TOP

 

vqregister是vqsignup的升级版本,提供qmail邮箱注册功能。

#解压缩

cd /home/pkg
tar zxvf vqregister-2.6.tar.gz

#进入vqregister-2.6安装目录

cd vqregister-2.6

#修改安装配置文件Makefile

vi Makefile

#找到这几行

DEFS = -I$(VDIR)/include -I/usr/local/mysql/include
LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/mysql/lib/mysql -lmysqlclient

INSTALL_DIR = /usr/local/apache/cgi-bin/vqregister


#将它们改成实际路径,这里是

DEFS = -I$(VDIR)/include -I/usr/include/mysql
LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L
/usr/lib/mysql -lmysqlclient

INSTALL_DIR =
/var/www/cgi-bin/vqregister

#编译安装

make all install clean

#安装完成后需要编辑vqregister的配置文件

cd /var/www/cgi-bin/vqregister
vi vqregister.conf

#修改下面几项

# 设置管理信息
AdminEmail
postmaster@domain.com
# 设置邮箱使用的域名
AllowDomain
domain.com
#RegisterUser vQregister

# 设置数据库选项

DB_Name vpopmail

DB_User vpopmail

DB_Password xukixumysql

#其它项目可根据注释修改,不改也行,直接保存即可。

#可以根据需要修改vqregister.email,此文件为用户注册后发送给用户的邮件。

#/var/www/cgi-bin/vqregister/html中的文件为vqregister的网页模板,可根据需要汉化和修改。

#测试vqregister:

#在浏览器地址栏输入http://domain.com/cgi-bin/vqregister/vqregister.cgi ,按要求添入注册信息,提交后显示注册成功信息,证明你的vqregister安装成功!如果出现错误,请按提示检查注册信息或检查vqregister.conf文件。

 

 

 

第十五节:安装vQadmin  TOP

 

vqadmin是一个基于web 的控制通道. 它允许系统管理员可以执行root用户才能进行的操作.

 

#安装

cd /home/pkg

tar -zxf vqadmin-2.3.6.tar.gz

cd vqadmin-2.3.6

 

vi db_owner.c

 

static const char *host="localhost";

static const char *user="vpopmail";

static const char *passwd="xukixu"; /* NULL for no password */

static const char *db="vpopmail";

 

./configure

make

make install

 

#现在我们需要将下面几行添加到httpd.conf文件中:

vi /etc/httpd/conf/httpd.conf

 

<Directory "/var/www/cgi-bin/vqadmin">

deny from all

Options ExecCGI

AllowOverride AuthConfig

Order deny,allow

</Directory>

 

#保存文件并退出.

cd /var/www/cgi-bin/vqadmin

chown nobody .htaccess

chmod 600 .htaccess

 

# 创建一个管理帐号及密码

htpasswd -bc /etc/httpd/conf/vqadmin.passwd admin(帐号) adminpass(密码)

 

chown vpopmail.vchkpw /etc/httpd/conf/vqadmin.passwd

chmod 644 /etc/httpd/conf/vqadmin.passwd

chown -R vpopmail.vchkpw /var/www/cgi-bin

 

#编辑.htaccess

vi .htaccess

 

AuthType Basic

AuthUserFile /etc/httpd/conf/vqadmin.passwd

AuthName vQadmin

require valid-user

satisfy any

 

#重启Apache

service httpd restart

 

在你的浏览器上测试一下安装结果:

http://www.domain.com/cgi-bin/vqadmin/vqadmin.cgi

 

 

 

第十六节:安装SpamAssassin  TOP

 

Spam是一个让人讨厌的字眼. 大部分的人都不喜欢它. 如果你想保护自己免受spam, 你就需要安装SpamAssassin.

因我在安装系统的时候已经选择好了SpamAssassin。现在我们将其升级到最新版:

cd /home/pkg

rpm -Uvh spamassassin-3.0.2-2.1.el3.rf.i386.rpm

 

需要安装另外一个软件包:

rpm -Uvh perl-Razor-Agent-2.40-2.i386.rpm

 

#修改起动脚本使spamassassin支持vpopmail

#修改如下一行:

vi /etc/init.d/spamassassin

SPAMDOPTIONS="-d -c -m5 -H -x -u spamd -v"

vi /etc/sysconfig/spamassassin

SPAMDOPTIONS="-d -c -m5 -H -x -u spamd -v"

下图是我在安装SpamAssassin时所列出的perl模块,SpamAssassin所要用到的一些Perl模块是:

 

perl-Time-HiRes

perl-Digest-SHA1

perl-HTML-Parser

perl-DB_File

perl-HTML-Tagset

perl-Razor-Agent

perl-DBI

perl-Net-DNS

perl-URI

这些模块请安装上。

 

 

#spamassassin的过滤模板在/etc/mail/spamassassin/local.cf,修改为:

 

vi /etc/mail/spamassassin/local.cf

 

required_score          5.0

rewrite_header Subject ********SPAM********

report_safe            1

use_bayes              1

skip_rbl_checks         0

ok_languages            zh en

ok_locales              en ko

score HEAD_ILLEGAL_CHARS 0

score SUBJ_ILLEGAL_CHARS 0

score DATE_IN_PAST_03_06 0

score UPPERCASE_25_50 0

score UPPERCASE_50_75 0

score UPPERCASE_75_100 0

score X_MSMAIL_PRIORITY_HIGH 0

score X_PRIORITY_HIGH 0

score TO_TXT 100

score RATWARE_HASH_2 100

score RATWARE_HASH_2_V2 100

score BAYES_99 0.1

score BAYES_80 0.1

score BAYES_60 0.1

score FROM_ILLEGAL_CHARS 0.1

score MIME_BASE64_TEXT 0.1

score NO_RDNS_DOTCOM_HELO 0.1

score CHINA_HEADER 0.1

score NO_REAL_NAME 0.2

score HTML_MESSAGE 0.2

score MIME_HTML_ONLY 0.2

score MIME_HTML_ONLY_MULTI 0.2

score FORGED_MUA_OUTLOOK 0.2

score FORGED_HOTMAIL_RCVD 0.2

score FORGED_OUTLOOK_TAGS 0.2

score MAILTO_TO_SPAM_ADDR 0.2

 

#黑白名单

whitelist_from *@domain.com

 

# ---------------------------------------------------------------------------

# 使用中国反垃圾邮件联盟的CBL/CDL

# URL: http://www.anti-spam.org.cn/

header RCVD_IN_CBL eval:check_rbl('cbl', 'cbl.anti-spam.org.cn.')

describe RCVD_IN_CBL Received via a relay in cbl.anti-spam.org.cn

tflags RCVD_IN_CBL net

 

header RCVD_IN_CDL eval:check_rbl('cdl-notfirsthop', 'cdl.anti-spam.org.cn.')

describe RCVD_IN_CDL CDL: dialup sender did non-local SMTP

tflags RCVD_IN_CDL net

 

#SCORE

score RCVD_IN_CBL 4.0

score RCVD_IN_CDL 3.0

 

#运行ntsysv,spamassassin设定的为开机运行

 

#使用CCERT 中文垃圾邮件过滤规则集Chinese_rules.cf

wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf

 

#启动SpamAssassin

service  spamassassin start

 

#定期自动更新中文反垃圾邮件规则

crontab –e

 #加入

0 0 1 * * wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf;/etc/init.d/spamassassin restart;/etc/init.d/spamassassin restart;

 

#建立SpamAssassin的学习系统

sa-learn --sync -D -p user_prefs

 

#查看自学习的数据信息

sa-learn --dump all

 

#查看调试信息

spamassassin --lint –D

 

 

第十七节:安装Clamav   TOP

 

#添加所需的组和用户

groupadd clamav

useradd -g clamav -s /bin/false clamav

 

#安装软件

 

cd /home/pkg

tar -xzvf clamav-0.83.tar.gz

cd clamav-0.83

./configure --disable-zlib-vcheck

make check

make install

 

#测试Clamav

clamscan --recursive --log=/tmp/clamscan.log ./         //扫描当前目录,测试clamscn是否运行

cat /tmp/clamscan.log

 

#更改/usr/local/etc/freshclam.conf文件,去掉下面选项前面的#:

vi /usr/local/etc/freshclam.conf

 

#Example \\前面加上#

UpdateLogFile /var/log/freshclam.log \\去掉前面的#

LogSyslog \\去掉前面的#

PidFile /var/run/freshclam.pid \\去掉前面的#

 

更改/usr/local/etc/clamd.conf文件,去掉下面选项前面的#:

vi /usr/local/etc/clamd.conf

 

#Example \\前面加上#

LogFile /var/log/clamav/clamd.log \\去掉前面的#

LogFileMaxSize 2M \\去掉前面的#

LogTime \\去掉前面的#

PidFile /var/run/clamd.pid \\去掉前面的#

LogSyslog \\去掉前面的#

ScanMail \\去掉前面的#

 

touch /var/log/freshclam.log

chmod 644 /var/log/freshclam.log

chown clamav:clamav /var/log/freshclam.log

 

mkdir /var/lib/clamav

chown clamav:clamav /var/lib/clamav

 

#升级clamscan病毒库

freshclam --verbose

 

#freshclam加入crontab 定时更新病毒库,自动扫描/home目录

crontab -e

 

0 1 * * * freshclam --quiet -l /var/log/freshclam.log

0 6 * * * /usr/local/bin/clamscan --recursive --infected --exclude /usr/local/share/clamav/viruses.db --exclude /usr/local/share/clamav/viruses.db2 --log=/var/log/clamscan.log /home

 

#创建freshclam日志记录文件

mkdir -p /var/log/clamav

touch /var/log/clamav/clamd.log

chown clamav.clamav -R /var/log/clamav/

chmod 644 -R /var/log/clamav/

 

#创建clamav启动脚本

vi /etc/rc.d/init.d/clamav

 

#!/bin/sh

#

# Startup / shutdown script for Clam Antivirus

 

 

case "$1" in

start)

/usr/local/sbin/clamd && echo -n 'Clamd started'

/usr/local/bin/freshclam -d -c 2 -l /var/log/freshclam.log

echo -n ' freshclam started'

;;

 

stop)

/usr/bin/killall clamd > /dev/null 2>&1 && echo -n 'Clamd stoped'

/usr/bin/killall freshclam > /dev/null 2>&1 && echo -n ' freshclam Stoped'

;;

 

*)

echo ""

echo "Usage: `basename $0` { start | stop }"

echo ""

exit 64

;;

esac

 

#使其能够执行

chmod 755 /etc/init.d/clamav

 

#随开机起动

ln -s /etc/init.d/clamav /etc/rc.d/rc3.d/S88clamav

ln -s /etc/init.d/clamav /etc/rc.d/rc5.d/S88clamav

 

 

 

第十八节:安装MailDrop TNEF reader   TOP

 

TNEF是一个从"application/ms-tnef". 类型中找出MIME附件的程序.这仅仅是微软系统中的一种附件.TNEF程序允许将封装成TNEF的附件提取出来. 安装TNEF并不是必须的, 但我强烈推荐安装它!

 

# 安装 maildrop

cd /home/pkg

tar -xjvf maildrop-1.8.0.tar.bz2

cd maildrop-1.8.0

./configure

make

make install-strip

make install-man

 

# 安装 the tnef

cd /home/pkg

tar -xzvf tnef-1.2.3.1.tar.gz

cd tnef-1.2.3.1

./configure

make

make install

 

#使用Maildrop调用SpamAssassin

#/home/vpopmail/domains/localhost.com(你创建的域)/ 建立mailfilter文件

touch mailfilter

chown vpopmail:vchkpw mailfilter

chmod 700 mailfilter

 

vi mailfilter

#mailfilter内容如下:

 

VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`                                                               

VSPAM=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST` 

 

`test -d $VHOME/Maildir/`

if( $RETURNCODE != 0 )

{

   echo "Sorry , but the user $EXT@$HOST dos not exist"

   EXITCODE=77

   exit

}

 

if ( $SIZE < 262144 )                                                                                             

{     

 exception {                                                                                                  

               xfilter "/usr/bin/spamc -f -u $EXT@$HOST"                                                         

       }                                                                                                        

}                                                                                                                

if (/^X-Spam-Flag: YES/)                                                                                          

{                                                                                                                 

       to "$VSPAM/Maildir/.Trash/."                                                                                

       EXITCODE=0                                                                                                 

}                                                                                                                  

else                                                                                                              

{                                                                                                                                                                                                                           

       to "$VHOME/Maildir/."                                                                                      

}

 

#修改.qmail-default内容如下:

vi .qmail-default

 

| preline /usr/local/bin/maildrop mailfilter

 

 

 

第十九节:安装qmail-scanner&qms-analog   TOP

 

为了能够扫描邮件服务器中进出的邮件, 我们需要安装 qmail-scanner. 如果你之前没有安装perl-suidperl,我们还需要安装它

 

cd /home/pkg

rpm -Uvh perl-suidperl-5.8.5-12.1.1.i386.rpm

 

#解开qmail-scanner...

tar zxvf qmail-scanner-1.25.tgz

 

#解压qms-analog...

tar zxvf qms-analog-0.4.2.tar.gz

cd qms-analog-0.4.2

make all

 

#下一步,我们拷贝所需要的qms-analog文件到qmail-scanner安装目录

cp qmail-scanner-1.25-st-qms-20050219.patch /home/pkg/qmail-scanner-1.25

 

#现在,让我们打上qms-analog补丁

cd /home/pkg/qmail-scanner-1.25

patch -p1 < qmail-scanner-1.25-st-qms-20050219.patch

 

#继续安装qmail-scanner,添加所需的组和用户

groupadd qscand

useradd -g qscand -s /bin/false qscand

 

#我们通过qms-config-script脚本来安装qmail-scanner,编辑qms-config-script

vi qms-config

 

#修改下面红色部份以达到我们的需求:

 

./configure    --domain domain.com \

               --admin postmaster \

               --local-domains "domain.com" \

               --add-dscr-hdrs yes \

               --dscr-hdrs-text "X-Antivirus-MYDOMAIN" \

               --ignore-eol-check yes \

               --sa-quarantine 0 \

               --sa-delete 0 \

               --sa-reject no \

               --sa-subject ":SPAM:" \

               --sa-alt yes \

               --sa-debug no \

               --notify admin \

               --redundant yes \

               --qms-monitor no \

               --lang en_GB \

               --debug no \

               --unzip yes \

               --scanners clamscan,verbose_spamassassin \

               "$INSTALL"

 

#注意: "--admin" "--domain" 参数组成了帐号"user"@"domain name". 警告消息将通过qmail-scanner 发往这个邮件帐号, 所以必须确认这是一个管理级别的帐号. 另外,所有域的警告信息都会发给这个帐号, 所以一定要小心.

 

#保存并退出。

 

#现在我们测试qmail-scanner安装

chmod 755 qms-config

./qms-config

 

#在第一步时, y 允许qmail-scanner提前configure. 第二步时, y,建立 qmail-queue-scanner.pl 文件.

#测试如果没有错误 ,就可以进行下一步安装

 

./qms-config install

 

#看看/var/qmail/bin/qmail-scanner-queue.pl是否存在

chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl

chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl

 

#然后用一个普通用户登陆,执行/var/qmail/bin/qmail-scanner-queue.pl -z

#如果没有Can't do setuid出现,安装OK

setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -z

 

#查看qmailscan当前包含的特征

setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -r

 

#保存qmailscan定义特征的修改,使他生效。

setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -g 

 

chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl

chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl

chown -R qscand:qscand /var/spool/qmailscan

 

vi /var/qmail/supervise/qmail-smtpd/run

 

#在你的qmail启动脚本修改红色部份

#!/bin/sh

qmailDUID=`id -u vpopmail`

NOFILESGID=`id -g vpopmail`

PATH=$PATH:/usr/local/bin:/var/qmail/bin

qmailQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" export qmailQUEUE

MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`

exec /usr/local/bin/softlimit -m 40000000 \

/usr/local/bin/tcpserver -v -H -R -l 0 \

-x /home/vpopmail/etc/tcp.smtp.cdb -c "$MAXSMTPD" \

-u "$qmailDUID" -g "$NOFILESGID" 0 smtp \

/var/qmail/bin/qmail-smtpd \

/home/vpopmail/bin/vchkpw /bin/true 2>&1

 

#后重新启动smtp服务

qmailctl stop

qmailctl start

qmailctl stat

 

#这里有测试程序

cd /home/pkg/qmail-scanner-1.25/contrib/

chmod 755 test_installation.sh

./test_installation.sh -doit

 

#这个脚本会设定的管理员邮件地址发送3个邮件,第一个邮件是一般的正常邮件,第二个邮件中会包含eicar.com测试病毒,第三个邮件同样包含eicar.com测试病毒,不过所附带的文件名不是eicar.com

#如果qmail-scanner安装正确,管理员就应该可以收到关于后面的两个邮件的警告邮件。

#如果系统出错,可以查看/var/spool/qmailscan/qmail-queue.log日志文件。

#qmail-scanner的特征过滤在/var/spool/qmailscan/quarantine-attachments.txt

 

#主要的排错监测日志

/var/spool/qmailscan/quarantine.log

/var/spool/qmailscan/qmail-queue.log

/var/spool/qmailscan/qms-events.log

/var/log/clamav/clamd.log

/var/log/maillog

 

 

第二十节:安装qmailAnalog & qlogtools  TOP

 

qmailanalog针对qmail的日志进行一些最基本的分析,并将结果发送到你指定的位置。在我的方案中,设置qmailanalog每天晚上运行,并将结果发送给管理员。 在使用qmailanalog时,我们还将会用到qlogtools软件包。

qlogtools提供一系列分析qmail日志的工具,这些工具将文件中诲涩难懂的日志转换成便於我们阅读和能够理解的报告。当安装完成qmailstatsQlogtools后,我将会创建一个脚本让它每天晚上运行,并将报告发送到管理员邮箱。这个脚本也可用到我们先前安装的qms-analog,qms-analog将会提供qmail-scanner运行状态报告。

 

#先安装qmailanalog

 

cd /home/pkg/

tar zxvf qmailanalog-0.70.tar.gz

cd qmailanalog-0.70

 

patch < /home/pkg/qmailanalog-0.70.errno.patch

make && make setup check

 

#安装qlogtools

 

cd /home/pkg/

tar zxvf qlogtools-3.1.tar.gz

cd qlogtools-3.1

patch < /home/pkg/qlogtools_errno.patch

make

./installer

 

#现在我们要创建一个脚本,并将它添加到cron,让其每天晚上运行并产生报告。

#下面是一个可靠的脚本,它将会收集qmailanalog输出的信息并产生报告。

 

cp /home/pkg/qms-analog-0.4.2/qmailstats /var/qmail/bin/

 

#红色部份改成你的域名。

vi /var/qmail/bin/qmailstats

 

#!/bin/sh

# qmailanalog invocation script

PATH=/usr/local/qmailanalog/bin:/var/qmail/bin:/bin:/usr/bin:/usr/local/bin

qmailSTATS="/tmp/q.$$"

EMAILMSG="/tmp/qms.$$"

umask 077

cat /var/log/qmail/* /var/log/qmail/pop3d/* /var/log/qmail/pop3ds/* /var/log/qmail/smtpd/* | tai64n2tai | awk '{$1=substr($1,1,index($1,".")+6);print}' | matchup > $qmailSTATS 5>/dev/null

 

DATE=`date +'%D'`

 

echo "To: postmaster@yourdomain.com" > $EMAILMSG

echo "From: postmaster@yourdomain.com" >> $EMAILMSG

echo "Subject: Nightly qmail Stats Report for $DATE" >> $EMAILMSG

echo "" >> $EMAILMSG

echo "" >> $EMAILMSG

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

zoverall < $qmailSTATS >> $EMAILMSG

echo "" >> $EMAILMSG

echo "" >> $EMAILMSG

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

zfailures < $qmailSTATS >> $EMAILMSG

echo "" >> $EMAILMSG

echo "" >> $EMAILMSG

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

zdeferrals < $qmailSTATS >> $EMAILMSG

echo "" >> $EMAILMSG

echo "" >> $EMAILMSG

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~ L a s t 2 4 H o u r s ~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

cat /var/spool/qmailscan/qms-events.log | qms-analog 24 >> $EMAILMSG

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A l l R e c o r d s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG

cat /var/spool/qmailscan/qms-events.log | qms-analog 0 >> $EMAILMSG

cat $EMAILMSG | qmail-inject

 

rm -f $qmailSTATS

rm -f $EMAILMSG

 

 

#设置此脚本可执行

 

chmod 750 /var/qmail/bin/qmailstats

 

#现在,让我们运行脚本

 

/var/qmail/bin/qmailstats

 

#确认你的管理员邮箱,你将会收到一份非常详尽的报告。

#如果测试运行正常,那就加入cron让其每天早上3点运行。

crontab –e

 

0 3 * * * /var/qmail/bin/qmailstats 1>/dev/null 2>/dev/null

 

 

 

第二十一节:安装isoqlog   TOP

 

isoqlog是一个qmail日志分析工具,它是用perl写的,可以分析和统计qmail的运行日志,并生成漂亮的HTML格式的报表,如果服务器上已经安装WEB服务,管理员就可以通过浏览器来查看这些报表。相对于qmailanalog,isoqlog分析的项目稍微少一些。

isoqlog可以生成多个邮件域的报表;对于每个邮件域,isoqlog可以统计出每天、每月、每年的邮件流量以及字节数,还生成相应的统计柱状图;对于每天的报表,isoqlog可以根据邮件投递的数量以及字节数的多少来对邮件用户进行排列。

 

#安装isoqlog

 

cd /home/pkg

tar zxvf isoqlog-2.1.1.tar.gz

cd isoqlog-2.1.1

./configure

make

make install

make clean

 

cd isoqlog

mkdir /var/www/html/isoqlog

cp -pr ./htmltemp/images ./htmltemp/library /var/www/html/isoqlog

 

#配置isoqlog

cd /usr/local/etc

mv isoqlog.conf-dist isoqlog.conf

 

vi isoqlog.conf

 

#将下面红色部份改成你的安装目录和主机名称。

 

#isoqlog Configuration file

 

logtype = "qmail-multilog" #log type qmai-multilog, qmail-syslog, sendmail, postfix

logstore = "/var/log/qmail" #

domainsfile = "/usr/local/etc/isoqlog.domains" #

outputdir = "/var/www/html/isoqlog" #html outpur directory

htmldir = "/usr/local/share/isoqlog/htmltemp"

langfile = "/usr/local/share/isoqlog/lang/english"

hostname = "mail.domain.com"

 

maxsender = 100

maxreceiver = 100

maxtotal = 100

 

maxbyte = 100

 

 

#保存并退出。