歡迎您光臨本站 註冊首頁

Spamgurad在公司郵件伺服器防止spam中的應用

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  Spamgurad在公司郵件伺服器防止spam中的應用
張群力 (2003/5/21)
1, 什麼是spamgurad
目前最令郵件伺服器管理員頭痛的事情就要數垃圾郵件了,為此,EnderUnix團隊寫了一個小軟體,它能夠自動的監控你的郵件伺服器日誌文件,發現垃圾郵件製造者的活動,從而把垃圾郵件堵在外面不讓其進入伺服器,目前,spamguard支持qmail,Sendmail和postfix
2, 工作原理
spmaGurad 定期(多少間隔掃描一次是由自己定義的)掃描你的郵件伺服器的日誌文件,例如,5分鐘一次,我們都知道,每當有人連入我們的伺服器進行發信時,在伺服器的郵件日誌文件中就會有類似這樣的紀錄
@aae1ceb3c84 tcpserver: status: 1/20
@ab924716dfc tcpserver: status: 2/20
@ab92473d344 tcpserver: pid 26223 from 211.97.241.xxx
@ab926a9d99c tcpserver: ok 26223 :210.xxx.xx.xxx:25 :211.97.241.xxx::2568
@aba066536f4 tcpserver: end 26223 status 0
@aba06655a1c tcpserver: status: 1/20
@aba2af1280c tcpserver: end 25902 status 0
@aba2af1474c tcpserver: status: 0/20
@abb04c5d704 tcpserver: status: 1/20
@abb04cb498c tcpserver: pid 26241 from 211.157.217.xxx
@ad219ee05fc tcpserver: status: 2/20
@ad219f05ba4 tcpserver: pid 26439 from 212.3.3.xxx
@ad30ee81bd4 tcpserver: status: 3/20
@ad30eed309c tcpserver: pid 26508 from 212.31.116.xxx
@ad41fff98d4tcpserver:ok 26508 :210.xxx.xxx.xxx:25 :212.31.116.xxx::33361
@ad506306f3ctcpserver:ok 26241 :210.xxx.xxx.xxx:25 :211.157.217.xxx::4305
@ade38852f54 tcpserver: end 26508 status 256
spamGuard 檢測log文件,如果匹配「from」的地址(亦即發信人的地址)超出你定義的值,spamGuard將添加這個郵件地址到$BADMAILER文件(如sendmail中的/etc/access,qmail中的/var/qmail/control/badmailfrom)中。從而,以後從這些用戶發過來的郵件都將被您的MTA K掉
呵呵,如果我自己或者我伺服器上的客戶想大量發郵件是怎麼辦呢,spamGuard同樣為你準備好了,有一個spam-ignore.txt的配置文件可以讓你做到這一點
3, 安裝
1) go to http://www.enderunix.org/spamguard/ 下載最新穩定版,目前為v1.6
% tar xzvf spamguard-VERSION.tar.gz
% cd spamguard-VERSION
2)% make
3)% su root -c 'make install'
生成的可執行文件安裝到/usr/local/bin.一個示例的spamguard.conf.sample文件被安裝到/usr/local/etc下
% cp spamguard.conf.sample spamgurad.conf
4)接下來要進行的工作時對spamguard.conf文件進行配置(以qmail為例)
例如,以下是我的配置文件
logtype = "qmail" ###伺服器類型

logfile = "/var/log/qmail/spamgurad.log" ##你的伺服器產生的日誌文件的位\置,以供spamguard讀取
##logfile = "/var/log/maillog" ## ßsendmail

ignorefile = "/usr/local/etc/spam-ignore.txt" #文章前面提到的需要spamguard\忽略的郵件地址存放文件,格式可參照其提供的\spam-ignore.txt.sample文件


badmailfile = "/var/qmail/control/badmailfrom" ###你的郵件伺服器揪出來的\黑名單將放入此文件中\
如果是sendmail,將是
/etc/mail/access;


sysadmin = "my-name@mydomain.com" #spamguard警告的發送人,設為郵件系統管理員即可


hostname = "badusers.spam.org" ##如果垃圾郵件發送者的主機名沒有找到,則自動添加為你的設置


mail_command = "/bin/mail" ###本地郵件程序,以便使用此命令給上面定義的sysadmin發信



###makemap_command = "makemap hash /etc/mail/access
statfile = "/usr/local/etc/spamguard.stat" ##內部使用,不用理會之


wcnt = 10 ##警告界限,並不放入$BADMAILER

bcnt = 20 ##阻止界限

pcnt = 200 ## 在ignorefile中被忽略的郵件地址極限數目.


而後,編輯/etc/crontab文件,讓spamguard每隔5分鐘(請根據情況自行定義)運行一次檢查:
添加以下一行:

0-59/5 * * * * /usr/local/bin/spamguard
可能大家會擔心spamgurad處理log文件的速度和對系統的載荷,其實,spamGuard 能夠在10秒內處理85M大小的log文件.
但由於log文件總是越來越大的,所以,用戶可運行以下腳本,並將其放置於/etc/cron.weekly中每周運行一次:
% chmod 755 /etc/cron.weekly/log-rotate.sh
% cat /etc/cron.weekly/log-rotate.sh
#! /bin/sh
#
#use log-rotate.sh script every week by using crond
#define LOGFILE "/var/log/qmail/spamguard.log"
#
LOGDIR=/var/log/qmail
LOG=spamguard.log

if test -d $LOGDIR
then
cd $LOGDIR
if test -s $LOG
then
/etc/rc.d/init.d/qmail stop
kill `ps -ef | grep qmail- | grep -v grep | awk '{print $2; }'`
##*可能你的qmail的停止命令與此不一樣,請調整*##
test -f $LOG.6 && mv $LOG.6 $LOG.7
test -f $LOG.5 && mv $LOG.5 $LOG.6
test -f $LOG.4 && mv $LOG.4 $LOG.5
test -f $LOG.3 && mv $LOG.3 $LOG.4
test -f $LOG.2 && mv $LOG.2 $LOG.3
test -f $LOG.1 && mv $LOG.1 $LOG.2
test -f $LOG.0 && mv $LOG.0 $LOG.1
mv $LOG $LOG.0
touch $LOG
/etc/rc.d/init.d/qmail start
fi
fi

如此,每周重新啟動qmail一次,備份日誌文件,併產生新的一個日誌文件,以避免日誌文件過大引起的速度和效率問題
註:初初使用,不妥之處,請多多指正。 quncequnli@163.net
詳情請參看 http://www.enderunix.org/spamguard/



文章選項:


[火星人 ] Spamgurad在公司郵件伺服器防止spam中的應用已經有394次圍觀

http://coctec.com/docs/net/show-post-68423.html