LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: flyincat

AS4上架设Qmail带身份验证+反病毒垃圾服务器

[复制链接]
发表于 2006-3-19 19:49:33 | 显示全部楼层
刚才看了一下才知已改成
eddie_we发表了
所以
上面的我也就对着eddie_we发表的来说了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-20 09:42:27 | 显示全部楼层
Post by vyouzhi
首先要说明的是,在上面这一段中,难道你就没想过要给每个用户分配一个特定的UID,每个组一个特定的GID吗?因为当你要管理很多台服务器时,你的每一个设定如果都会有不定的因素,那你就管理得不够成功了?从这可以看出其实你修改得很不成功.
第二在安装 SpamAssassin这一步时
你不应该把别人提出的perl模块删除,因为在你最少化安装时,这些模块很可能是没有安装的,
你有没有在最少化的情况下安装qmail呢?
第三如果我没看错的,你还没有安装maildrop或mail-scanner吧?


有意思,请看清楚你引用的是谁发的帖子。

我的帖子已经没有内容了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-20 09:44:08 | 显示全部楼层
Post by vyouzhi
刚才看了一下才知已改成
eddie_we发表了
所以
上面的我也就对着eddie_we发表的来说了



呵呵,你真是一个实在人

别人说什么还真是什么

我写的跟他的那篇就有很多不一样的地方,只不过大家都不愿意去看,认为是一样的。

well,既然大家认为是一样的,我就不好意思再把自己写的那点烂东西拿出来丢人
回复 支持 反对

使用道具 举报

发表于 2006-3-20 10:38:10 | 显示全部楼层
在flyincat文中确有不同,在最后加上了自己写的这一段
#安装prce.h(安装maildrop需要)
cd /home/pkg
tar zxf ../ pcre-6.3.tar.gz
cd pcre-6.3/
./configure
make
make install

以及从网络上找到的安装maildrop,没有下午中关于thetnef的安装,其他我没找到别的了。域名改了一下,前言一模一样,文章首处加了关于全部所需的软件列表。

第十八节:安装MailDrop和TNEFreaderTOP

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

#安装maildrop

cd/home/pkg

tar-xjvfmaildrop-1.8.0.tar.bz2

cdmaildrop-1.8.0

./configure

make

makeinstall-strip

makeinstall-man



#安装thetnef

cd/home/pkg

tar-xzvftnef-1.2.3.1.tar.gz

cdtnef-1.2.3.1

./configure

make

makeinstall



#使用Maildrop调用SpamAssassin

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

touchmailfilter

chownvpopmail:vchkpwmailfilter

chmod700mailfilter



vimailfilter

#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,buttheuser$EXT@$HOSTdosnotexist"

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/maildropmailfilter







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



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



cd/home/pkg

rpm-Uvhperl-suidperl-5.8.5-12.1.1.i386.rpm



#解开qmail-scanner...

tarzxvfqmail-scanner-1.25.tgz



#解压qms-analog...

tarzxvfqms-analog-0.4.2.tar.gz

cdqms-analog-0.4.2

makeall



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

cpqmail-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,添加所需的组和用户

groupaddqscand

useradd-gqscand-s/bin/falseqscand



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

viqms-config



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



./configure--domaindomain.com\

--adminpostmaster\

--local-domains"domain.com"\

--add-dscr-hdrsyes\

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

--ignore-eol-checkyes\

--sa-quarantine0\

--sa-delete0\

--sa-rejectno\

--sa-subject":SPAM:"\

--sa-altyes\

--sa-debugno\

--notifyadmin\

--redundantyes\

--qms-monitorno\

--langen_GB\

--debugno\

--unzipyes\

--scannersclamscan,verbose_spamassassin\

"$INSTALL"



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



#保存并退出。



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

chmod755qms-config

./qms-config



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

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



./qms-configinstall



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

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

chmod4755/var/qmail/bin/qmail-scanner-queue.pl



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

#如果没有Can'tdosetuid出现,安装OK

setuidgidqscand/var/qmail/bin/qmail-scanner-queue.pl-z



#查看qmailscan当前包含的特征

setuidgidqscand/var/qmail/bin/qmail-scanner-queue.pl-r



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

setuidgidqscand/var/qmail/bin/qmail-scanner-queue.pl-g



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

chmod4755/var/qmail/bin/qmail-scanner-queue.pl

chown-Rqscand:qscand/var/spool/qmailscan



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



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

#!/bin/sh

qmailDUID=`id-uvpopmail`

