Linux防垃圾郵件軟件SpamAssassin:配置與啟動
就像大多數(shù)Linux應(yīng)用程序一樣,SpamAssassin需要對配置文件的編輯。這個配置文件的路徑是:/etc/mail/spamassassin/local.cf。
SpamAssassin在許多位置可查找配置文件,詳細信息請參閱SpamAssassin手冊。最容易使用的配置文件是/etc/mail/spamassassin/local.cf,可以編輯這個文件來全局配置SpamAssassin。用戶可以覆蓋這些全局選項并在~/.spamassassin/user_prefs文件中添加自己的選項。
例如,可以配置SpamAssassin來重寫評級為垃圾郵件的郵件主題行。配置文件中的rewrite_header關(guān)鍵字可控制這種行為。跟隨這個關(guān)鍵字的Subject字告訴SpamAssassin重寫主題行。從以下行刪除#就可以啟用這種行為:
# rewrite_header Subject *****SPAM*****
required_score關(guān)鍵字指定:SpamAssassin認為它是垃圾郵件之前一封電子郵件必須獲得的最低得分。默認值是5.00。設(shè)置此關(guān)鍵字到一個更高的數(shù)值,就能使SpamAssassin把較少的電子郵件標記為垃圾郵件。
required_score 5.00
有時標記為垃圾郵件地址的郵件并不是垃圾郵件,或者來自該地址的郵件并不應(yīng)該標記為垃圾郵件。使用whitelist_from關(guān)鍵字可指定不應(yīng)該被視為垃圾郵件的地址,blacklist_from用于指定應(yīng)始終標記為垃圾郵件的地址:
whitelist_from sams@example.com
blacklist_from *@spammer.net
可以在whitelist_from和blacklist_from行上指定多個地址,并用空格隔開。每個地址可以包含通配符。使用whitelist_from *@example.com將從example.com域發(fā)送電子郵件的每個人列入白名單??梢允褂枚鄠€whitelist_from和blacklist_from行。
下面給出了一個配置該文件的示例:
# 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
其中,主要包括如下幾個重點項需要進行設(shè)置:
required_score(評價閾值):設(shè)定該閾值通常情況下需要根據(jù)管理員的長期經(jīng)驗。閾值越低,就會有更少的郵件通過,因而將正常郵件誤報為垃圾郵件的概率越高;閾值越高,則有可能將更多的垃圾郵件漏報為正常郵件,通常的默認值為5。
Rewrite header Subjects(重寫消息主題):通過這個選項,用戶可以配置SpamAssassin用你選擇的任何對象來編輯電子郵件的主題行。默認值設(shè)置為:[SPAM]。
bayes_auto_learn(使用自動學(xué)習(xí)):SpamAssassin可以通過分析具有一定評價的消息,去自動化地整理其Bayes(貝葉斯)數(shù)據(jù)庫,這個評價強烈地顯示了消息是垃圾還是非垃圾消息。
Enable or disable network checks(使用網(wǎng)絡(luò)檢查和檢驗):選擇是否使用將消息檢查和(Checksum)與已知的垃圾郵件相比較的服務(wù):這些服務(wù)有:Vipul's Razor 2.x、 DCC、 Pyzor等,不過只有當每種服務(wù)的客戶端軟件安裝時這些服務(wù)才能正常工作。(即通過use_razor2, use_dcc, use_pyzor進行)。另外,該選項中還包括了Enable RBL Checks(啟用RBL檢查),即選擇SpamAssassin是否應(yīng)使用RBLS(DNS黑名單)。這有助于檢測難于檢測的垃圾信息,但需要消耗一些時間、網(wǎng)絡(luò)帶寬以及一個可用的DNS服務(wù)器。
Languages(語言):最后兩種配置是關(guān)于語言的,第一個是哪些語言應(yīng)檢查,默認選項是檢查所有的語言,建議不要修改。
在成功配置好SpamAssassin后,需要啟動SpamAssassin應(yīng)用程序。要想運行SpamAssassin,必須以根用戶身份運行如下的命令:
#/etc/rc.d/init.d/spamassassin start
配置與sendmail協(xié)同工作
現(xiàn)在SpamAssassin已經(jīng)啟動并正常運行,現(xiàn)在需要設(shè)置它與郵件傳輸代理(Mail Delivery Agent)一起工作。本節(jié)介紹它與Sendmail協(xié)同工作的設(shè)置,因為Sendmail是在Linux環(huán)境中應(yīng)用最廣泛的郵件傳輸代理。
用戶需要編輯/etc/mail/spamassassin/spamc.cf文件,并增加如下內(nèi)容:
:0fw
/usr/bin/spamc
現(xiàn)在Sendmail被設(shè)置為使用SpamAssassin來評價和過濾進入的垃圾郵件。
運行SpamAssassin
隨著spamd的運行,向spamc發(fā)送一個字符串可以查看其工作原理:
$ 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)
它首先會顯示Yes,即認定該郵件是垃圾郵件。SpamAssassin使用評級系統(tǒng),給一封電子郵件分配一個匹配命中數(shù)。如果該電子郵件收到的命中數(shù)超過所需的數(shù)量(默認為5.0),SpamAssassin則把它標記為垃圾郵件。字符串失敗的原因是多方面的,都會在此狀態(tài)行上列舉。
以下列表是由SpamAssassin處理的一封真實垃圾郵件。它收到了24.5個命中,這幾乎肯定是垃圾郵件。
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ā)送者都會借助某些域和用戶會發(fā)送垃圾信息。幸運的是,SpamAssassin有一個對付已知垃圾郵件制造者的手段。設(shè)置黑名單是很簡單的事情。用戶可以向配置文件etc/mail/spamassain/local.cf添加黑名單。黑名單的書寫方式如下所示:
blacklist_from sample_email@sampledomain.com
blacklist_from *@sampledomain.com
上面的內(nèi)容相當清楚地向讀者展示了如何配置黑名單。用戶既可以配置具體的電子郵件地址(如sample_email@sampledomain.com),也可以配置整個域(如*@sampledomain.com)。另外,為了使用最新的網(wǎng)絡(luò)上共享的垃圾郵件過濾信息,還可以從http://www.sa-blacklist.stearns.org/sa-blacklist/sa-blacklist.current下載最新的黑名單。不過,這個列表相當龐大,且有可能不會非常適合用戶的需要,因此在下載此列表并添加到用戶的黑名單時還需要進行細致的過濾和篩選。