王朝网络
分享
 
 
 

在Linux下安装邮件服务器Qmail(二)

王朝厨房·作者佚名  2007-01-05
宽屏版  字体: |||超大  

# 安装SpamAssassin

groupadd spamd

useradd -g spamd -s /bin/false spamd

cd /home/pkg

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 -H"

修改其中一行为上所示。

chmod 755 /etc/rc.d/init.d/spamd

chkconfig --add spamd

spamassassin的过滤模板在/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

# 进行一个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

安装软件

tar -xzvf clamav-0.80.tar.gz

cd clamav-0.80

./configure

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 \去掉前面的#

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

vi /usr/local/etc/clam.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 \去掉前面的#

升级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 clamav.clamav -R /var/log/clamav/

touch /var/log/freshclam.log

chmod 644 /var/log/freshclam.log

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

创建clamav启动脚本

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

#!/bin/sh

#

# Startup / shutdown script for Clam Antivirus

case "" 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 ` { 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

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

qmail-scanner&qms-analog

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

cd /home/pkg

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 /home/pkg/qmail-scanner-1.22/

cp qms-config-script /home/pkg/qmail-scanner-1.22/

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

cd /home/pkg/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 [ "" != "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 yes --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 /home/pkg/qmail-scanner-1.23/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-atachments.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

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

MailDrop and TNEF reader

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

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

# 安装 maildrop

cd /home/pkg

tar -jzvf maildrop-1.7.0.tar.bz2

cd maildrop-1.7.0

./configure

make

make install-strip

make install-man

# 安装 the tnef

cd /home/pkg

tar -xzvf tnef-1.2.3.1.tar.gz

cd nef-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

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

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

QmailAnalog & qlogtools

Qmailanalog针对qmail的日志进行一些最基本的分析,并将结果发送到你指定的位置。在我的方案中,设置qmailanalog每天晚上运行,并将结果发送给管理员。在使用qmailanalog时,我们还将会用到 qlogtools软件包。qlogtools提供一系列分析qmail日志的工具,这些工具将文件中诲涩难懂的日志转换成便於我们阅读和能够理解的报告。当安装完成Qmailstats和Qlogtools后,我将会创建一个脚本让它每天晚上运行,并将报告发送到管理员邮箱。这个脚本也可用到我们先前安装的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输出的信息并产生报告。

红色部份改成你的域名。

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 '' | 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

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

保存并退出。

下一步是告诉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分钟运行一次

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

MRTG

安装 MRTG

多路由器通信监视器(MRTG)是在网络链路上监控通信负载的一件工具。 MRTG 产生包含图表的HTML网页,它可以将系统中的通信情况实时的显示在页面上。 我们可以在我们的系统上使用它来监控电子邮件和spam情况。

# 安装 zlib (压缩的图形文件包)

cd /home/pkg

tar -xzf zlib-1.1.4.tar.gz

mv zlib-1.1.4/ zlib

cd zlib

./configure

make

cd ..

# 安装 libpng (PNG图片格式包)

tar -xzf libpng-1.2.7.tar.gz

mv libpng-1.2.7/ libpng

cd libpng

make -f scripts/makefile.std CC=gcc ZLIBLIB=../zlib ZLIBINC=../zlib

rm *.so.* *.so

cd ..

# 安装 gd (制图软件包)

tar -xzf gd-1.8.3.tar.gz

mv gd-1.8.3/ gd

cd gd

make INCLUDEDIRS="-I. -I../zlib -I../libpng" LIBDIRS="-L../zlib -L. -L../libpng" LIBS="-lgd -lpng -lz -lm"

make install

cd ..

# 编译 MRTG

tar -xzf mrtg-2.10.15.tar.gz

cd mrtg-2.10.15/

./configure --prefix=/usr/local/mrtg-2 –-with-gd=/home/pkg/gd/ --with-z=/home/pkg/zlib/ --with-png=/home/pkg/libpng/

make

make install

所有MRTG需要的软件包都安装在了 /usr/local/mrtg-2 目录下. 你现在可以安全的删除上面编译的源码. 但是你最好留着,以便你编译下一个版本的MRTG时所需.

通过安装inter7的qmailmrtg ,我们将在我们的系统上安装MRTG

# 编译 qmailmrtg

cd /home/pkg

tar -xzf qmailmrtg7-4.0.tar.gz

cd qmailmrtg7-4.0

make

make install

mkdir /var/www/html/qmailmrtg

cp qmail.mrtg.cfg index.html /var/www/html/qmailmrtg

cd /usr/local/apache/htdocs/qmailmrtg/

修改 qmail.mrtg.cfg 和 index.html文件, 将所有出现FQDN 的地方都改成你的完整域名(例如: test.com). 如果你的HTTP MRTG目录并不是默认的 (例如: 你并没有把 /var/www/html/作为你的web根目录), 则必须在/var/www/html/qmailmrtg/qmail.mrtg.cfg 文件中修改WorkDir变量为正确的路径. 如果你不需要记录某项服务, 你可以在所不需要记录的服务每一行的前面加一个# 来注释掉它,并删除index.html中对应的服务项目。

你可以修改 pop3和smtp所在的行, 设置MaxBytes参数来重写tcpserver中-cX所在行.

你还可以修改concurrency来重写concurrencyremote或concurrencylocal 的值. 如果这些文件在/var/qmail/control 目录下并不存在,则qmail默认的值为20.

下面是我们的最后一步,将下面一段添加到crontab中, 以使我们能每五分钟升级一次MRTG数据. 运行如下命令:

crontab -e

添加下面一段 (使MRTG每五分钟运行一次) 然后退出crontab:

*/5 * * * * /usr/local/mrtg-2/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg 2>&1 > /dev/null

现在运行MRTG三次来安装它. 你将会收到3次警告消息. 之后,你将不会再收到警告了.

env LANG=C /usr/local/mrtg-2/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg

现在应该安装好了. 为了能显示些信息,我们等待15分钟的日志记录. 你可以通过下面的地址来检查图形监控情况:

http://your.host.name/qmailmrtg/

查看它们的图形监控情况!

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

测试

测试igenus

http://domain.com/

测试qmailadmin

http://domain.com/cgi-bin/qmailadmin

测试vQadmin

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

测试SMTP认证

# telnet localhost 25

Trying 127.0.0.1...

Connected to mail.domain.com (127.0.0.1).

Escape character is '^]'.

220 mail. domain.com ESMTP

EHLO hostname

250-mail.domain.com

250-AUTH LOGIN CRAM-MD5 PLAIN

250-AUTH=LOGIN CRAM-MD5 PLAIN

250-PIPELINING

250 8BITMIME

测试POP3

# telnet localhost 110

Trying 127.0.0.1...

Connected to localhost.localdomain.

Escape character is '^]'.

+OK Hello there.

user xy.wang@domain.com

+OK Password required.

pass [password]

+OK logged in.

quit

+OK Bye-bye.

Connection closed by foreign host.

测试IMAP

# telnet localhost 143

Trying 127.0.0.1...

Connected to localhost.localdomain(127.0.0.1).

Escape character is '^]'.

* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2004 Double Precision, Inc. See COPYING for distribution information.

a001 login user@test.com [password]

a001 OK LOGIN Ok.

a001 logout

* BYE Courier-IMAP server shutting down

a001 OK LOGOUT completed

Connection closed by foreign host.

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

邮件系统维护:

邮件系统相关日志

/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 xuki@domain.com 10500000s ---只把xuki@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: domain datafile"

exit 1

fi

domain=

datafile=

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

有选择地清理不需要的Mail Queue

1、处理队列中的邮件:

如想在队列中的邮件马上传递,可以

# kill -HUP qmail-send

要删除队列中的邮件

1) 停止QMAIL

2) mv /var/qmail/queue/lock /var/qmail/;find /var/qmail/queue/ -type f -exec rm {} \; ;mv /var/qmail/lock /var/qmail/queue/

3) 重启QMAIL.

队列中的邮件包含在以下目录中 /var/qmail/queue//hash/#number

2、在邮件队列中快速删除从一个地方发过来但又不存在的邮件 设bad.jite.com是这个域。可以键入以下命令

# echo # > ~alias/.qmail-baddomain-default

# echo bad.jite.com:alias-baddomain>> /var/qmail/control/virtualdomains

# echo bad.jite.com:127.0.0.1 >> /var/qmail/control/smtproutes

然后运行/var/qmail/bin/qmail-tcpok,给qmail-send 一个HUP信号

3、删除队列中的大量广告信息

先停止QMAIL.

1) 停止qmail, qmail-smtpd

2) 在以下默认目录下 /var/qmail/queue/mess

find /var/qmail/queue/mess -type f -exec grep "^Subject:dss" {} \; -print -exec rm {} \;

3) 运行queue-fix清除相关文件,

4) 重启qmail.

使用sh备份qmail+mysql数据到指定的ftp地址的方法

备份vpopmail的domains目录、qmail的control目录和mysql的var数据存放目录,使用crontab定时进行操作。下面是脚本文件,具体的目录视自己的系统更改:

mkdir /var/qmailbakup

cd /var/qmailbakup

touch qmailbakup.sh

chmod 755 qmailbakup .sh

vi qmailbakup.sh

[code:1:d480555598]

#!/bin/sh

DATE=`date +%Y-%m-%d-%H`

cd /var/qmailbakup/

tar cvzf domains.$DATE.tar.gz /home/vpopmail/domains

tar cvzf control.$DATE.tar.gz /var/qmail/control

tar cvzf mysql.$DATE.tar.gz /usr/local/mysql/var

ftp -n 192.168.0.21 << ! //你的ftp服务器的地址

user qmail qmailbakup //ftp用户名和密码,注意要有put权限

binary

put domains.$DATE.tar.gz

put control.$DATE.tar.gz

put mysql.$DATE.tar.gz

bye

!

rm -f domains.$DATE.tar.gz control.$DATE.tar.gz mysql.$DATE.tar.gz //删除本机产生的文件,如果你想在本服务器也保存一份备份,去掉该项即可。

[/code:1:d480555598]

使用crontab定时执行:

vi /etc/crontab

00 20 * * 0-6 /var/qmailbakup/qmailbakup.sh

这样每天晚上8:00执行改备份程序。

给新浪发信的解决办法

qmail

echo "我的邮件服务器的真实域名(A记录)" > /var/qmail/control/helohost

临时限制一个用户的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

将一个系统的Qmail用户完整地转移到另一个系统

A:

a.cdb配置的?那么请把/home/vpopmail/domains这个文件夹备份好就可以了。用户和密码文件,还有用户信件都在这个目录下。

还应该备份/var/qmail/control下的相关配置文件。

b.如果是以MYSQL数据库方式来存储用户认证信息的

只需要备份

~vpopmail/domain下的所有邮件

/var/qmail/control的配置文件

MYSQL数据库目录下的vpopmail库目录。一般是/var/lib/mysql(RPM)、/usr/local/mysql/data、/usr/local/mysql/var下面。

把一邮件域的名字比如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。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有