NOFILESGID=`id-gvpopmail`

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

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

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

exec/usr/local/bin/softlimit-m40000000\

/usr/local/bin/tcpserver-v-H-R-l0\

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

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

/var/qmail/bin/qmail-smtpd\

/home/vpopmail/bin/vchkpw/bin/true2>;&1



#后重新启动smtp服务

qmailctlstop

qmailctlstart

qmailctlstat



#这里有测试程序

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

chmod755test_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
回复 支持 反对

使用道具 举报

发表于 2006-3-20 10:41:04 | 显示全部楼层
不过却是自己经过实践总结的,不过不能怪我们看的不仔细,因为都似曾相识。
原文如下,帮你补回来。不要太介意

发帖时间:  06-03-17, 11:52

AS4上架设Qmail带身份验证+反病毒垃圾服务器

前言:邮件服务器的架设为RHEL4+qmail+vpopmail+mysql+igenus,这篇qmail安装文档是我在网上搜集整理,结合自己安装中遇到的问题,添加了一些安装包并实测成功安装的文档,如有任何偏差还请指出。

#首先确认安装环境
Red Hat Enterprise Linux Advance Server 4

系统软件包选择安装
Txt-based internet
Web Server (加选php-mysql)
Mail Server (加选spamassassin,其他清除)
FTP Server (vsftp)
Mysql Database (加选mysql-bench mysql-server php-mysql)
Development Tools
System Tools
关闭AS4.0自带的Secure Enhance Linux及防火墙

#启动Mysql并修改root密码
/etc/rc.d/init.d/mysqld start
mysqladmin -u root password 123456(你的密码)

#删除所有的邮件系统
/etc/init.d/sendmail stop (执行完后要确认进程)
rpm -e --nodeps sendmail

#安装qmail
#创建/home/pkg/目录,全部所需软件的压缩包存放在/home,解压后的包存放在/home/pkg

全部所需的软件列表如下:
autorespond-2.0.5.tar.gz
netqmail-1.05.tar.gz
daemontools-0.76.tar.gz
ucspi-tcp-0.88.tar.gz
toaster-scripts-0.8.tar.gz
vpopmail-5.4.13.tar.gz
igenus_2.0.2_20040901_release.tgz
igenus_admin_0.1.tgz
qmail-toaster-0.8.1.patch.bz2
clamav-0.83.tar.gz
Mail-SpamAssassin-3.1.0.tar.gz
maildrop-2.0.2.tar.bz2
pcre-6.3.tar.gz
perl-suidperl-5.8.5-12.1.1.i386.rpm
qmail-scanner-1.25.tgz

#注:qmail将被安装到/var/qmail,vpopmail将被安装到/home/vpopmail,igenus将被安装到/var/www/下并改名为html/,igenus_admin将被安装到/var/www/html

#安装netqmail
mkdir /home/pkg
cd /home/pkg
tar zxvf ../netqmail-1.05.tar.gz
cd netqmail-1.05
./collate.sh

#安装daemontools
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
cd /home/pkg
tar zxvf ../ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch -p1 < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch
make
make setup check

#创建所需要的用户
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 zxvf ../toaster-scripts-0.8.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

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

#设置管理员的邮箱地址。
#发往root/postmaster/mailer-daemon地址的邮件将会由定义的管理员邮箱接收。
#将如下的“kevin.yu@a8.com"替换成你的管理员邮箱。
cd /var/qmail/alias
echo "kevin.yu@a8.com" > .qmail-postmaster
echo "kevin.yu@a8.com" > .qmail-mailer-daemon
echo "kevin.yu@a8.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.8/send.run /var/qmail/supervise/qmail-send/run
cp /home/pkg/toaster-scripts-0.8/send.log.run /var/qmail/supervise/qmail-send/log/run
cp /home/pkg/toaster-scripts-0.8/smtpd.run /var/qmail/supervise/qmail-smtpd/run
cp /home/pkg/toaster-scripts-0.8/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run
cp /home/pkg/toaster-scripts-0.8/pop3d.run /var/qmail/supervise/qmail-pop3d/run
cp /home/pkg/toaster-scripts-0.8/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run
cp /home/pkg/toaster-scripts-0.8/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run
cp /home/pkg/toaster-scripts-0.8/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.8/rc /var/qmail/rc
chmod 755 /var/qmail/rc
cp toaster-scripts-0.8/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-send和qmail-smtpd
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service

#安装vpopmail
mkdir -p /home/vpopmail/etc

