Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

qmail+vpopmail+iGenus+iGenus admin+qmail-scanner+maildrop+SPAMassassin+isoqlog

[复制链接]
Nanu 发表于 2006-1-5 20:11:10 | 显示全部楼层 |阅读模式
Auth:Nanu
mail:nanu@discuz.com
web:https://discuz.dismall.com
版本:2.9.2-lite
最后更新日期: 2006年1月5日


功能列表

SMTP服务器:SMTP-AUTH认证(Plain,Login,CRAM-MD5),TLS(SSL)支持
POP3服务器:CRAM-MD5,APOP,和SSL支持
病毒和垃圾邮件检测
Web管理
通过Web显示统计信息
WebMail

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

安装准备

推荐在Red Hat Enterprise Linux Advanced Server 3.X或Red Hat Linux 9.0中部署本邮件系统。在AS4中测试时,发现反垃圾部分由于缺少一个RPM包(在AS4安装光盘中无法找到),因而反垃圾功能未能实现。另外,在开始部署本邮件系统之前请务必确认您的系统中已经部署完成Apache+PHP+MySQL,否则Webmail和Web管理无法安装!

要确认下面的软件是否已经安装:

rpm -q gdbm
rpm -q gdbm-devel
rpm -q openssl
rpm -q openssl-devel
rpm -q stunnel
rpm -q krb5-devel


如果你还没有安装, 请先安装它们. 你可以到安装光盘或是在这里找到它们的RPM包 http://www.rpmfind.net

如果设置了防火墙,要打开服务器的www 80、smtp 25和pop3 110三个端口。

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

卸载已有的邮件系统
确认没有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

下载软件

我把下文中所提到的软件打成了一个包,下载地址为:http://nanu.8866.org/qmail.tar.gz,我一般把软件放在/usr/local/qmail_src下面,根据个人习惯吧。

cd /usr/local/qmail_src
tar xzvf qmail.tar.gz
cd Qmail
tar xzvf netqmail-1.05.tar.gz
cd netqmail-1.05
./collate.sh

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

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

安装软件
daemontools

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

#安装:
cd /usr/local/qmail_src/Qmail
tar -zxvf daemontools-0.76.tar.gz
cd admin/daemontools-0.76
patch -p1 < /usr/local/qmail_src/Qmail/netqmail-1.05/other-patches/daemontools-0.76.errno.patch
package/install

# 验证daemontools已经正常运行:
ps ax | grep svscan

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

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

#安装:
cd /usr/local/qmail_src/Qmail
tar zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch -p1 < ../ucspi-tcp-0.88.a_record.patch
patch -p1 < ../ucspi-tcp-0.88.errno.patch
patch -p1 < ../ucspi-tcp-0.88.nobase.patch
make
make setup check

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

qmail

这个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 /usr/local/qmail_src/Qmail
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/

vi qmail-smtpd.c \ 搜索函数straynewline中的451改为553

# 当你的服务器收到无效格式的邮件时,会发送:"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.",告诉对方的服务器不要再发这封无效的信件。


make
make setup check

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

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

#为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
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 /usr/local/qmail_src/Qmail/toaster-scripts-0.6/send.run /var/qmail/supervise/qmail-send/run
cp /usr/local/qmail_src/Qmail/toaster-scripts-0.6/send.log.run /var/qmail/supervise/qmail-send/log/run
cp /usr/local/qmail_src/Qmail/toaster-scripts-0.6/smtpd.run /var/qmail/supervise/qmail-smtpd/run
cp /usr/local/qmail_src/Qmail/toaster-scripts-0.6/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run
cp /usr/local/qmail_src/Qmail/toaster-scripts-0.6/pop3d.run /var/qmail/supervise/qmail-pop3d/run
cp /usr/local/qmail_src/Qmail/toaster-scripts-0.6/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run
cp /usr/local/qmail_src/Qmail/toaster-scripts-0.6/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run
cp /usr/local/qmail_src/Qmail/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 /usr/local/qmail_src/Qmail/toaster-scripts-0.6/rc /var/qmail/
cp /usr/local/qmail_src/Qmail/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

日志:

/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

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

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

