Sun Java System Messaging Server 6 2005Q4 管理指南

部署和配置協力廠商垃圾郵件篩選程式

在 Messaging Server 上部署協力廠商篩選軟體需要執行以下 5 項動作:


備註 –

舊版本的 Messaging Server 僅支援 Brightmail 篩選技術,因此,關鍵字和選項具有 sourcebrightmailBrightmail_config_file 之類的名稱。這些關鍵字和選項已變更為更通用的名稱,例如 sourcespamfilterspamfilter_config_file。先前的 Brightmail 名稱仍然保留,以確保相容性。


載入與配置垃圾郵件篩選軟體用戶端程式庫

每個垃圾郵件篩選程式均需要為提供用戶端程式庫檔案和配置檔案。載入與配置用戶端程式庫包括兩項作業:

指定垃圾郵件篩選軟體程式庫路徑

Messaging Server 最多可呼叫四個不同的篩選系統對郵件進行篩選。例如,您可以同時透過 Symantec AntiVirus Scan Engine 和 SpamAssassin 篩選郵件。每個篩選軟體由 1 到 4 來識別。這些數字顯示為各種垃圾郵件篩選選項、LDAP 屬性以及通道關鍵字的一部分;X 用作篩選器識別碼。例如,sourcespamfilterXoptinspamfilterX_config_file。如果識別碼從關鍵字或選項名稱中省略,則其預設為 1。

以下 option.dat 設定可指定 Messaging Server 同時透過 Symantec AntiVirus Scan Engine 和 SpamAssassin 篩選郵件:


spamfilter1_library=Symantec_Library_File
spamfilter1_config_file=Symantec_Config_File
spamfilter2_library=SpamAssassin_Library_File
spamfilter2_config_file=SpamAssassin_Config_File

如果使用其他選項或關鍵字配置系統,請使用選項或關鍵字末尾處的對應數字。例如,sourcespamfilter2optin 對應 SpamAssassin。sourcespamfilter1optin 對應 Symantec AntiVirus Scan Engine。無須連續使用數字。例如,如果要暫時停用 Symantec AntiVirus Scan Engine,則只需註釋 spamfilter1_library 配置檔案。

指定要篩選的郵件

如果垃圾郵件篩選軟體已安裝且可使用 Messaging Server 執行,則需要指定要篩選的郵件。可以將 Messaging Server 配置為依使用者、網域或通道篩選郵件。以下小節描述了這些情形:


備註 –

表示式 optin 表示選取接收郵件篩選的使用者、網域或通道。


Procedure指定使用者級別的篩選

它可適用於針對每個使用者指定篩選。例如,如果垃圾郵件或病毒篩選是做為優惠服務提供給 ISP 客戶的,您可以指定可接收此服務的使用者和不可接收此服務的使用者。使用者篩選的一般步驟如下:

步驟
  1. 指定啟動垃圾郵件篩選軟體的使用者 LDAP 屬性。

    option.dat 中設定 LDAP_OPTINX 選項。範例:


    LDAP_OPTIN1=SymantecAV
    LDAP_OPTIN2=SpamAssassin
  2. 在接收垃圾郵件篩選的使用者項目中設定篩選器屬性。

    篩選器屬性有多個值並且取決於伺服器。如果使用步驟 1 中的範例則項目為:


    SymantecAV: virus
    SpamAssassin: spam

    對於可同時篩選病毒和垃圾郵件的程式 (如 Brightmail),有效值為 spamvirus。用作多值屬性時每個值均需要單獨的屬性項目。例如,如果將 Brightmail 的篩選器屬性設定為 Brightmail,則項目為:


    Brightmail: spam
    Brightmail: virus

使用者級別的篩選範例