# 设置默认域,红色部份改成你要设置的域。
echo "test.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是帐号,123456为密码,第二个vpopmail是数据库

#echo "localhost|0|vpopmail|123456|vpopmail" > /home/vpopmail/etc/vpopmail.mysql \\不执行此行
#注:此处我们使用root帐号(密码123456)来往mysql库里写入信息,用vpopmail帐号也可以,但mysql的vpopmail帐号默认密码空是不行的,得先修改密码才能使用
echo "localhost|0|root|123456|vpopmail" > /home/vpopmail/etc/vpopmail.mysql
chmod 640 /home/vpopmail/etc/vpopmail.mysql
chown -R vpopmail.vchkpw /home/vpopmail/etc

# 给mysql的root帐号授权
mysql -uroot -p123456
CREATE DATABASE vpopmail;
GRANT all privileges ON vpopmail.* TO root@localhost
IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
QUIT

#安装:
cd /home/pkg/
tar zxvf ../vpopmail-5.4.13.tar.gz
cd vpopmail-5.4.13
#带数据库支持
./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
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock #此处应该提示'已存在'的信息

# 添加域
vadddomain test.com 123456
#如域存在:#############################################
vdeldomain test.com
# 添加用户
vadduser kevin@test.com 123456

# 设置邮箱容量达到90%的警告信息
vi /home/vpopmail/domains/.quotawarn.msg
----------------------------
From: 邮箱管理员
Reply-To: postmaster@test.com
To: 邮箱用户
Subject: 邮箱空间警告
Mime-Version: 1.0
Content-Type: text/html; charset=gb2312
Content-Transfer-Encoding: base64
您的邮箱空间已经达到90%.如果想继续使用,请删除一些信件.
如果需要帮助,请联系邮箱管理员:
Email : postmaster@test.com
----------------------------

# 设置邮箱已满的警告信息
echo "邮件被拒绝,用户的邮箱空间已满." > /home/vpopmail/domains/.over-quota.msg

#启动脚本:
cp /home/pkg/toaster-scripts-0.8/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/qmail-toaster-0.8.1.patch.bz2 | patch -p0
make clean
make
qmailctl stop
make setup check
chown -R vpopmail:vchkpw /var/qmail/spam

#创建SSL Key
make cert