#配置:

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是帐号,nanu为密码,第二个vpopmail是数据库
echo "localhost|0|vpopmail|nanu|vpopmail" > /home/vpopmail/etc/vpopmail.mysql

chmod 640 /home/vpopmail/etc/vpopmail.mysql
chown -R vpopmail.vchkpw /home/vpopmail/etc

# 在MySQL里添加vpopmail的帐号
mysql -uroot -p

CREATE DATABASE vpopmail;
GRANT select,insert,update,delete,create,drop ON vpopmail.*
TO vpopmail@localhost IDENTIFIED BY 'nanu';
FLUSH PRIVILEGES;
QUIT

#安装:

cd /usr/local/qmail_src/Qmail
tar zxvf vpopmail-5.4.7.tar.gz
cd vpopmail-5.4.7

# 带数据库支持

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

make
make install-strip

#管理:

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

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

# 添加用户,红色部份为注解,不用输入
vadduser -q 10485760S(邮箱大小) nanu@domain.com(邮箱帐号) 666666(密码)
vmoduser -c Nanu(邮箱描述) nanu@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 /usr/local/qmail_src/Qmail/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

#补丁:

# 带数据库支持
cd /usr/local/qmail_src/Qmail/netqmail-1.05/netqmail-1.05
patch -p0 < /usr/local/qmail_src/Qmail/chkuser-0.6.mysql.patch

#修改libmysqlclient.a存在路径
vi conf-mysql
/usr/local/mysql/lib/libmysqlclient.a
make clean
make
qmailctl stop
make setup check
qmailctl start


安装选项参考:

vpopmail 5.4.7
Current settings
---------------------------------------

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 = 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)

#POP3和SMTP测试

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


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

安装并运行igenus

http://www.igenus.org下载最新的安装包,我用的是igenus_2.0.2_20040901_release.tgz

#安装:
cd /usr/local/qmail_src/Qmail
tar zxvf igenus_2.0.2_20040901_release.tgz -C /var/www/
cd /var/www/
rm -rf html/
mv igenus html


#建temp文件夹

cd /var/www/html/
mkdir temp
chmod -R 0755 temp

chown -R vpopmail:vchkpw 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
Group vchkpw
User vpopmail
DocumentRoot "/var/www/html/"

/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 = $CFG_BASEPATh."/temp"; \\改成你安装的目录的当前目录下


#重新编制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 定义允许上传下载的邮件的大小

vi /etc/php.ini
#编辑/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


vi /etc/httpd/conf/httpd.conf
#编辑/etc/http/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.net
DocumentRoot /var/www/html
</VirtualHost>


#重启apache:
#service httpd restart


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

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


#Qmail限制附件的大小

在/var/qmail/control/databytes 文件中设置附件的大小,可以实现对qmail附件大小的限制,一般安装完成后,这个文件是没有的,你可以自己创建。
smtp方式是以qmail的databytes作限制的
创建databytes并设置邮件最大为4m

# echo 4000000 >/var/qmail/control/databyte


#限制单域的邮箱数量

vi /home/vpopmail/domains/domain.com/.qmailadmin-limits

maxpopaccounts 200
default_quota 52428800s

chmod 700 /home/vpopmail/domains/domain.com/.qmailadmin-limits
chown vpopmail:vchkpw /home/vpopmail/domains/domain.com/.qmailadmin-limits

这样就把邮箱总数限制在200个,每个邮箱为50M了



#用qmail封mailfrom

vi/var/qmail/control/badmailfrom

这个控制文件实现拒收邮件功能的,每一个地址要单独一行。而且,不用重起qmail就能生效。例如:

peng@96633.net -----限制一个特定的用户
@sina.com -----限制整个域中的邮件


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

安装并运行iGenus_Admin
iGenus_Admin安装

#下载
www.igenus.org 下载igenus_admin的安装文件igenus_admin_0.1.tgz到/home/pkg

#安装
cd /usr/local/qmail_src/Qmail
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 = "vpopmail"; \\改为你的密码
$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/

来登录管理了。

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

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

安装SpamAssassin 要用到Time-HiRes、Digest-SHA1、HTML-Parser、perl-DB_File和HTML-Tagset. 如果你没有安装的话,必须首先安装它,此文件均在RHAS3安装光盘第二和第三张中。对应的软件包为:


perl-Time-HiRes-1.38-3.i386.rpm
perl-Digest-SHA1-2.01-15.1.i386.rpm
perl-HTML-Parser-3.26-17.i386.rpm
perl-HTML-Tagset-3.03-28.noarch.rpm
perl-DB_File-1.804-88.i386.rpm

如需安装请按照以下顺序安装RPM:
perl-Time-HiRes* --> perl-Digest-SHA1* --> perl-HTML-Tagset* --> perl-HTML-Parser* --> perl-DB_File*

# 安装SpamAssassin (特别注意!:使用SpamAssassin功能将会严重加大CPU负荷!!!)

groupadd spamd
useradd -g spamd -s /bin/false spamd

cd /usr/local/qmail_src/Qmail
tar -xzvf Mail-SpamAssassin-3.0.1.tar.gz
cd Mail-SpamAssassin-3.0.1

export LC_ALL=C
perl Makefile.PL
make
make install

#我们想要SpamAssassin 随系统自动启动,安装目录中提供了一个起动脚本

cp spamd/redhat-rc-script.sh /etc/rc.d/init.d/spamd
vi /etc/rc.d/init.d/spamd

SPAMDOPTIONS="-d -c -u spamd -H /home/spamd -m5"

#修改其中一行为上所示。

chmod 755 /etc/rc.d/init.d/spamd
chkconfig --add spamd

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

vi /etc/mail/spamassassin/local.cf

required_hits 5.0
rewrite_subject 1
subject_tag ********SPAM********
report_safe 1
defang_mime 0
rewrite_subject 0
report_header 1
use_terse_report 1
use_bayes 1
auto_learn 1
skip_rbl_checks 1
use_razor2 0
use_dcc 0
use_pyzor 0

score SUBJ_FULL_OF_8BITS 0.0
score BASE64_ENC_TEXT 0.0
score BAYES_99 0.1
score BAYES_90 0.1
score SUBJ_ILLEGAL_CHARS 0.1
score FROM_ILLEGAL_CHARS 0.5
score HEAD_ILLEGAL_CHARS 0.5
score MIME_BASE64_TEXT 0.5
ok_locales en zh


chmod 755 /etc/rc.d/init.d/spamd
chkconfig --add spamd
service spamd start

#运行ntsysv,将spamd设定的为开机运行.

# 进行一个spam和non-spam的测试

spamassassin -t < sample-spam.txt > spamtest.txt
less spamtest.txt
spamassassin -t < sample-nonspam.txt > nospamtest.txt
less nospamtest.txt
#spamtest.txt文件在主题一段中将包含"*****SPAM*****" 这一行, 而nospamtest.txt文件中则没有.

#建立SpamAssassin的学习系统
sa-learn --rebuild -D -p user_prefs

sa-learn --dump all 可以查看自学习的数据信息


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

Clamav
#添加所需的组和用户

groupadd clamav
useradd -g clamav -s /bin/false clamav

注意:最好不好使用包中的Clamav,因为版本较老,不支持查杀rar压缩包中的病毒。
4月29日发布的Clamav0.48(or later)在其官方的Release Note中已经声明支持RAR3编码的压缩包扫描。

1、下载最新源码包
http://www.clamav.net

2、安装Clamav
# tar xzvf clamav-*.tar.gz
# cd clamav-*.tar.gz
# ./configure
# make check
# make install

