# 進行一個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是這個域??梢枣I入以下命令
# 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限制附件大?。?br />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。