#按提示输入公司信息
----------------------------
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:BJ
Locality Name (eg, city) [Newbury]:BJ
Organization Name (eg, company) [My Company Ltd]:a8.com
Organizational Unit Name (eg, section) []:a8.com
Common Name (eg, your name or your server's hostname) []:test.com
Email Address []ostmaster@test.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-pop3d和qmail-pop3ds
ln -s /var/qmail/supervise/qmail-pop3d /service
ln -s /var/qmail/supervise/qmail-pop3ds /service
#此时,用netstat -an就可看到25/110端口已经处于监听状态

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

#安装iGenus
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

#修改
ServerName mail.test.com
User vpopmail
Group vchkpw
NameVirtualHost *:80 //把*换成你的ip

#添加
AddDefaultCharset GB2312 //使默认页面为中文

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

DirectoryIndex index.php index.htm index.html

<VirtualHost *:80> //把*换成你的ip
ServerName mail.test.com
DocumentRoot /var/www/html/
ErrorLog /dev/null
CustomLog /dev/null common
</VirtualHost>

#重启apache
/etc/httpd/bin/apachectl restart

#修改config_inc.php文件
vi /var/www/html/config/config_inc.php
---------------------------------
$CFG_BASEPATH = "/var/www/html/"; \\改成你安装的目录
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'root'; \\vpopmail访问mysql的帐号
$CFG_MYSQL_PASS = '123456'; \\vpopmail访问mysql的密码
$CFG_MYSQL_DB = 'vpopmail'; \\数据库
$CFG_TEMP = "/tmp/temp"; \\删除$CFG_BASEPATH,并修改路径
---------------------------------
#保存退出

#重新编制Mysql数据库表格

#删除之前创建的域名
vdeldomain test.com

#编辑数据库:
mysql -uroot -p123456
use vpopmail;
drop table lastauth;
drop table vpopmail;
quit;

#导入前编辑iGENUS.sql
vi /var/www/html/docs/iGENUS.sql
-------------------------
# 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 -p123456 --database=vpopmail </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
-------------------------
chmod 777 /var/lib/php/session/ -R

#添加新域名和新用户。
vadddomain test.com 123456
vadduser kevin@test.com 123456

#最后打开浏览器,输入http://mail.test.com/,就可以访...��邮局了。

#安装iGenus_Admin,一个基于Web的vpopmail域和帐号管理工具。
cd /home/pkg
tar -xzvf ../igenus_admin_0.1.tgz -C /var/www/html/

#设置
vi /var/www/html/admin/includes/config_inc.php
--------------------------------
$CFG_VPOPMAIL_HOST = "localhost";
$CFG_VPOPMAIL_USER = "root"; \\改为你的帐号
$CFG_VPOPMAIL_PASS = "123456"; \\改为你的密码
$CFG_VPOPMAIL_PATH = "/home/vpopmail"; \\改为你的vpopmail安装目录 
--------------------------------
#保存退出

touch /etc/syspasswd.dat
chown -R vpopmail.vchkpw /var/www/html/
chmod -R 755 /var/www/html/

#解决出现不能执行查询(query): SELECT * FROM admin ORDER BY id ASC LIMIT -20, 20,修改
vi /var/www/html/admin/sys/index.php
--------------------------------
$start_row = ($get_page - 1)*$CFG_NUMOFPAGE;
修改成
if ($get_page == 0) {
$start_row = $get_page*$CFG_NUMOFPAGE;
}
else{
$start_row = ($get_page - 1)*$CFG_NUMOFPAGE;
}
--------------------------------
#保存退出

#登录设置页面,用户:Admin密码Admin来登录.注意A要大写..这个管理帐号密码登录后可以改的
http://mail.test.com/admin/sys/

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

#安装autorespond
cd /home/pkg
tar zxf ../autorespond-2.0.5.tar.gz
cd autorespond-2.0.5/
make
make install

#安装Clamav

#添加所需的组和用户
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

#安装 SpamAssassin

# 安装Time-HiRes perl模块
cd /var/src
# 注意: 如果你是第一次运行CPAN,你将会被问一系列的问题.
# 大部分问题默认就行了.
perl -MCPAN -e'shell'
cpan> install Time::HiRes
cpan> exit

# 安装SpamAssassin
cd /home/pkg
tar -zxf ../Mail-SpamAssassin-3.1.0.tar.gz
cd Mail-SpamAssassin-3.1.0
perl Makefile.PL
make
make install

#修改起动脚本使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的过滤模板在/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

#添加SpamAssasin服务启动必须的用户
useradd spamd

#启动SpamAssassin
service spamassassin start

#定期自动更新中文反垃圾邮件规则
crontab –e
#加入
0 0 1 * * wget -N -P /usr/share/spamassassin http://www.ccert.edu.cn/spam/sa/Chin...d/spamassassin restart;/etc/init.d/spamassassin restart;

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

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

#查看调试信息
spamassassin --lint –D

#进行一个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文件中则没有.

#安装prce.h(安装maildrop需要)
cd /home/pkg
tar zxf ../ pcre-6.3.tar.gz
cd pcre-6.3/
./configure
make
make install

#安装Maildrop
cd /home/pkg
tar jxf ../ maildrop-2.0.2.tar.bz2
cd maildrop-2.0.2/
./configure
make
make install-strip
make install-man

#使用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
#先安装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

OK了,到此qmail的主要模块安装完毕
回复 支持 反对

使用道具 举报

发表于 2006-3-20 10:50:00 | 显示全部楼层
Post by flyincat
小弟不才,请参考下面eddie_we朋友的帖子内容,那个是原创!


我的也是转的,我也没(材)。。。。。。木头都用来生火了
回复 支持 反对

使用道具 举报

发表于 2006-3-20 11:09:30 | 显示全部楼层
那我就再说明一下
如果安装了maildrop那就没必要再安装mail-scanner了
因为它们俩都是调用spamassassin来分析邮件的
当然如果你想的话
也可以调用clamav来检测邮件病毒
所以它们只要装基中一个就行了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-22 10:16:11 | 显示全部楼层
Post by eddie_we
不过却是自己经过实践总结的,不过不能怪我们看的不仔细,因为都似曾相识。
原文如下,帮你补回来。不要太介意




其实我也是新手,只不过想把我找到的文档通过我的实践,完善已有文档,进一步帮助大家能够成功的安装配置上mail服务器。

首先我没说是我原创,我现在也确实没有原创什么文章的能力。不过我好心贴来给大家共享,新手可以学习,老手看到错误可以纠正,我本着这样的想法和态度贴上来的。却遭到这样的待遇。。。

你也别介意,只是觉得有点心凉。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-22 10:20:12 | 显示全部楼层
Post by vyouzhi
那我就再说明一下
如果安装了maildrop那就没必要再安装mail-scanner了
因为它们俩都是调用spamassassin来分析邮件的
当然如果你想的话
也可以调用clamav来检测邮件病毒
所以它们只要装基中一个就行了


我承认,你是很nb

不过你要知道,我刚接触邮件这个玩意不到一个星期,我找到那些文档,按照文档实际安装测试,然后纠错,完善。

实话说,我确实不是很了解整个架构。所以我刚开始能做的,就只有将已有文档里的错误纠正,尽量让新手们安装邮件服务器的时候少出错,能顺利一些。

您提出的意见我收下了,还是表示感谢!我会去研究琢磨的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-23 10:12:40 | 显示全部楼层
Post by vyouzhi
那我就再说明一下
如果安装了maildrop那就没必要再安装mail-scanner了
因为它们俩都是调用spamassassin来分析邮件的
当然如果你想的话
也可以调用clamav来检测邮件病毒
所以它们只要装基中一个就行了


很不幸,经过我一天的研究,恐怕你的这些话有失偏颇吧。
maildrop和qmail-scanner并不冲突。
调用大麻兄的一段话
原文链接http://bbs.igenus.org/phpBB2/vie ... der=asc&start=0

--------------------------------------------------------------------------------------------------------
“qmail-scanner 是一个非常不错的软件包, 可支持丰富的外部第三方病毒扫描软件, 例如, 商业版的 H+BEDV's antivir scanner, 开源版本的clamAV 及 Spam Assassin Daemon 等等。优点是配置灵活, 适应性强, 邮件在进入 queue 队列前即被扫描. 缺点是该软件完全用 perl 语言开发, 存在效率和系统开销大的问题, 这个缺点在用户量和邮件量时更加明显.

  qmail-scanner 调用 SA 的方式是通过 sub-spamassassin.pl 来完成, 实际上也就是调用 spamc, 将其输出内容截获分析其中 X-Spam-Status: 等 header 标记, 然后重新写原邮件头并交给 qmail-queue 进入邮件队列. 邮件是重写邮件头, 因此, SA 的有些配置对于 qmail-scanner 来实际上是无效的, 例如 report_safe 等等. 因为 qmail-scanner 不理会这些改写. 下面是 qmail-scanner 的这部分代码:

代码:
========== cut from sub-spamassassin.pl ==========
open(SA,"<$scandir/$wmaildir/new/$file_id.spamc")||&error_condition("cannot open for read $scandir/$wmaildir/new/$file_id.spamc - $!");
  while (<SA>) {
    if ($sa_fast) {
      chomp;
      ($sa_score,$sa_max)=split(/\//,$_,2);
      $sa_tag++;
      last;
    } else {
      #X-Spam-Status: No, hits=2.8 required=5.0
      if (/^X-Spam-Status: (Yes|No), (hits|score)=(-?[\d\.]*) required=([\d\.]*)/) {
   $sa_tag++;
   $sa_status=1 if ($1 eq "Yes");
   $sa_score=$3;$sa_max=$4;
      }
    }
  }
  close SA ;
========== end of cut =============================


  另外, 邮件用户通过客户端发送的邮件也会通通经过这一层扫描(当然也可以通过改写 qmail-smtpd 来避免), 不仅带来不必要的系统开销, 如果邮件附件多或者大还会造成用户发送邮件超时的现象. 由于 qmail-scanner 对每一封邮件都要进行扫描, 因此其系统开销可想而知, 并且 qmail 或 vpopmail 的最终用户无权参与决定该用户的邮件是否扫描. 因此, 笔者在试用一段时间该方案后, 不得不放弃在 qmail-scanner 调用 SA 的方案, 只用其来调用病毒过滤. 前一段时间在 bbs.chinaunix.net 有人讨论过究竟是在 qmail-scanner 调用 SA 好? 还是在本地投递 local deliver 中调用 SA 好? 为此很多网友争论不休. 其实二者优缺点是明显的, 这正是本文的用意. ”
--------------------------------------------------------------------------------------------------------

从这段话我们可以知道,qmail-scanner确实也可以调用SA,但是最理想的方案应该是让maildrop来调用SA实现垃圾邮件过滤,而用qmail-scanner来调用Clamav来实现病毒邮件防范。

也就是说,安装maildrop和qmail-scanner并不冲突
回复 支持 反对

使用道具 举报

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

本版积分规则

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