3、配置Clamav
# vi /usr/local/etc/freshclam.conf
#Example (前面加上#)
UpdateLogFile /var/log/freshclam.log (去掉前面的#)
LogSyslog (去掉前面的#)

# vi /usr/local/etc/clamd.conf
#Example (前面加上#)
LogFile /var/log/clamav/clamd.log (去掉前面的#)
LogFileMaxSize 2M (去掉前面的#)
LogTime (去掉前面的#)
PidFile /var/run/clamd.pid (去掉前面的#)
DataDirectory /var/lib/clamav (去掉前面的#,并且修改路径为/usr/local/share/clamav)
LogSyslog (去掉前面的#)
ScanMail (去掉前面的#)
ScanArchive (去掉前面的#)
ScanRAR (去掉前面的#)

#升级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

启动 & 测试
启动Clamav
# /usr/local/sbin/clamd
# /usr/local/bin/freshclam -d -c 2 -l /var/log/freshclam.log

测试RAR压缩包:
首先将一个或多个病毒样本用WinRAR3.XX打包,放到/home/virus.rar
# clamscan --recursive --log=/tmp/clamscan.log /home/virus.rar
# cat /tmp/clamscan.log
查看是否检查出RAR包里的病毒。

然后,将virus.rar作为邮件的附件发送到您的邮件服务器中的一个用户。
查看Postmaster是否有病毒报告。

#创建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/rc.d/init.d/clamav

#随开机起动
echo /etc/rc.d/init.d/clamav start >/etc/rc.d/rc.local

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

MailDrop and TNEF reader
TNEF是一个从"application/ms-tnef". 类型中找出MIME附件的程序.这仅仅是微软系统中的一种附件.

TNEF程序允许将封装成TNEF的附件提取出来. 安装TNEF并不是必须的, 但我强烈推荐安装它!

# 安装 maildrop
cd /usr/local/qmail_src/Qmail
tar -xjvf maildrop-1.7.0.tar.bz2
cd maildrop-1.7.0
./configure
make
make install-strip
make install-man

# 安装 the tnef
cd /usr/local/qmail_src/Qmail
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内容如下:

VPOP="| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox"
VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`

if ( $SIZE < 262144 )
{
exception {
xfilter "/usr/bin/spamc -f -u $EXT@$HOST"
}
}

if (/^X-Spam-Flag: YES/)
{
# try filtering it using user-defined rules
exception {
include $VHOME/Maildir/.mailfilter
}
# then try delivering it to a Spam folder
exception {
# to "$VPOP"
to "$VHOME/Maildir/.Spam/"
}
# ah well, I guess they'll just have to live with disappointment
exception {
to "$VPOP"
}
}
else
{
exception {
include $VHOME/Maildir/.mailfilter
}
exception {
to "$VPOP"
}
}

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

| /usr/local/bin/maildrop ./mailfilter


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


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

cd /usr/local/qmail_src/Qmail
rpm -Uvh perl-suidperl-5.8.0-88.3.i386.rpm

#解开qmail-scanner...

tar zxvf qmail-scanner-1.22.tgz

#解压qms-analog...

tar zxvf qms-analog-0.3.4.tar.gz

cd qms-analog-0.3.4

make all

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

cp qmail-scanner-1.22-st-qms-20040530.patch /usr/local/qmail_src/Qmail/qmail-scanner-1.22/

cp qms-config-script /usr/local/qmail_src/Qmail/qmail-scanner-1.22/

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

cd /usr/local/qmail_src/Qmail/qmail-scanner-1.22

chmod 755 qms-config-script

patch -p1 < qmail-scanner-1.22-st-qms-20040530.patch

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

groupadd qscand
useradd -g qscand -s /bin/false qscand

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

vi qms-config-script

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

#!/bin/sh

if [ "$1" != "install" ]; then
INSTALL=
else
INSTALL="--install"
fi

./configure --domain domain.com \
--qmail-queue-binary /var/qmail/bin/qmail-queue \
--admin postmaster \
--local-domains "domain1.com,domain2.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 \
--lang en_GB \
--debug no \
--unzip yes \
--scanners clamscan,verbose_spamassassin \
"$INSTALL"

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

#保存并退出。

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

./qms-config-script

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

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

./qms-config-script 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

setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -z //如果没有Can't do setuid出现,安装OK
setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -r //查看qmailscan当前包含的特征
setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -g //保存qmailscan定义特征的修改,使他生效。

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 /usr/local/qmail_src/Qmail/qmail-scanner-1.22/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


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

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


qmailanalog,isoqlog分析的项目稍微少一些。

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


件用户进行排列。

#安装isoqlog

cd /usr/local/qmail_src/Qmail
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


#保存并退出。

#下一步是告诉isoqlog哪些虚拟域需要产生统计报表,我希望我的mail服务器能够报告每个域的状态,所以只需要简单的创建了个链接即可:

ln -s /var/qmail/control/rcpthosts isoqlog.domains

#现在,isoqlog应该能够正常运行了,运行如下命令测试一下效果:

/usr/local/bin/isoqlog

#通过如下页面查看输出结果:

http://domain.com/isoqlog

#你可以点击各个虚拟域名称显示其报表。


#我们希望isoqlog能够即时提供报表,将如下内容加入crontab

crontab -e
58 * * * * /usr/local/bin/isoqlog 1>/dev/null 2>/dev/null

#每个小时的第58分钟运行一次


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

邮件系统维护:
邮件系统相关日志

/var/log/maillog
/var/log/qmail/current
/var/log/qmail/pop3d/current
/var/log/qmail/pop3ds/current
/var/log/qmail/smtpd/current
/var/spool/qmailscan/qmail-queue.log
/var/spool/qmailscan/qms-events.log
/var/spool/qmailscan/quarantine.log


设置Qmail用户邮箱的容量
# cd /home/vpopmail/bin
#./vsetuserqutoa domain.com 10500000s --domain.com这个域,都设成10m的
#./vsetuserqutoa nanu@domain.com 10500000s ---只把nanu@domain.com这个用户单独设置为10m。


批量添加用户

例1:

新建一文件 batchadduser.sh,将以下内容拷入文件中保存 ,运行chmod u+x batchadduser.sh使其可执行。

#!/bin/bash
#batchadduser.sh: batch add mail user.
#install step.
#chmod u+x batchadduser
#./batchadduser.sh domain datafile
if [ $# -lt 2 ]
then
echo "usage: $0 domain datafile"
exit 1
fi
domain=$1
datafile=$2
addcmd=/home/vpopmail/bin/vadduser
while read username passwd
do
$addcmd $username@$domain $passwd
done < $datafile

user文件内容的格式
username1 passwd
username2 passwd2
............


运行batchadduser.sh user即可批量添加用户。

例2:

我把用户名放到一个文本文件中,一个名字一行,密码和它的帐号一致,用户自己再去改密码。

while read line
do
echo $line
./vadduser $line $line
done < user


临时限制一个用户的pop3
vmoduser -p email_addr or domain ( for the entire domain )


修改默认的域名
A:
要更改haohao.com为默认域。
方法:
更改~qmail/control/
defaultdomain
me
plusdomains
逐一更改启动pop3和 smtp的启动脚本:
修改:email.3sk.com为haohaoo.com
在最上边添加:export VPOPMAIL_DOMAIN=haohaoo.com


把一邮件域的名字比如a.com更改为b.com,如何实现
以下几个步骤:
1、cd /home/vpopmail/domains
mv a.com b.com
2、把vpopmail数据库的vpopmail表导出把所有a.com改为b.com,然后删除vpopmail表,再导入.
3、把把vpopmail数据库的dir_control表的a.com改为b.com
4、在/home/qmail/control 目录下把 virtualdomains和rcpthosts下的的a.com改为b.com.
5、在/home/qmail/users目录下把assign文件的a.com改为b.com
6、需要运行qmail-newu重新生成cdb。assign只是配置文件,cdb才是实际的数据文件。
加快 qmail 投递邮件速度
A: /var/qmail/control下面是qmail的控制文件,这两个文件:
Concurrentcylocal default: 10 最大本地同时传送数
Concurrencyremote default: 20 最大远程同时传送数
更改域的默认管理账号
A: vmoduser有个-a参数,可以赋予用户管理权限。

如果想全面禁用postmaster的特殊权限话,就只能改源代码了。


QMAIL下的主要配置文件(/var/qmail/control目录下):
文件名 默认值 使用者 用途
badmailfrom none qmail-smtpd 黑名单地址
bouncefrom MAILER-DAEMON qmail-send 退回邮件
bouncehost me qmail-send 退回邮件
concurrencylocal 10 qmail-send 本地同时投递邮件的数目
concurrencyremote 20 qmail-send 同时投递至远程主机的数目
defaultdomain me qmail-inject 默认域名
defaulthost me qmail-inject 默认主机名
databytes 0 qmail-smtpd 邮件的最大容量 (0=无限制)
doublebouncehost me qmail-send
doublebounceto postmaster qmail-send
envnoathost me qmail-send 没有"@"的默认域名
helohost me qmail-remote 主机名
idhost me qmail-inject Message-ID的主机名
localiphost me qmail-smtpd 本地IP的替代名
locals me qmail-send 传递至本地的域名
me 系统正式域名 various
morercpthosts none qmail-smtpd 第二个rcpthosts
percenthack none qmail-send 使用 "%"格式的域名
plusdomain me qmail-inject
qmqpservers none qmail-qmqpc QMQP服务器的IP地址
queuelifetime 604800 qmail-send 在队列中邮件保存的时间(秒)
rcpthosts none qmail-smtpd 接收邮件的域名
smtpgreeting me qmail-smtpd
smtproutes none qmail-remote
timeoutconnect 60 qmail-remote SMTP连接超时时间
timeoutremote 1200 qmail-remote 等待远程主机的时间
timeoutsmtpd 1200 qmail-smtpd SMTP客户连接超时的时间
virtualdomains none qmail-send 虚拟域名


Qmail限制附件大小
我的配置经验==》Qmail限制附件大小:
1.在/var/qmail/control/databytes 中设置附件大小,这个文件要手动建立,直接输入数字就行,默认单位为bytes,如10485760为10M;
2.Webmail中发送附件默认只支持500K左右,如想支持5M附件,修改如下文件
# vi /etc/php.ini

post_max_filesize=5M //320行
upload_max_filesize=5M //405行
session.bug_compat_42=0 //加入到641行
session.bug_compat_warn=0

# vi /etc/httpd/conf.d/php.conf
LimitRequestBody 5242880 //修改14行的值为5M


WebMail上传附件大小限制 (解决上传文件不能大于512KB的问题)
更改/etc/httpd/conf.d/php.conf:

LimitRequestBody 524288中的524288正好跟512KB相等,将其更改为10485760,设置允许最大上传的附件为10MB。


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

FAQ (Resovled by: Nanu)

1、iGENUS Admin无法添加域,返回一些数据库查询错误?
执行下面的操作问题就可以解决了:
# chown root /home/vpopmail/bin/vadddomain
# chmod a+s /home/vpopmail/bin/vadddomain

2、用Outlook发送邮件的时候出现451, qq crashed # 4.3.0 错误?
检查/var/qmail/supervise/qmail-smtpd/run,查看exec /usr/local/bin/softlimit -m 40000000 是否为40000000,注意是7个0,如果小于40000000(40MB),则会出现451, qq crashed # 4.3.0 错误。

3、用Outlook发送邮件的时候出现451 tempory qq failed 错误?
这个问题与Qmail、qmail-scanner和Clamav有关,可以按照顺序从新安装Qmai、Clamav、qmail-scanner解决。但注意,重新安装之前请先执行:
# qmailctl stop
# /etc/rc.d/init.d/clamav stop

4、iGENUS Admin的登录好像总是有问题?
iGENUS Admin有两种登录模式,一种时管理员模式(拥有所有域的控制权限);另一种是域管理模式(只能控制所属域)。这两种方式的登录地址是不一样的:
管理员模式:http://mail.domain.com/admin/sys/
域管理模式:http://mail.domain.com/admin/

5、何更改iGENUS Admin的管理员用户名?
默认情况下,iGENUS Admin的管理员用户名为Admin,可以通过以下方式更改管理员用户名:
# vi /path-to-webmail/admin/include/config_inc.php
找到下面行:
$CFG_SYSADMIN_NAME  = "Admin";
将Admin换成你所要的管理员用户名。

[ 本帖最后由 Nanu 于 2006-2-18 22:42 编辑 ]
穆亦风 发表于 2006-1-9 15:08:46 | 显示全部楼层
内容都是精华啊
回复

使用道具 举报

叶开 发表于 2006-9-1 21:24:56 | 显示全部楼层
文件下载不到了,能不能补一下呀!
回复

使用道具 举报

c++builder 发表于 2006-9-3 06:28:09 | 显示全部楼层
回复

使用道具 举报

叶开 发表于 2006-9-20 00:12:49 | 显示全部楼层
谁能补一下这个包?
回复

使用道具 举报

litold 发表于 2006-9-24 23:52:21 | 显示全部楼层
本来不打算在机器上玩mail的,看来得试一下了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-2-27 12:39 , Processed in 0.035853 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表