本文是關(guān)于控制垃圾郵件的 Lotus Domino 方法的系列文章的第 1 部分。您將了解如何使用 Configuration Settings 文檔、服務(wù)器郵件規(guī)則以及 Lotus Domino 6 及其更高版本中的入站 SMTP 命令和擴展來控制垃圾郵件。
在技術(shù)不斷變化的世界中,垃圾郵件數(shù)量的增長速度已超出了大多數(shù)電子郵件系統(tǒng)可以處理或控制的能力。在 2004 年,所有美國公司差不多要花九十萬美元來抗擊垃圾郵件。許多公司都曾致力于開發(fā)產(chǎn)品來識別和隔離可能的垃圾消息。最近的調(diào)查表明,所有電子郵件中,有 40% 以上被認為是垃圾郵件,平均每個電子郵件用戶每天收到 6 條垃圾消息。這還不算很糟糕,估計到 2007 年,垃圾郵件會增長到 63%。在 Spam Filter Review Web site 中可以找到這些統(tǒng)計數(shù)字和更多信息。
從 Lotus Domino 4 開始,Lotus 就一直在尋找阻止垃圾郵件和限制 Simple Mail Transfer Protocol (SMTP) 消息的方法。Lotus Domino 4 引入了多個 Notes.ini 參數(shù)來控制轉(zhuǎn)發(fā)、入站連接和發(fā)件人的域。Lotus Domino 5 引入了 Graphical User Interface (GUI),Domino 管理員可以在 Configuration Settings Document 的字段中列出值。這使 Domino 管理員可以更輕松地配置 SMTP,同時減少了 Notes 用戶的工作。
Lotus Domino 6 進行了很大的改進,開發(fā)了將消息與 DNS 黑名單(DNSBL)過濾和內(nèi)容過濾進行集成的技術(shù)。本系列文章將介紹 IBM 創(chuàng)建的、用來限制服務(wù)器中垃圾郵件的數(shù)量的多種解決方案,并預(yù)先介紹了 Lotus Domino 7 中的垃圾郵件控制。在本系列文章的第 1 部分中,我們將查看 Configuration Server 文檔中的設(shè)置和服務(wù)器郵件規(guī)則,幫助控制垃圾郵件。在第 2 部分中,我們將討論 Server 文檔中的設(shè)置和 Notes.ini 變量,用它們來控制垃圾郵件。我們還將大概了解一下 Lotus Notes/Domino 7 中的功能改進。本系列文章假設(shè)您是一位熟悉 Lotus Notes 和 Domino 6 的經(jīng)驗豐富的 Domino 管理員。
大多數(shù) Notes 用戶都希望他們的管理員能夠阻止垃圾郵件,而無需自己刪除或過濾掉不想要的電子郵件。阻止垃圾郵件的最有效方法是阻止消息進入您的環(huán)境中。這需要配置 SMTP 和 Router 設(shè)置??梢栽?Configuration Settings 文檔、Server 文檔和 Domino 服務(wù)器 Notes.ini 文件中進行這兩項配置。
SMTP 任務(wù)控制了 Domino 服務(wù)器中的 SMTP 監(jiān)聽器。默認情況下,無論何時重新啟動 SMTP 服務(wù),從那時起,每隔兩分鐘,SMTP 服務(wù)就會自動檢查 Notes.ini 文件、Configuration Settings 文檔和 Server 文檔,查看設(shè)置是否有變化。如果服務(wù)檢測到設(shè)置已經(jīng)發(fā)生了更改,那么它會重新構(gòu)建其內(nèi)部配置來合并更改。
![]() ![]() |
![]()
|
控制 SMTP 通訊量的最有效方法是通過 Configuration Settings 文檔。Configuration Settings 文檔有多個選項卡,它們能夠過濾 SMTP 電子郵件,從而減少垃圾郵件的數(shù)量。在 Configuration Settings 文檔的 Router/SMTP - Restrictions and Controls - SMTP Inbound Controls 選項卡中,有 6 個配置 SMTP 協(xié)議的附加部分。
這一部分允許您填充 Internet 域,Domino 將允許或拒絕將消息轉(zhuǎn)發(fā)到該域,如圖 1 中所示。不配置 Domino 服務(wù)器的轉(zhuǎn)發(fā)設(shè)置會導(dǎo)致該服務(wù)記入黑名單中,從而無法將出站 SMTP 消息發(fā)送到使用黑名單服務(wù)的域中。
在 Deny 字段中,星號 (*) 會阻止 Domino 將消息轉(zhuǎn)發(fā)給任何外部 Internet 主機或 IP 地址的外部 Internet 域。您還可以使用星號 (*) 代表 IP 地址的子網(wǎng)。“Allow messages to be sent only to the following external internet domains”字段中列出的任何 IP 地址或主機都要優(yōu)先于“Deny messages to be sent to the following external internet domains”字段中的 IP 地址或主機。
“Allow messages only from the following internet hosts to be sent to external internet domains”字段中的任何值都將優(yōu)先于“Deny messages from the following internet hosts to be sent to external internet domains”字段中的值。在以前的 Domino 版本中,當(dāng)發(fā)生沖突時,入站轉(zhuǎn)發(fā)控制的 Deny 字段中的條目要優(yōu)先于 Allow 字段中的條目。
如果想轉(zhuǎn)換回版本 5 使用的算法,需要配置 Notes.ini 變量 SMTPRelayHostsandDomains=value。其默認值是 0。該變量強制服務(wù)器遵守 Domino 5 規(guī)則來解決 SMTP 入站轉(zhuǎn)發(fā)控制中 Allow 和 Deny 列表條目之間的沖突。
字段 | 條目 |
Deny messages to be sent to the following external internet domains | lotus.com |
Allow messages only from the following internet hosts to be sent to external internet domains | mail.ibm.com |
這一部分將討論轉(zhuǎn)發(fā)控制的高級設(shè)置。下列三個字段指定了圖 2 中所示的其他 SMTP 轉(zhuǎn)發(fā)設(shè)置。
Perform Anti-Relay enforcement for these connecting hosts
該字段指定了一些連接,服務(wù)器對這些連接強制執(zhí)行圖 1 中所示的 SMTP 入站轉(zhuǎn)發(fā)控制中定義的入站轉(zhuǎn)發(fā)控制。您需要選擇下列設(shè)置之一:
Exclude these connecting hosts from anti-relay checks
可以創(chuàng)建一個例外列表,用它包含轉(zhuǎn)發(fā)到任何允許的域的系統(tǒng)的主機名稱或 IP 地址。對于每個指定的例外,不強制執(zhí)行入站轉(zhuǎn)發(fā)控制。輸入不受圖 1 中入站轉(zhuǎn)發(fā)控制部分中的指定限制控制的主機 的IP 地址或名稱。輸入 IP 地址時,將其括在方括號內(nèi)。
Exceptions for authenticated users
該字段可用來指定在連接到服務(wù)器時,是否可以不強制提供登錄憑證的用戶執(zhí)行入站轉(zhuǎn)發(fā)控制。必須選擇下列選項之一:
這一部分控制著是否使用圖 3 中所示的 DNS 黑名單過濾。如果啟用它,那么當(dāng) Domino 收到 SMTP 連接請求時,它會檢查連接主機是否列在指定站點的黑名單中。如果在名單中發(fā)現(xiàn)了連接主機,Domino 會以控制臺消息或 Notes Log 的 Mail Routing Events 視圖中的條目的形式來報告事件??刂婆_消息和日志條目都提供了服務(wù)器的主機名稱和 IP 地址,以及列出該服務(wù)器的站點的名稱。如果 Domino 在一個黑名單中發(fā)現(xiàn)了連接主機,那么它不會再繼續(xù)檢查配置的其他站點的名單。
可以選擇許多維護 DNS 黑名單的公共可得的訂閱服務(wù)和專用付費的訂閱服務(wù)。使用公共黑名單服務(wù)時,Domino 通過 Internet 執(zhí)行 DNS 查詢。在一些情況下,可能要花大量的時間來解決提交給 Internet 站點的 DNS 查詢。如果通過 Internet 進行的 DNS 查詢的網(wǎng)絡(luò)等待時間會減慢執(zhí)行速度,那么可以考慮與允許區(qū)域傳送的專用服務(wù)簽約,從而使 Domino 能夠?qū)Ρ镜刂鳈C執(zhí)行所需的 DNS 查找。在區(qū)域傳送過程中,服務(wù)提供者的 DNS 區(qū)域文件的內(nèi)容會被復(fù)制到本地網(wǎng)絡(luò)的 DNS 服務(wù)器中。
對于將服務(wù)器添加到自己的名單中,每個黑名單服務(wù)都使用自己的標準。黑名單站點使用自動測試和其他方法來確定受懷疑的服務(wù)器是在發(fā)出垃圾郵件,還是被用作開放轉(zhuǎn)發(fā)器。限制性較高的黑名單站點會在自動測試失敗后立刻將該服務(wù)器添加到它們的名單中,而不管是否已經(jīng)確認服務(wù)器是垃圾郵件的來源。其他限制性較低的站點只會在其管理員指定的寬限期后不能關(guān)閉服務(wù)器對第三方的轉(zhuǎn)發(fā)時,才列出該服務(wù)器,或者只在服務(wù)器接受大家都知道的垃圾郵件者時列出該服務(wù)器。
當(dāng)因為在 DNS 黑名單中發(fā)現(xiàn)主機而拒絕連接時,我們可以定制返回的錯誤消息的文本。默認的錯誤消息將指明是因為策略原因而拒絕連接。我們可以使用格式指定符 %S 來指定遭拒絕主機的 IP 地址,以及 Domino 在其中發(fā)現(xiàn)列出該主機的 DNS 黑名單站點。
例如,假設(shè)輸入下列文本:
Your host %s was found in the DNS Blacklist at %s
當(dāng) Domino 拒絕連接時,它向主機返回錯誤消息,其中用該主機的 IP 地址替代第一個 %S,用 DNS 黑名單站點名稱替代第二個 %S。因此,如果輸入上例中的文本,遭拒絕的主機會收到以下錯誤消息:
Your host 127.0.0.2 was found in the DNS Blacklist at ibmdnsbl.mail-abuse.org
在 DNS 黑名單中發(fā)現(xiàn)連接主機時所需的操作
必須選擇下列 DNS 黑名單設(shè)置之一:
還可以從 Domino Administrator 或通過在服務(wù)器控制臺使用 SHOW STAT SMTP 命令,來收集統(tǒng)計信息??梢赃M一步擴展統(tǒng)計信息,以了解在其中一個已配置 DNSBL 上發(fā)現(xiàn)給定 IP 地址的次數(shù)。要收集擴展信息,需要在服務(wù)器的 Notes.ini 文件中設(shè)置變量 SMTPExpandDNSBLStats。
SMTPExpandDNSBLStats=value
使用該設(shè)置為 DNS 黑名單站點中發(fā)現(xiàn)的每個連接主機生成 DNS 黑名單過濾統(tǒng)計。
這個 Notes.ini 設(shè)置被應(yīng)用于 Domino 服務(wù)器。如果沒有該設(shè)置,SMTP 任務(wù)維護的統(tǒng)計將跟蹤在所有組合站點的組合 DNSBL 中發(fā)現(xiàn)的連接主機的總數(shù),以及每個配置站點的 DNSBL 中發(fā)現(xiàn)的連接主機數(shù)。
可以將這一部分用于連接到 Domino 服務(wù)器的主機和 IP 地址??梢耘渲?Domino,讓它從任何連接主機執(zhí)行反向 DNS 查找。這將強制 Domino 通過執(zhí)行反向 DNS 查找來確認連接主機的名稱。Domino 檢查 DNS 的 PTR 記錄,該記錄將連接主機的 IP 地址與主機名稱相匹配。如果因為 DNS 不可用或沒有 PTR 記錄而導(dǎo)致 Domino 不能確定遠程主機的名稱,那么 Domino 將不允許主機傳送郵件。
還可以輸入允許或拒絕連接到該服務(wù)器的 SMTP 服務(wù)的主機名稱和/或 IP 地址,如圖 4 所示??梢暂斎胪暾闹鳈C名稱,比如在特定服務(wù)器的完全限定主機名稱中,也可以輸入主機名稱的一部分,使用通配符。例如,在“Allow connections only from the following SMTP internet host names/IP addresses”字段中,如果輸入 ibm.com,那么 Domino 只接受 *ibm.com 表示的域中的郵件主機的連接,所以,它接受以 ibm.com 結(jié)尾的所有主機名稱,包括 us.ibm.com 和 server.ibm.com。Domino 拒絕其他所有連接請求。
這一部分將用于限制入站 SMTP 消息的發(fā)件人??梢詥⒂脤Πl(fā)件人的域的反向 DNS 查找,如圖 5 所示。如果啟用該操作,那么 Domino 將通過檢查 MX、CNAME 或 A 記錄的 DNS 來驗證發(fā)件人的域是否存在,而這些 DNS 與從發(fā)送主機收到的 MAIL FROM 命令中的地址域部分是相匹配的。如果沒有匹配項,那么 Domino 將拒絕主機的入站郵件。
可以填充 Internet 地址,服務(wù)器將接受或拒絕其中的消息。在 SMTP 對話過程中,Domino SMTP 監(jiān)聽器把連接主機收到的 MAIL FROM 命令中的地址與這些字段中的條目進行比較。
這一部分將允許您限制入站 SMTP 消息的收件人的名稱。其中非常有用的一個功能是“Verify that local domain recipient exist in the Domino Directory”字段。該字段指定 SMTP 監(jiān)聽器是否根據(jù) Domino Directory 中的條目檢查 RCPT TO 命令中指定的收件人名稱。如果啟用該字段,SMTP RCPT TO 命令中指定的地址的域部分將與配置的本地 Internet 域進行匹配;SMTP 監(jiān)聽器將檢查配置的所有目錄來確定指定的收件人是否是有效用戶。如果成功完成所有查找,但未找到匹配的用戶名,那么 SMTP 服務(wù)器將返回 550 永久錯誤響應(yīng),指明該用戶為未知用戶:
550 bad_user@yourdomain.com ... No such user
選擇該設(shè)置可以幫助防止發(fā)送給不存在的用戶(例如,要發(fā)送給已經(jīng)離開組織的用戶的垃圾消息和消息)的消息作為死郵件堆積在 Mail.box 中。為了避免因為目錄無效而拒絕消息,當(dāng)進行的目錄查找未成功完成時,Domino 將接受消息。參見圖 6,以獲得更多信息。
可以填充 Internet 地址,這些地址在本地 Internet 域內(nèi),它們被允許或拒絕接收 Internet 的郵件。還可以創(chuàng)建 Notes 組,該組包含允許接收或拒絕 Internet 的郵件的地址的列表,然后您可以在 Notes 字段中輸入組名稱。
注意:以上一些部分包含 Allow messages… 和 Deny messages… 字段。這些字段是互斥的。Deny messages… 字段中的任何條目都將忽略相應(yīng)的 Allow messages… 字段。
![]() ![]() |
![]()
|
可以為服務(wù)器創(chuàng)建內(nèi)容過濾規(guī)則,這些規(guī)則定義要對特定消息采取的操作。當(dāng)新的滿足指定條件的消息放入 Mail.box 中時,Domino 會自動執(zhí)行指定的操作。規(guī)則條件是基于消息頭或消息正文中的內(nèi)容的。通過配置一組條件和操作,可以定制規(guī)則來幫助阻擋垃圾郵件,或攔截具有可疑內(nèi)容的消息。除了明確指明操作規(guī)則的地方之外,如果規(guī)則阻止消息到達其目的地,那么 Domino 不用通知發(fā)件人或收件人。
如果 Mail.box 收到加密消息(Notes 加密、S/MIME、PGP 等),那么服務(wù)器郵件規(guī)則將處理基于消息信封中的未加密信息的所有規(guī)則條件,如發(fā)件人、重要性和收件人,但不處理基于消息正文的加密部分的條件。大多數(shù)規(guī)則條件都是基于消息信封中的信息的。服務(wù)器不記錄規(guī)則無法處理的消息的實例。
Domino 將創(chuàng)建的郵件規(guī)則存儲在 Configuration Settings 文檔的 Router/SMTP - Restrictions and Controls - Rules 選項卡中。啟動時,每個服務(wù)器都從適當(dāng)?shù)?Configuration Settings 文檔中檢索郵件規(guī)則,并將其登記為正在使用的每個 Mail.box 數(shù)據(jù)庫中的監(jiān)視器。無論 Mail.box 何時從任何來源(如 SMTP 處理、其他服務(wù)器中的 Router 或放置消息的客戶機)收到新的消息,服務(wù)器都將根據(jù)登記的郵件規(guī)則評估不同的消息字段。每個消息只評估一次。
添加新的規(guī)則時,只有在服務(wù)器重新加載了該郵件規(guī)則之后,該規(guī)則才生效。如果 Server 任務(wù)在對 Configuration Settings 文檔執(zhí)行例行檢查時檢測到規(guī)則發(fā)生了更改,那么它會自動觸發(fā)重新加載。這類檢查大約每五分鐘進行一次,也可以從 Domino 控制臺重新加載。
創(chuàng)建服務(wù)器郵件規(guī)則時,首先應(yīng)該考慮一些問題。當(dāng)啟用多個郵件規(guī)則時,可以通過在列表中將這些規(guī)則上下移動來設(shè)置它們的相對優(yōu)先級。最好在規(guī)則的開頭放置最通用的字,如果滿足一個條件,就不用繼續(xù)處理規(guī)則中的其他條件。除非真的需要,否則不要搜索消息的正文。搜索正文非常影響服務(wù)器的 CPU 和內(nèi)存性能,可能導(dǎo)致不希望的 Domino 服務(wù)器性能。郵件規(guī)則的最大數(shù)量是 100,但可以通過 Notes.ini 變量對其進行調(diào)整。
創(chuàng)建服務(wù)器郵件規(guī)則的第一步是確定要檢查或要指定條件的消息項??梢詮南铝许椫羞M行選擇:
一旦有了要檢查的消息項,就需要設(shè)置邏輯運算符或限定符。可以選擇下列選項:
還可以修改服務(wù)器郵件規(guī)則來添加更多的條件,如 And 或 Or。也可以將例外作為選項添加到服務(wù)器郵件規(guī)則中。
創(chuàng)建服務(wù)器郵件規(guī)則的第二步是指定當(dāng)滿足條件語句的消息到達時將執(zhí)行的操作。請參考表 A 來選擇選項。
表 A. 為服務(wù)器郵件規(guī)則指定操作。
操作 | 描述 |
Journal this message | Router 將消息的副本發(fā)送給配置的郵件日志數(shù)據(jù)庫,然后將消息發(fā)送到它的目的地。必須在 Router/SMTP - Advanced - Journaling 選項卡中啟用日志 |
Move to database | Router 將消息從 Mail.box 中刪除,并將其移至附加文本字段中指定的數(shù)據(jù)庫中,例如 junkmail.nsf。指定的數(shù)據(jù)庫必須已經(jīng)存在。消息不發(fā)送到其目的地。將消息放在垃圾郵件數(shù)據(jù)庫中,以便進一步檢查這些消息是否包含不想要的內(nèi)容或其他可疑內(nèi)容 |
Don‘t accept message | Domino 拒絕消息,但 Router 不會生成郵遞失敗報告。根據(jù)消息來源,發(fā)件人可能會收到未郵遞報告(NDR)或關(guān)于消息未發(fā)送的其他說明。Domino 不接受收到的 SMTP 消息時,它會向發(fā)送服務(wù)器返回一個 SMTP 永久錯誤代碼,指明是因為策略原因而拒絕消息。SMTP 永久錯誤(500 系列錯誤)指出了發(fā)件人在試圖向相同地址發(fā)送消息時會再犯的錯誤類型 根據(jù)發(fā)送客戶機和服務(wù)器的配置,消息發(fā)件人可能收到郵遞失敗報告。對于通過 Notes 發(fā)送受到的消息,Domino 返回郵遞失敗報告,指明消息違反郵件規(guī)則。對于通過 Notes 客戶機收到的消息,發(fā)送客戶機會顯示錯誤,指明消息違反了郵件規(guī)則 |
Don‘t deliver message | Domino 接受消息,但不將其發(fā)送至目的地,它將根據(jù)下列指定的選項之一處理該消息:
|
Change routing state | Domino 接受消息,但不郵遞該消息。而是將其標記為等待,也就是說將消息中 RoutingState 項的值改為 HOLD。對消息的發(fā)送狀態(tài)進行這類更改會使 Router 將消息無限期地保留在 Mail.box 中,等待管理操作來確定是刪除還是釋放等待中的消息 |
![]() ![]() |
![]()
|
Lotus Domino 支持一些通用 ESMTP (Extended Simple Mail Transfer Protocol) 命令和擴展。在很大程度上,其中的大部分命令和擴展都是在 Server Configuration Settings 文檔的 Router/SMTP - Restrictions and Controls - Advanced - Commands and Extensions 選項卡中配置的。每個 ESMTP 命令由不同的 Request For Comment (RFC) 支持。請參閱表 B,以獲得 SMTP 監(jiān)聽器任務(wù)支持的入站 ESMTP 命令和擴展。
表 B. 入站 SMTP 命令和擴展
SIZE 擴展(RFC 1427) |
|
Pipelining 擴展(RFC 1854) |
|
DSN 擴展(RFC 3461) |
|
8 位 MIME 擴展(RFC 1652) |
|
HELP 命令 |
|
VRFY 命令(RFC 821 的 3.3 節(jié)) |
|
EXPN 命令(RFC 821 的 3.3 節(jié)) |
|
ETRN 命令(RFC 1985) |
|
通過 TCP/IP 端口協(xié)商的 SSL(RFC 2487 和 RFC 3207) |
接受遠程服務(wù)器的 STARTTLS 命令之后,Domino 使用該服務(wù)器的 SSL 端口的設(shè)置來管理會話的驗證。為了使 Domino 對使用 SMTP AUTH 命令的遠程主機進行驗證,必須對 Domino SSL 端口啟用名稱和口令進行驗證。我們將在本系列文章的第 2 部分中講述如何配置服務(wù)器的 SSL 端口 |
![]() ![]() |
![]()
|
在到目前為止的本系列的文章中,我們介紹了 Domino 中的 SMTP 設(shè)置,您可以在 Server Configuration Settings 文檔中設(shè)置它們,其中包括入站轉(zhuǎn)發(fā)控制、黑名單和入站 SMTP 命令和擴展。我們還討論了服務(wù)器郵件規(guī)則和郵件日志,它們是用來清除垃圾郵件的另外兩種方法。在本系列文章的第 2 部分,我們將介紹影響 SMTP 的 Server 文檔設(shè)置和 Notes.ini 變量。然后將了解 Lotus Notes/Domino 7 中有哪些新功能。