此範例假設在使用。還假設在 option.dat 檔案中已將 LDAP_OPTIN1 設定為 Brightmail。使用者 Otis Fanning 在其使用者項目中將 Brightmail 屬性設定為 spamvirus。Brightmail 將對其郵件進行篩選,以檢查是否為垃圾郵件和帶有病毒。使用者級別的篩選範例顯示 Otis Fanning 的 Brightmail 使用者項目。


範例 14–1 Brightmail 的範例 LDAP 使用者項目


dn: uid=fanning,ou=people,o=sesta.com,o=ISP
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: inetUser
objectClass: ipUser
objectClass: inetMailUser
objectClass: inetLocalMailRecipient
objectClass: nsManagedPerson
objectClass: userPresenceProfile
cn: Otis Fanning
sn: fanning
initials: OTF
givenName: Otis
pabURI: ldap://ldap.siroe.com:389/ou=fanning,ou=people,o=sesta.com,o=isp,o=pab
mail: Otis.Fanning@sesta.com
mailAlternateAddress: ofanning@sesta.com
mailDeliveryOption: mailbox
mailHost: manatee.siroe.com
uid: fanning
dataSource: iMS 5.0 @(#)ims50users.sh 1.5a 02/3/00
userPassword: password
inetUserStatus: active
mailUserStatus: active
mailQuota: -1
mailMsgQuota: 100
Brightmail: virus
Brightmail: spam

如果使用 Symantec AntiVirus Scan Engine 和 SpamAssassin,則項目類似於:


SymantecAV: virus
SpamAssassin: spam

請參閱使用 Symantec Brightmail Anti-Spam使用 SpamAssassin使用 Symantec Anti-Virus Scanning Engine (SAVSE)

Procedure指定網域級別的篩選

您可以指定接收篩選的網域。此功能的一個範例就是是否將防垃圾郵件或防毒篩選作為優惠服務提供給 ISP 網域客戶。指定網域篩選的一般步驟如下:

步驟
  1. 指定啟動篩選軟體的網域 LDAP 屬性。

    option.dat 中設定 LDAP_DOMAIN_ATTR_OPTINX 選項。範例:


    LDAP_DOMAIN_ATTR_OPTIN1=SymantecAV
    LDAP_DOMAIN_ATTR_OPTIN2=SpamAssassin
    
  2. 在接收垃圾郵件篩選的網域項目中設定篩選器屬性。

    篩選器屬性有多個值並且取決於伺服器。如果使用步驟 1 中的範例則項目為:


    SymantecAV: virus
    SpamAssassin: spam

    對於可同時篩選病毒和垃圾郵件的程式 (如 Brightmail),有效值為 spamvirus。用作多值屬性時,每個值均需要單獨的屬性值項目。例如,如果將 LDAP_DOMAIN_ATTR_OPTIN1 設定為 Brightmail,則項目為:


    Brightmail: spam
    Brightmail: virus

網域級別的篩選範例

此範例假設在使用。還假設已在 option.dat 檔案中將 LDAP_DOMAIN_ATTR_OPTIN1 設定為 Brightmail。在 Sun LDAP Schema 1 DC 樹狀結構的 sesta.com 網域項目中,將 Brightmail 屬性設定為 spamvirus。對於 Sun LDAP Schema 2,您亦應在接收垃圾郵件篩選的網域項目中設定 Brightmail

Brightmail 會篩選所有傳送至 sesta.com 的郵件,以檢查其是否為垃圾郵件和帶有病毒。以下顯示網域級別的篩選範例


範例 14–2 Brightmail 的範例 LDAP 網域項目


dn: dc=sesta,dc=com,o=internet
objectClass: domain
objectClass: inetDomain
objectClass: mailDomain
objectClass: nsManagedDomain
objectClass: icsCalendarDomain
description: DC node for sesta.com hosted domain
dc: sesta
inetDomainBaseDN: o=sesta.com,o=isp
inetDomainStatus: active
mailDomainStatus: active
mailDomainAllowedServiceAccess: +imap, pop3, http:*
mailRoutingHosts: manatee.siroe.com
preferredMailHost: manatee.siroe.com
mailDomainDiskQuota: 100000000
mailDomainMsgQuota: -1
mailClientAttachmentQuota: 5
Brightmail: spam
Brightmail: virus
 

如果使用 Symantec AntiVirus Scan Engine 和 SpamAssassin,則項目類似於:


SymantecAV: virus
SpamAssassin: spam

請參閱使用 Symantec Brightmail Anti-Spam使用 SpamAssassin使用 Symantec Anti-Virus Scanning Engine (SAVSE),以取得更多範例和詳細資訊。

Procedure指定通道級別的篩選

依來源或目標通道進行篩選會使垃圾郵件篩選更靈活、更精確。例如,您可能希望以下列方法進行篩選:

Messaging Server 可讓您指定依來源通道或目標通道進行篩選。表 14–1 中說明的通道關鍵字即為進行此作業的機制。以下範例展示如何設定通道級別的篩選。

步驟
  1. 在所有內送 SMTP 伺服器 (負責將郵件傳送至後端郵件儲存主機) 的 imta.cnf 檔案中,增加一條重寫規則。範例:

    msg_store1.siroe.com $U@msg_store1.siroe.com

  2. 透過 destinationspamfilterXoptin 關鍵字增加對應於該重寫規則的通道。範例:


    tcp_msg_store1 smtp subdirs 20 backoff "pt5m" "pt10" "pt30" \
    "pt1h" “pt2h” “pt4h” maxjobs 1 pool IMS_POOL \
    fileinto $U+$S@$D destinationspamfilter1optin spam
    msg_store1.siroe.com
    

通道級別的篩選範例

這些範例假設一個由數字 1 指定的篩選程式。它們使用下表中的關鍵字。

表 14–1 垃圾郵件篩選器的 MTA 通道關鍵字

通道關鍵字 

說明 

destinationspamfilterXoptin

指定即使使用者或網域未透過 LDAP_OPTIN LDAP 屬性指定這些篩選服務,防垃圾郵件軟體 X 仍篩選目標為此通道的所有郵件。(在 option.dat 中,篩選軟體 X 由 spamfilterX 定義。)篩選參數取決於篩選程式,並遵循關鍵字。例如,Brightmail 的參數通常為 spamvirusspam,virus。SpamAssassin 參數為 spam

在此範例中所有目標為郵件儲存的郵件均由進行垃圾郵件掃描: 

ims-ms destinationspamfilter1optin spam,virus. . .

sourcespamfilterXoptin

指定即使使用者或網域未透過 LDAP_OPTIN LDAP 屬性指定這些服務,防垃圾郵件軟體 X 仍篩選來自此通道的所有郵件。此關鍵字後接系統範圍的預設參數,可用的參數視篩選程式而定。例如,對於 Brightmail,參數為 spamvirusspam,virus。對於 SpamAssassin,參數為 spam。如果 switchchannel 生效,則應將此關鍵字置於切換至的通道上。

範例 1 對所有郵件進行垃圾郵件和病毒篩選,這些郵件從 MTA 轉送至稱為 msg_store1.siroe.com 的後端郵件儲存

Procedure對 MTA 轉送至後端郵件儲存的郵件進行篩選

步驟
  1. imta.cnf 檔案 (負責將郵件傳送至後端郵件儲存主機) 中,增加一個重寫規則。範例:

    msg_store1.siroe.com   $U@msg_store1.siroe.com
  2. 透過 destinationspamfilterXoptin 關鍵字增加對應該重寫規則的通道。範例:

    tcp_msg_store1 smtp subdirs 20 backoff “pt5m” “pt10” “pt30” “pt1h” \
    “pt2h” “pt4h” maxjobs 1 pool IMS_POOL fileinto $U+$S@$D \
    destinationspamfilter 1optin spam,virus
    msg_store1.siroe.com

    範例 2 對經由 MTA 的所有內送郵件 (通常,所有內送的郵件都經由 tcp_local 通道) 進行垃圾郵件篩選:

    tcp_local smtp mx single_sys remotehost inner switchchannel \
    identnonelimited subdirs 20 maxjobs 7 pool SMTP_POOL \
    maytlsserver maysaslserver saslswitchchannel tcp_auth \
    sourcespamfilter1optin spam
    tcp-daemon

    範例 3 對經由 MTA 外寄至網際網路的所有郵件進行篩選。(通常,所有外寄至網際網路的郵件都經由 tcp_local 通道。)

    tcp_local smtp mx single_sys remotehost inner switchchannel \
    identnonelimited subdirs 20 maxjobs 7 pool SMTP_POOL \
    maytlsserver maysaslserver saslswitchchannel tcp_auth \
    destinationspamfilter1optin spam tcp-daemon

    範例 4 對經由 MTA 的所有內送和外寄郵件進行篩選:

    tcp_local smtp mx single_sys remotehost inner switchchannel \
    identnonelimited subdirs 20 maxjobs 7 pool SMTP_POOL \
    maytlsserver maysaslserver saslswitchchannel tcp_auth \
    sourcespamfilter1optin spam destinationspamfilter1optin spam
    tcp-daemon

    範例 5 在兩層系統中篩選目標為本機郵件儲存的所有郵件,而不使用使用者 optin:

    ims-ms smtp mx single_sys remotehost inner switchchannel \
    identnonelimited subdirs 20 maxjobs 7 pool SMTP_POOL \
    maytlsserver maysaslserver saslswitchchannel tcp_auth \
    destinationspamfilter1optin spam
    tcp-daemon

    範例 6 對所有內送和外寄的郵件進行垃圾郵件和病毒篩選 (假定您的軟體對垃圾郵件和病毒均可進行篩選):

    tcp_local smtp mx single_sys remotehost inner switchchannel \
    identnonelimited subdirs 20 maxjobs 7 pool SMTP_POOL \
    maytlsserver maysaslserver saslswitchchannel tcp_auth \
    destinationspamfilter1optin spam,virus sourcespamfilter1optin \
    spam,virus 
    tcp-daemon

指定要在垃圾郵件上執行的動作

垃圾郵件篩選程式分析郵件並將垃圾郵件或非垃圾郵件的判定結果傳回目前版本的 Messaging Server。然後,Messaging Server 對郵件執行動作。動作藉由篩選郵件篩選程式語言指定的。可能的動作包括捨棄郵件、將郵件歸檔至資料夾、增加標頭和向主旨行增加標記等等。帶有 if-then-else 描述的複雜篩選程序檔亦有可能。


備註 –

請參閱篩選規格 3028 以取得完整的篩選語法。另請參閱


篩選程序檔是透過表 14–2 中說明的 MTA 垃圾郵件篩選器選項 (option.dat) 指定的。主要的垃圾郵件篩選器動作選項包括 SpamfilterX_null_action (指定傳回的垃圾郵件判定結果值為空值時所要執行的篩選規則) 和 Spamfilter X_string_action (指定傳回的垃圾郵件判定結果為字串時所要執行的篩選規則)。

垃圾郵件篩選程式通常向 MTA 傳回字串或空值表示該郵件為垃圾郵件。某些程式還傳回垃圾郵件分值 — 評定郵件為垃圾郵件之可能性的數字。此分值可用作動作序列的一部分。以下範例顯示如何指定對篩選的郵件採取的動作。每個範例均假設一個由數字 1 指定的篩選程式。

範例 1:將垃圾郵件與判定結果值 (空值) 一同歸檔至檔案 SPAM_CAN

spamfilter1_null_action=data:,require "fileinto"; fileinto "SPAM_CAN”;

可在傳回字串的垃圾郵件上執行相同的動作:

spamfilter1_string_action=data:,require "fileinto"; fileinto "SPAM_CAN”;

範例 2:將垃圾郵件與傳回的判定結果字串一同歸檔至以傳回的判定結果字串命名的檔案 (這是 $U 的工作)。即,如果傳回的判定結果字串為 spam,則將該郵件儲存在稱為 spam 的檔案中。

spamfilter1_null_action=data:,require "fileinto"; fileinto "$U”;

範例 3:捨棄帶有字串判定結果值的垃圾郵件。

spamfilter1_string_action=data:,discard

可在傳回空值的垃圾郵件上執行相同的動作:

spamfilter1_null_action=data:,require "fileinto"; fileinto "SPAM_CAN”;

範例 4。此行將 Spam-test: FAIL 標頭增加至由字串判定結果值確定為垃圾郵件的每個郵件。

spamfilter1_string_action=data:,require ["addheader"];addheader "Spam-test: FAIL”;

範例 5。此行將字串 [PROBABLE SPAM] 增加至傳回字串的垃圾郵件的主旨行:

spamfilter1_string_action=data:,addtag “[PROBABLE SPAM]”;

範例 6。如果標頭包含 resent-fromUser-1,此行將假設字串判定結果值並對電子信箱 testspam 中的垃圾郵件進行歸檔。如果郵件不包含此標頭,則將郵件歸檔至 spam

spamfilter1_string_action=data:,require "fileinto"; \
  if header :contains ["resent-from"] ["User-1"] {  \
  fileinto "testspam"; \
  } else {  \
  fileinto "spam";};

因為判定結果字串可藉由大多數垃圾郵件篩選器軟體進行配置,所以您可以根據傳回的字串指定不同的動作。這可透過相符的配對選項 spamfilterX_verdict_nspamfilterX_action_n 執行。

範例 7。這些相符的配對選項捨棄傳回的判定結果字串為 remove 的垃圾郵件。


spamfilter1_verdict_0=remove
spamfilter1_action_0=data:,discard

請參閱垃圾郵件篩選軟體的特定小節,以取得有關如何指定垃圾郵件判定結果字串的說明。

表 14–2 MTA 垃圾郵件篩選器選項 (option.dat)

適用於 SpamAssassin 的 MTA 選項 

說明 

SpamfilterX_config_file

指定篩選軟體 X 配置檔案的完整檔案路徑和名稱。預設:無 

SpamfilterX_library

指定篩選軟體 X 共用程式庫的完整檔案路徑和名稱。預設:無 

SpamfilterX_optional

控制篩選程式庫 X 報告的某些故障是否作為暫時性故障處理或被忽略。預設值 0 指定垃圾郵件篩選問題會導致暫時性處理故障。將值變更為 1 會導致在某些 (但可能並非所有) 篩選程式庫發生故障的情況下,略過垃圾郵件篩選器處理。尤其是,如果系統阻塞而未在程式庫程式碼中傳回,則 MTA 的一些部分也可能阻塞。還可以設定為 -2 和 2。它們分別與 0 和 1 相同,但是如果垃圾郵件篩選外掛程式報告發現問題,它們將造成發出系統記錄訊息。

預設:0

LDAP_optinX

指定用於針對使用者啟動篩選軟體 X 之 LDAP 屬性的名稱。這應為 inetMailUser 物件類別中的屬性。

此屬性本身可以有多個值且區分大小寫。對於 SpamAssassin,它的值應為小寫的 spam

預設:無 

LDAP_domain_attr_optinX

指定用於針對網域啟動篩選軟體 X 之屬性 LDAP 的名稱。適用於目標網域。除應屬於物件類別 mailDomain 之外,其餘與 LDAP_optin 相同。

預設:無 

SpamfilterX_null_optin

指定一個字串,如果發現該字串是由 LDAP_optinXLDAP_domain_attr_optinX 定義的屬性值,則會導致 MTA 執行該屬性不存在所執行的動作。即,停用對該項目的篩選。請參閱指定要篩選的郵件

預設:空字串。依預設空屬性被忽略。(這與 iPlanet Messaging Server 5.2 不同,在 5.2 版中,空 optin 屬性藉由空 optin 清單觸發篩選。可透過將 spamfilterX_null_optin 設定為虛擬字串來復原 5.2 版的運作方式。))

