Linux防垃圾郵件軟件SpamAssassin:配置與啟動(dòng)
就像大多數(shù)Linux應(yīng)用程序一樣,SpamAssassin需要對(duì)配置文件的編輯。這個(gè)配置文件的路徑是:/etc/mail/spamassassin/local.cf。
SpamAssassin在許多位置可查找配置文件,詳細(xì)信息請(qǐng)參閱SpamAssassin手冊(cè)。最容易使用的配置文件是/etc/mail/spamassassin/local.cf,可以編輯這個(gè)文件來全局配置SpamAssassin。用戶可以覆蓋這些全局選項(xiàng)并在~/.spamassassin/user_prefs文件中添加自己的選項(xiàng)。
例如,可以配置SpamAssassin來重寫評(píng)級(jí)為垃圾郵件的郵件主題行。配置文件中的rewrite_header關(guān)鍵字可控制這種行為。跟隨這個(gè)關(guān)鍵字的Subject字告訴SpamAssassin重寫主題行。從以下行刪除#就可以啟用這種行為:
# rewrite_header Subject *****SPAM*****
required_score關(guān)鍵字指定:SpamAssassin認(rèn)為它是垃圾郵件之前一封電子郵件必須獲得的最低得分。默認(rèn)值是5.00。設(shè)置此關(guān)鍵字到一個(gè)更高的數(shù)值,就能使SpamAssassin把較少的電子郵件標(biāo)記為垃圾郵件。
required_score 5.00
有時(shí)標(biāo)記為垃圾郵件地址的郵件并不是垃圾郵件,或者來自該地址的郵件并不應(yīng)該標(biāo)記為垃圾郵件。使用whitelist_from關(guān)鍵字可指定不應(yīng)該被視為垃圾郵件的地址,blacklist_from用于指定應(yīng)始終標(biāo)記為垃圾郵件的地址:
whitelist_from sams@example.com
blacklist_from *@spammer.net
可以在whitelist_from和blacklist_from行上指定多個(gè)地址,并用空格隔開。每個(gè)地址可以包含通配符。使用whitelist_from *@example.com將從example.com域發(fā)送電子郵件的每個(gè)人列入白名單??梢允褂枚鄠€(gè)whitelist_from和blacklist_from行。
下面給出了一個(gè)配置該文件的示例:
# How many hits before a message is considered spam.
required_score 7.5
# Change the subject of suspected spam
rewrite_header subject [SPAM]
# Encapsulate spam in an attachment (0=no, 1=yes, 2=safe)
report_safe 1
# Enable the Bayes system
use_bayes 1
# Enable Bayes auto-learning
bayes_auto_learn 1
# Enable or disable network checks
skip_rbl_checks 0
use_razor2 1
use_dcc 1
use_pyzor 1
# Mail using languages used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_languages all
# Mail using locales used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_locales all
其中,主要包括如下幾個(gè)重點(diǎn)項(xiàng)需要進(jìn)行設(shè)置:
required_score(評(píng)價(jià)閾值):設(shè)定該閾值通常情況下需要根據(jù)管理員的長(zhǎng)期經(jīng)驗(yàn)。閾值越低,就會(huì)有更少的郵件通過,因而將正常郵件誤報(bào)為垃圾郵件的概率越高;閾值越高,則有可能將更多的垃圾郵件漏報(bào)為正常郵件,通常的默認(rèn)值為5。
Rewrite header Subjects(重寫消息主題):通過這個(gè)選項(xiàng),用戶可以配置SpamAssassin用你選擇的任何對(duì)象來編輯電子郵件的主題行。默認(rèn)值設(shè)置為:[SPAM]。
bayes_auto_learn(使用自動(dòng)學(xué)習(xí)):SpamAssassin可以通過分析具有一定評(píng)價(jià)的消息,去自動(dòng)化地整理其Bayes(貝葉斯)數(shù)據(jù)庫(kù),這個(gè)評(píng)價(jià)強(qiáng)烈地顯示了消息是垃圾還是非垃圾消息。
Enable or disable network checks(使用網(wǎng)絡(luò)檢查和檢驗(yàn)):選擇是否使用將消息檢查和(Checksum)與已知的垃圾郵件相比較的服務(wù):這些服務(wù)有:Vipul's Razor 2.x、 DCC、 Pyzor等,不過只有當(dāng)每種服務(wù)的客戶端軟件安裝時(shí)這些服務(wù)才能正常工作。(即通過use_razor2, use_dcc, use_pyzor進(jìn)行)。另外,該選項(xiàng)中還包括了Enable RBL Checks(啟用RBL檢查),即選擇SpamAssassin是否應(yīng)使用RBLS(DNS黑名單)。這有助于檢測(cè)難于檢測(cè)的垃圾信息,但需要消耗一些時(shí)間、網(wǎng)絡(luò)帶寬以及一個(gè)可用的DNS服務(wù)器。
Languages(語(yǔ)言):最后兩種配置是關(guān)于語(yǔ)言的,第一個(gè)是哪些語(yǔ)言應(yīng)檢查,默認(rèn)選項(xiàng)是檢查所有的語(yǔ)言,建議不要修改。
在成功配置好SpamAssassin后,需要啟動(dòng)SpamAssassin應(yīng)用程序。要想運(yùn)行SpamAssassin,必須以根用戶身份運(yùn)行如下的命令:
#/etc/rc.d/init.d/spamassassin start
配置與sendmail協(xié)同工作
現(xiàn)在SpamAssassin已經(jīng)啟動(dòng)并正常運(yùn)行,現(xiàn)在需要設(shè)置它與郵件傳輸代理(Mail Delivery Agent)一起工作。本節(jié)介紹它與Sendmail協(xié)同工作的設(shè)置,因?yàn)镾endmail是在Linux環(huán)境中應(yīng)用最廣泛的郵件傳輸代理。
用戶需要編輯/etc/mail/spamassassin/spamc.cf文件,并增加如下內(nèi)容:
:0fw
/usr/bin/spamc
現(xiàn)在Sendmail被設(shè)置為使用SpamAssassin來評(píng)價(jià)和過濾進(jìn)入的垃圾郵件。
運(yùn)行SpamAssassin
隨著spamd的運(yùn)行,向spamc發(fā)送一個(gè)字符串可以查看其工作原理:
$ echo "hi there" | spamc
X-Spam-Checker-Version: SpamAssassin 3.3.2-r929478 (2010-03-31) on sobell.com
X-Spam-Flag: YES
X-Spam-Level: ******
X-Spam-Status: Yes, score=6.9 required=5.0 tests=EMPTY_MESSAGE,MISSING_DATE,
MISSING_HEADERS,MISSING_MID,MISSING_SUBJECT,NO_HEADERS_MESSAGE,NO_RECEIVED,
NO_RELAYS autolearn=no version=3.3.2-r929478
X-Spam-Report:
* -0.0 NO_RELAYS Informational: message was not relayed via SMTP
* 1.2 MISSING_HEADERS Missing To: header
* 0.1 MISSING_MID Missing Message-Id: header
* 1.8 MISSING_SUBJECT Missing Subject: header
* 2.3 EMPTY_MESSAGE Message appears to have no textual parts and no
* Subject: text
* -0.0 NO_RECEIVED Informational: message has no Received headers
* 1.4 MISSING_DATE Missing Date: header
* 0.0 NO_HEADERS_MESSAGE Message appears to be missing most RFC-822
* headers
hi there
Subject: [SPAM]
X-Spam-Prev-Subject: (nonexistent)
它首先會(huì)顯示Yes,即認(rèn)定該郵件是垃圾郵件。SpamAssassin使用評(píng)級(jí)系統(tǒng),給一封電子郵件分配一個(gè)匹配命中數(shù)。如果該電子郵件收到的命中數(shù)超過所需的數(shù)量(默認(rèn)為5.0),SpamAssassin則把它標(biāo)記為垃圾郵件。字符串失敗的原因是多方面的,都會(huì)在此狀態(tài)行上列舉。
以下列表是由SpamAssassin處理的一封真實(shí)垃圾郵件。它收到了24.5個(gè)命中,這幾乎肯定是垃圾郵件。
X-Spam-Status: Yes, hits=24.5 required=5.0
tests=DATE_IN_FUTURE_06_12,INVALID_DATE_TZ_ABSURD,
MSGID_OE_SPAM_4ZERO,MSGID_OUTLOOK_TIME,
MSGID_SPAMSIGN_ZEROES,RCVD_IN_DSBL,RCVD_IN_NJABL,
RCVD_IN_UNCONFIRMED_DSBL,REMOVE_PAGE,VACATION_SCAM,
X_NJABL_OPEN_PROXY
version=2.55
X-Spam-Level: ************************
X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp)
X-Spam-Report: This mail is probably spam. The original message has been attached
along with this report, so you can recognize or block similar unwanted
mail in future. See http://spamassassin.org/tag/ for more details.
Content preview: Paradise SEX Island Awaits! Tropical 1 week vacations
where anything goes! We have lots of WOMEN, SEX, ALCOHOL, ETC! Every
man's dream awaits on this island of pleasure. [...]
Content analysis details: (24.50 points, 5 required)
MSGID_SPAMSIGN_ZEROES (4.3 points) Message-Id generated by spam tool (zeroes variant)
INVALID_DATE_TZ_ABSURD (4.3 points) Invalid Date: header (timezone does not exist)
MSGID_OE_SPAM_4ZERO (3.5 points) Message-Id generated by spam tool (4-zeroes variant)
VACATION_SCAM (1.9 points) BODY: Vacation Offers
REMOVE_PAGE (0.3 points) URI: URL of page called "remove"
MSGID_OUTLOOK_TIME (4.4 points) Message-Id is fake (in Outlook Express format)
DATE_IN_FUTURE_06_12 (1.3 points) Date: is 6 to 12 hours after Received: date
RCVD_IN_NJABL (0.9 points) RBL: Received via a relay in dnsbl.njabl.org
[RBL check: found 94.99.190.200.dnsbl.njabl.org.]
RCVD_IN_UNCONFIRMED_DSBL (0.5 points) RBL: Received via a relay in unconfirmed.dsbl.org
[RBL check: found 94.99.190.200.unconfirmed.dsbl.org.]
X_NJABL_OPEN_PROXY (0.5 points) RBL: NJABL: sender is proxy/relay/formmail/spam-source
RCVD_IN_DSBL (2.6 points) RBL: Received via a relay in list.dsbl.org
[RBL check: found 211.157.63.200.list.dsbl.org.]
X-Spam-Flag: YES
Subject: [SPAM] re: statement
垃圾郵件黑名單
通常情況下,垃圾郵件發(fā)送者都會(huì)借助某些域和用戶會(huì)發(fā)送垃圾信息。幸運(yùn)的是,SpamAssassin有一個(gè)對(duì)付已知垃圾郵件制造者的手段。設(shè)置黑名單是很簡(jiǎn)單的事情。用戶可以向配置文件etc/mail/spamassain/local.cf添加黑名單。黑名單的書寫方式如下所示:
blacklist_from sample_email@sampledomain.com
blacklist_from *@sampledomain.com
上面的內(nèi)容相當(dāng)清楚地向讀者展示了如何配置黑名單。用戶既可以配置具體的電子郵件地址(如sample_email@sampledomain.com),也可以配置整個(gè)域(如*@sampledomain.com)。另外,為了使用最新的網(wǎng)絡(luò)上共享的垃圾郵件過濾信息,還可以從http://www.sa-blacklist.stearns.org/sa-blacklist/sa-blacklist.current下載最新的黑名單。不過,這個(gè)列表相當(dāng)龐大,且有可能不會(huì)非常適合用戶的需要,因此在下載此列表并添加到用戶的黑名單時(shí)還需要進(jìn)行細(xì)致的過濾和篩選。




