SpamfilterX_null_action

定義一種篩選規則用於指定當篩選軟體 X 判定結果傳回空值時如何處理郵件。可透過使用檔案 URL 在外部儲存篩選表示式。例如:file:///var/opt/SUNWmsgsr/config/null_action.sieve。此外,請勿使用篩選 reject 動作拒絕垃圾郵件,因為這樣做會向無辜的一方 (其位址用於傳送垃圾郵件) 傳送「未傳送通知」。預設:data:,discard;

SpamfilterX_string_action

定義一種篩選規則用於指定當判定結果為字串時如何處理郵件。可透過使用檔案 URL 在外部儲存篩選表示式。例如: file:///var/opt/SUNWmsgsr/config/null_action.sieve。此外,請勿使用篩選 reject 動作拒絕垃圾郵件,因為這樣做會向無辜的一方 (其伺服器用於傳送垃圾郵件) 傳送「未傳送通知」。

預設:data:,require "fileinto"; fileinto "$U;

其中,$U判定結果傳回的字串。

spamfilterX_verdict_n

spamfilterX_verdict_nspamfilterX_action_n 組成相符的一對選項,其中,n 是 0 到 9 之間的一個數字。這兩個選項可讓您為任意判定結果字串指定篩選器。執行方法為:將 spamfilterX_verdict_nspamfilterX_action_n 分別設定為判定結果字串和篩選器,其中,n 是 0 到 9 之間的一個整數。例如,站點可透過指定以下內容使「reject」判定結果導致篩選 reject 動作:


spamfilter1_verdict_0=reject
spamfilter1_action_0=data:,require "reject";
reject "Rejected by spam filter";

所有 spamfilterX_verdict_n 選項及相應動作選項的預設值均為空字串。

預設:無 

spamfilterX_action_n

請參閱 spamfilterX_verdict_n。預設:無

spamfilterX_final

某些篩選程式庫可以根據收件者位址執行一組動作。spamfilterX_final 指定傳送至篩選程式庫的收件者位址類型。值 0 可導致使用中間位址;1 可導致傳送收件者位址的最終格式。

預設:0

optin_user_carryover

轉寄對於垃圾郵件篩選器處理而言是個挑戰。考量指定 forward 傳送選項以及指定其他使用者轉寄位址的使用者項目。此外,使用者項目設定為選擇加入某些特定類型的篩選。是否應該將篩選套用至轉寄的郵件?一方面,對特定使用者而言正確的篩選選擇對其他使用者卻不一定正確。另一方面,結束篩選作業可能會成為違反站點安全策略的手段。

沒有一個答案在所有情況下都是正確的,因此 OPTIN_USER_CARRYOVER 控制在轉寄時如何將垃圾郵件篩選 optin 清單從一個使用者或別名項目傳送至其他項目。這是位元編碼的值。各種位元值涵義如下:

位元 0 (值 1)。每個 LDAP 使用者項目無條件地置換先前使用中的任何使用者/網域 optin。 

位元 1 (值 2)。如果使用者的網域具有 optin 屬性,則會置換先前任何使用中的使用者/網域/別名 optin。 

位元 2 (值 4)。如果使用者具有 optin 屬性,則會置換先前使用中的任何使用者/網域/別名 optin。 

位元 3 (值 8)。由 [optin] 非位置參數指定的 optin 置換先前使用中的任何使用者/網域/別名 optin。 

預設:0 (如果一個使用者具有轉寄至其他使用者的投遞項目,則 optin 將會累積。此預設可確保站點安全策略在轉寄時有效;而其他設定則無法確保這一點。)