Sun Java System Messaging Server 6 2005Q4 管理ガイド

第 14 章 スパムとウィルスのフィルタ処理プログラムを Messaging Server に統合する

この章では、Messaging Server を使用して、スパムおよびウィルスのフィルタ処理ソフトウェアを統合および設定する方法について説明します。この章で説明するスパムおよびウィルスのフィルタ処理技術は、変換チャネルによって提供される技術よりも強力です (「変換チャネル」を参照)。Messaging Server では、Symantec Brightmail AntiSpam、SpamAssassin、および Internet Content Adaptation Protocol (ICAP、RFC 3507) がサポートするスパム防止/ウィルス防止プログラム (Symantec AntiVirus Scan Engine など) がサポートされています。


注 –

この章のスパム防止またはスパムのフィルタ処理機能についての参照は、該当する場合には、ウィルス防止またはウィルスのフィルタ処理機能にも当てはまります。製品によって、両方の機能を提供するものもあれば (Brightmail)、スパムのフィルタ処理機能のみ (SpamAssassin)、またはウィルスのフィルタ処理機能のみ (Symantec AntiVirus Scan Engine) を提供するものもあります。また、spam は設定パラメータで一般的に使用されます。


この章には、次の節があります。

スパムのフィルタ処理プログラムを Messaging Server に統合する — 動作方式

Messaging Server から見ると、スパム防止ソリューションはどれも同じように動作します。

  1. Messaging Server は、スパムのフィルタ処理ソフトウェアにメッセージのコピーを送信します。

  2. スパムのフィルタ処理ソフトウェアは、メッセージを分析し、スパムかどうかの判定を返します。プログラムによっては、SpamAssassin のようにスパムスコアを含む判定も返します。スパムスコアは、メッセージがスパムである確率を数値で示すものです。

  3. Messaging Server は、この判定を読み取り、メッセージに対して Sieve アクションを実行します (「スパムメッセージに対して実行するアクションを指定する」を参照)。

スパムのフィルタ処理プログラムは、プロトコルを介して MTA と対話します。Symantec AntiVirus Scan Engine などの ICAP ベースのプログラムで使用するような標準プロトコル、Brightmail で使用するような独自のプロトコル、または、SpamAssassin で使用するような非標準のプロトコルが使用可能です。各プロトコルには、MTA とのインタフェースのためのソフトウェアのフックが必要です。Brightmail および Spam Assassin は、メッセージングサーバーと最初に統合できるスパムのフィルタ処理プログラムです。MTA は現在、ICAP を使用するプログラムをサポートしています。

サードパーティーのスパムのフィルタ処理プログラムを配備および設定する

Messaging Server にサードパーティーのフィルタ処理ソフトウェアを配備するには、次に示す 5 つのアクションが必要です。


注 –

以前のバージョンの Messaging Server でサポートされていたのは、Brightmail フィルタ処理技術のみでした。このため、キーワードとオプションには、sourcebrightmail または Brightmail_config_file のような名前が付けられていました。これらのキーワードとオプションは、sourcespamfilter または spamfilter_config_file などの、より一般的な名前に変更されています。以前の Brightmail の名前は、互換性のために保持されています。


スパムのフィルタ処理ソフトウェアのクライアントライブラリをロードおよび構成する

それぞれのスパムフィルタ処理プログラムは、Messaging Server のクライアントライブラリファイルと設定ファイルを提供します。クライアントライブラリをロードおよび構成するには、次の 2 つのことが必要です。

スパムのフィルタ処理ソフトウェアのライブラリパスを指定する

Messaging Server は、メッセージに対して最大 4 種類のフィルタ処理システムを呼び出せます。たとえば、Symantec AntiVirus Scan Engine と SpamAssassin の両方を使用してメッセージを実行できます。それぞれのフィルタ処理ソフトウェアは、1 から 4 までの番号で識別されます。これらの番号は、各種のスパムフィルタオプション、LDAP 属性、およびチャネルキーワードの一部として表示され、フィルタの ID 番号として X が使用されます。たとえば、sourcespamfilterX optin または spamfilterX _config_file のようになります。キーワードまたはオプション名から ID 番号を省略した場合、デフォルトは 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 のようなプログラムの場合、有効な値は spam および virus です。複数値を持つ属性として使用する場合、それぞれの値に個別の属性を入力する必要があります。たとえば、Brightmail のフィルタ属性が Brightmail に設定されている場合のエントリは次のとおりです。


    Brightmail: spam
    Brightmail: virus

ユーザーレベルのフィルタ処理の例

この例では、Brightmail が使用されていると仮定しています。また、option.dat ファイルで LDAP_OPTIN1 が Brightmail に設定されているとします。Otis Fanning というユーザーには、そのユーザーエントリの Brightmail 属性が spam および virus に設定されています。このユーザーのメールには、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 AntiSpam を使用する」「SpamAssassin を使用する」、または 「Symantec Anti-Virus Scanning Engine (SAVSE) を使用する」を参照してください。

Procedureドメインレベルのフィルタ処理を指定するには

フィルタ処理の対象となるドメインを指定できます。この機能の使用例は、スパム防止またはウィルス防止のフィルタ処理を ISP ドメインの顧客に対するプレミアムサービスとして提供する場合です。ドメインのフィルタ処理を指定するための一般的な手順は、次のとおりです。

手順
  1. フィルタ処理ソフトウェアを起動するドメイン LDAP 属性を指定します。

    option.datLDAP_DOMAIN_ATTR_OPTINX オプションを設定します。次に例を示します。


    LDAP_DOMAIN_ATTR_OPTIN1=SymantecAV
    LDAP_DOMAIN_ATTR_OPTIN2=SpamAssassin
    
  2. フィルタ属性をスパムのフィルタ処理の対象となるドメインエントリに設定します。

    フィルタ属性は複数値を持ち、サーバーによって異なります。手順 1 の例を使用した場合のエントリを次に示します。


    SymantecAV: virus
    SpamAssassin: spam

    ウィルスとスパムの両方をフィルタ処理できる Brightmail のようなプログラムの場合、有効な値は spam および virus です。複数値を持つ属性として使用する場合、それぞれの値に個別の属性値を入力する必要があります。たとえば、LDAP_DOMAIN_ATTR_OPTIN1Brightmail に設定されている場合のエントリは次のとおりです。


    Brightmail: spam
    Brightmail: virus

ドメインレベルのフィルタ処理の例

この例では、Brightmail が使用されていると仮定しています。また、option.dat ファイルで LDAP_DOMAIN_ATTR_OPTIN1Brightmail に設定されているとします。Sun LDAP スキーマ 1 の DC ツリーの sesta.com ドメインエントリでは、Brightmail 属性は spam および virus に設定されています。Sun LDAP スキーマ 2 の場合、ドメインエントリに Brightmail を設定して、スパムのフィルタ処理の対象にします。

sesta.com に送信されるすべてのメールは、Brightmail によってスパムおよびウィルス用にフィルタ処理されます。「ドメインレベルのフィルタ処理の例」に例を示します。


例 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 AntiSpam を使用する」「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 によってフィルタ処理されることを指定します 。(ソフトウェア X のフィルタ処理は option.datspamfilterX_library によって定義される。)フィルタパラメータはフィルタ処理プログラムによって異なり、キーワードのあとに続きます。たとえば、Brightmail のパラメータは通常、spam または virus または spam,virus です。SpamAssassin のパラメータは spam です。

この例では、メッセージストア宛のメールはすべて、スパムでないかスキャンされます。 

ims-ms destinationspamfilter1optin spam,virus. . .

sourcespamfilterXoptin

これらのサービスがユーザーまたはドメインによって LDAP_OPTIN LDAP 属性で指定されていない場合でも、このチャネルから発信されるすべてのメッセージがスパム防止ソフトウェア X によってフィルタ処理されることを指定します。キーワードのあとにはシステム全体のデフォルトパラメータが続きます。使用できるパラメータはフィルタ処理プログラムによって異なります。たとえば、Brightmail の場合のパラメータは、spam または virus または spam,virus です。SpamAssassin の場合、パラメータは spam です。switchchannel が有効な場合、このキーワードは switched-to チャネルに入れられます。

例 1: MTA リレーから msg_store1.siroe.com というバックエンドメッセージストアへのすべてのメールを、スパムおよびウィルス用にフィルタ処理します。

ProcedureMTA リレーからバックエンドメッセージストアへのフィルタ処理を行うには

手順
  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 を使わずに、2 層システムにあるローカルメッセージストア宛のすべてのメールをフィルタ処理します。

    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 は、メッセージに応じたアクションを実行します。アクションは、Sieve メールフィルタ処理言語を使って指定します。指定できるアクションは、メッセージの破棄、フォルダへのファイリング、ヘッダーの追加、件名へのタグの追加などです。if-then-else ステートメントを含む複雑な Sieve スクリプトも指定できます。


注 –

複雑な Sieve 構文については、Sieve 仕様 3028 を参照してください。http//www.cyrusoft.com/sieve/ も参照してください。


Sieve スクリプトは、表 14–2 で説明する MTA スパムフィルタオプション (option.dat ) で指定します。主なスパムフィルタアクションのオプションは、NULL 値がスパム判定値として返されたときに実行される Sieve ルールを指定する SpamfilterX_null_action と、文字列がスパム判定として返されたときに実行される Sieve ルールを指定する SpamfilterX_string_action です。

スパムのフィルタ処理プログラムは、通常、文字列または NULL 値を MTA に返して、メッセージがスパムであることを示します。プログラムによっては、スパムスコアも返します。スパムスコアは、スパムであるメッセージまたはスパムではないメッセージの確立を示す数値です。このスコアは、アクションシーケンスの一部として使用できます。次の例は、フィルタ処理を行うメッセージに対するアクションの指定方法を示しています。それぞれの例では、番号 1 によって指定されるフィルタ処理プログラムを想定しています。

例 1: NULL 判定値を含むスパムメッセージをファイル 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

同じアクションを、NULL 値を返すスパムメッセージで実行できます。

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-from および User-1 がある場合は、文字列判定値が仮定され、スパムメッセージがメールボックス testspam にファイリングされます。メッセージにこのヘッダーがない場合、メッセージは spam にファイリングされます。

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

判定文字列はほとんどのスパムフィルタソフトウェアで設定できるため、返される文字列に応じてさまざまなアクションを指定できます。これは、対応するペアの spamfilterX _verdict_n オプションと、spamfilterX_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 と同じですが、スパムフィルタプラグインによって問題が報告された場合に syslog メッセージが送信される点で異なります。

デフォルト: 0

LDAP_optinX

ユーザー単位でフィルタ処理ソフトウェア X を有効にするために使用する LDAP 属性の名前を指定します。これは、inetMailUser オブジェクトクラス内の属性である必要があります。

属性自体には複数の値を指定でき、大文字小文字は区別されます。SpamAssassin の場合、値は小文字の spam にする必要があります。

デフォルト: なし 

LDAP_domain_attr_optinX

ドメイン単位でフィルタ処理ソフトウェア X を有効にするために使用する LDAP 属性の名前を指定します。宛先ドメインに適用されます。オブジェクトクラス mailDomainn 内にある必要がある以外は、LDAP_optinn と同様です。

デフォルト: なし 

SpamfilterX_null_optin

LDAP_optinX または LDAP_domain_attr_optinX で定義される属性の値として見つかった場合に、属性がそこにはないかのように MTA を機能させる文字列を指定します。つまり、そのエントリに対するフィルタ処理を無効にします。「フィルタ処理を行うメッセージを指定する」を参照してください。

デフォルト: 空の文字列です。空の optin 属性は、デフォルトでは無視されます。(これは、iPlanet Messaging Server 5.2 からの変更。5.2 では、空の optin 属性は空の optin リストでフィルタ処理をトリガした。5.2 の動作は、spamfilterX_null_optin を実際には発生することのない文字列に設定することによって復元できる。)

SpamfilterX_null_action

フィルタ処理ソフトウェア X の判定が NULL で返された場合にメッセージの処理を指定する Sieve ルールを定義します。Sieve 式は、ファイル URL を使って外部的に保存できます。例: file:///var/opt/SUNWmsgsr/config/null_action.sieve また、アドレスがスパムの送信に使用されていた、関係のない相手に非配信通知を配信する傾向があるため、スパムを拒否するときに Sieve 拒否アクションを使用しないでください。デフォルト: data:,discard;

SpamfilterX_string_action

判定が文字列で返された場合にメッセージの処理を指定する Sieve ルールを定義します。Sieve 式は、ファイル URL を使って外部的に保存できます。例: file:///var/opt/SUNWmsgsr/config/null_action.sieve また、アドレスがスパムの送信に使用されていた、関係のない相手に非配信通知を配信する傾向があるため、スパムを拒否するときに Sieve 拒否アクション (reject) を使用しないでください。

デフォルト: data:,require "fileinto"; fileinto "$U;

ここで、$Uverdict が返した文字列です。

spamfilterX_verdict_n

spamfilterX_verdict_n オプションと spamfilterX_action_n オプションは対応するペア、n は 0 から 9 の数字です。これらのオプションにより、任意の判定文字列に Sieve フィルタを指定できます。これは、spamfilterX_verdict_ n および spamfilterX_action_n を、それぞれ判定文字列および Sieve フィルタに設定することによって行われます。ここで、n は 0 から 9 の整数です。たとえば、サイトで「reject」判定によって Sieve 拒否アクションを発生させるには、次のように指定します。


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 するように設定します。フィルタ処理を転送されるメッセージに適用すべきでしょうか。これに対し、1 人の特定のユーザーにとって正しいフィルタ処理を選択しても、ほかのユーザーにとっては正しい選択ではない場合もあります。また、サイトのセキュリティーポリシーに違反する手段としてフィルタ処理操作が省かれることもあります。

すべてのケースに対応できる 1 つの答えはないため、OPTIN_USER_CARRYOVER は、スパムのフィルタ処理の optin リストが転送されるときに、あるユーザーエントリまたはエイリアスエントリから別のエントリに転送される方法を制御します。これはビットエンコード値です。ビット値には、次のような意味があります。

ビット 0 (値 1): 各 LDAP ユーザーエントリは、以前アクティブだったユーザーまたはドメインの optin よりも無条件で優先されます。 

ビット 1 (値 2): ユーザーのドメインに optin 属性がある場合、以前アクティブだったユーザー、ドメイン、エイリアスよりも優先されます。 

ビット 2 (値 4): ユーザーに optin 属性がある場合、以前アクティブだったユーザー、ドメイン、エイリアスよりも優先されます。 

ビット 3 (値 8): [optin] 非定位置パラメータで指定した optin は、以前アクティブだったユーザー、ドメイン、エイリアスよりも優先されます。 

デフォルト: 0 (ユーザーが別のユーザーに転送する配信オプションを持つ場合、optin が累積する。このデフォルトにより、転送時にサイトのセキュリティーポリシーが有効であることが保証される。ほかの設定では保証されない場合がある。)  

Symantec Brightmail AntiSpam を使用する

Brightmail ソリューションは、Brightmail サーバーおよびスパムとウィルスを防止するルールで構成され、ルールのリアルタイムの更新版は電子メールサーバーにダウンロードされます。次に示す節も加えて参照してください。

Brightmail の機能

Brightmail サーバーは顧客のサイトに配備されます。Brightmail では、電子メールプローブがインターネット周辺に配置され、新しいスパムを検出します。Brightmail の技術者はリアルタイムでこのスパムを阻止するカスタムルールを作成します。ルールは Brightmail サーバーにダウンロードされます。これもリアルタイムで行われます。Brightmail のデータベースは更新され、Brightmail サーバーは特定のユーザーまたはドメインの電子メールに対してこのデータベースフィルタを使用します。

Brightmail のアーキテクチャー

図 14–1 に、Brightmail のアーキテクチャーを示します。

図 14–1 Brightmail と Messaging Server のアーキテクチャー

図は Brightmail と Messaging Server のアーキテクチャーを示しています。

Brightmail Logistics and Operations Center (BLOC) が電子メールプローブからスパムを受信すると、オペレータがただちに適切なスパムフィルタ処理ルールを作成します。作成されたルールは、Brightmail の顧客のマシンにダウンロードされます。同様に、Symantec Security Response のリアルタイムのウィルスルールが Brightmail から送信されます。これらのルールは顧客の Brightmail サーバーでスパムやウィルスを検出するために使用されます。

MTA は Brightmail SDK を使用して Brightmail サーバーと通信します。MTA は Brightmail からの応答に基づいてメッセージを送信します。MTA はメール (1a) または (1b) を受信すると、Brightmail サーバー (2) にメッセージを送信します。Brightmail サーバーはルールとデータを使用してメッセージがスパムやウィルスであるかどうか判断し (3)、判定を MTA に返します。その判定に基づいて、MTA はメッセージを破棄するか、フォルダに保存するか (4a)、通常どおり宛先に配信するか (4b) のいずれかを実行します。

Brightmail SDK はサードパーティーのソフトウェアなので、Sun のインストールキットには含まれていません。Brightmail SDK およびサーバーソフトウェアは、Brightmail Inc. から入手する必要があります。MTA には、Brightmail を統合するために Brightmail SDK をロードするかどうか、どこにロードするかを指定する構成設定があります。

SDK がロードされると、Brightmail のメッセージ処理は複数の係数と細分度 (アクティブな処理が optin であることを示す、Brightmail で使用される用語) によって決定されます。これは、次の基準に基づいて示されます。

各メッセージ受取人にとっては、上記の optin とデフォルトは組み合わされています。つまり、チャネルのデフォルトがすでにスパムとウィルスの両方に対して指定されていれば、ユーザー単位の optin は不要になります。言い換えると、システム管理者が全員に対してスパムとウィルスのフィルタ処理を行うことを決定すれば、ユーザーにスパムやウィルスの対策を選択させる必要はないということです。システムまたはドメインオプションによってすでにユーザーが optin している場合、処理を optin 解除する (そのサービスを不要とする) ことはできません。また、サービスを optin していて、別のアドレスにメールを転送した場合、そのアドレスはフィルタ処理が実行されたあとにメールを受信します。

提供されるサービスは、ウィルス検出またはスパム検出の 2 つのみです。Brightmail では、「content-filtering」サービスも提供されますが、この機能は Sieve を使用して提供されるため、Brightmail で Sieve フィルタ処理を実行した場合の付加価値はありません。

メッセージにウィルスが含まれていると判明した場合は、ウィルスを除去するように Brightmail サーバーを設定でき、これによって除去済みのメッセージが MTA に再送信されます。ウィルス除去済みのメッセージが再送信されると、元のメッセージから情報が失われることによって生じる副次的な悪影響があるため、MTA に除去済みのメッセージを再送信しないように Brightmail を設定することをお勧めします。メッセージがスパムである場合、Brightmail からその設定とともに返された判定に基づいて、MTA はメッセージの処理を決定できます。メッセージは、破棄したり、フォルダにファイリングしたり、件名にスパムまたはウィルスとしてタグ付けしたり、Sieve ルールに渡したり、通常どおり INBOX に配信したりできます。

Brightmail サーバーは、MTA と同一システム上に配置することも、別のシステムに配置することもできます。任意の数の MTA を実行する Brightmail サーバーのファームを構築することもできます。Brightmail SDK では、Brightmail 設定ファイルによって使用する Brightmail サーバーが決定されます。

Brightmail の要件とパフォーマンスの考慮

Brightmail を配備する

次に示す手順を実行して、Brightmail を配備します。

Brightmail 設定オプション

一部の Brightmail 設定ファイルオプションについては、表 14–3 に示します。Brightmail 設定ファイルオプションの完全なリストは、Brightmail から入手できます。オプションおよび値は大文字と小文字が区別されません。

表 14–3 Brightmail 設定ファイルオプション (一部)

Brightmail オプション 

説明 

blSWPrecedence

1 つのメッセージが複数の判定を受けることがあります。その場合、このオプションで順序を指定します。このオプションを virus-spam と指定した場合、メッセージに対して先にウィルス処理、次にスパム処理が行われます。判定はハイフン (-) で区切られます。これは Sun Java System Messaging Server で Brightmail を使用する場合に推奨される設定です。

blSWClientDestinationDefault

スパムでもウィルスでもなく、したがって判定を受けない通常のメッセージの配信方法を指定します。このようなメールを通常に配信するには、値として inbox を指定します。デフォルトはありません。

blSWLocalDomain

この属性ではローカルとみなされるドメインを指定します。いくつかのドメインがすべてローカルとみなされ、それを指定する場合は、この属性の行は複数になることがあります。ローカルドメインと外部ドメインを使用して、判定のための 2 種類の処理を指定します。 

次の blSWClientDestinationLocalblSWClientDestinationForeign を参照してください。たとえば、次のように指定します。

blSWLocalDomain=siroe.com

blSWClientDestinationLocal

このオプションではローカルドメイン用に判定とアクションのペアを指定します。この指定は通常 2 行で行われ、1 行はスパム用、もう 1 行はウィルス用です。値は verdict|action という形式をとります。次に例を示します。

blSWClientDestinationLocal=spam|spambox

blSWClientDestinationLocal=virus|

「null」アクション (| の右側に指定なし) に対するデフォルトの Brightmail 解釈は、メッセージを破棄することです。したがって、上記の例では判定が virus であるメッセージは破棄されます。また、判定が spam である場合、上記の例では spambox というフォルダにメッセージが保存されます。メッセージがスパムでもウィルスでもない場合、判定は一致せず、前出の blSWClientDestinationDefault の設定内容に基づいてメールは通常どおり配信されます。

Brightmail サーバーを MTA と別のマシンで使用している場合には、各 MTA によって実行されるアクションをカスタマイズできます。それには次の MTA オプションを使用して Brightmail サーバーから返されるアクションや判定を無効にします。Brightmail_verdict_n/Brightmail_action_n/Brightmail_null_action/Brightmail_string_action。この例では、MTA で別の Brightmail_null_action を使用してウィルスアクション (MTA のアクションを無効にするアクション) を無効にできます。または Brightmail_verdict_0=spamboxBrightmail_action_0=data:,require "fileinto";fileinto "Junk"; を使用して、spambox の代わりに Junk というフォルダに保存できます。

blSWClientDesintationForeign

上記の blSWClientDestinationLocal と同じ形式と内容です。ただし、ローカル以外のドメインのユーザーに適用されます。

blSWUseClientOptin

Sun Java System Messaging Server で使用する場合は、常に TRUE に設定してください。 

blswcServerAddress

ip:port[,ip:port,...] という形式で Brightmail サーバーの IP アドレスとポート番号を指定します。

SpamAssassin を使用する

この節には、次の項があります。

SpamAssassin の概要

Messaging Server では、SpamAssassin の使用がサポートされています。SpamAssassin はフリーウェアのメールフィルタで、スパムの特定に使用されます。SpamAssassin は Perl で記述されたライブラリ、アプリケーションのセット、および SpamAssassin のメッセージングシステムへの統合に使用するユーティリティーで構成されています。

SpamAssassin では、すべてのメッセージのスコアが計算されます。スコアは、メッセージヘッダーや本文の情報に対して一連のテストを実行することによって計算されます。各テストに成功するか失敗するかによって、True (スパム) または False (スパムではない) がレンダリングされます。スコアは正または負の実数です。スコアが指定したしきい値 (通常 5.0) を超えると、スパムであるとみなされます。SpamAssassin の結果文字列の例を次に示します。

True ; 18.3 / 5.0

True は、メッセージがスパムであることを示します。18.3 は SpamAssassin スコアです。5.0 はしきい値です。

SpamAssassin には高い設定性があります。テストはいつでも追加したり削除したりでき、既存テストのスコアは調整されます。これらはすべてさまざまな設定ファイルを通じて実行されます。SpamAssassin の詳細については、SpamAssassin の Web サイトを参照してください。

Brightmail のスパムおよびウィルススキャンライブラリを呼び出す場合と同じ方法で SpamAssassin spamd サーバーに接続できます。Messaging Server で提供するモジュールの名前は libspamass.so です。

SpamAssassin/Messaging Server の動作方式

spamd は SpamAssassin のデーモンバージョンであり、MTA から呼び出すことができます。spamd は、要求のソケットを待機し、子プロセスを生成してメッセージがテストされるようにします。子プロセスは、メッセージが処理され結果が戻されたあと、破棄されます。コード自体は子プロセス間で共有されるため、理論上、フォークは効率的なプロセスであるはずです。

SpamAssassin インストールによるクライアント部分、spamc は、使用されません。代わりに、Messaging Server の一部である libspamass.so という共有ライブラリによってこの機能が実行されます。libspamass.so は、Brightmail SDK の読み込みと同じように読み込まれます。

MTAから見ると、SpamAssassin とスパムのフィルタ処理用の Brightmail は、ほぼ透過的に切り替えることができます。同じ機能を持っているわけではないので、完全に透過的というわけではありません。たとえば、Brightmail ではウィルス用のフィルタ処理も行えますが、SpamAssassin はスパム用のフィルタ処理にしか使われません。この 2 つのソフトウェアパッケージによって返される結果、つまり判定も、異なります。SpamAssassin がスコアを提供するのに対し、Brightmail は判定名のみを提供します。このため、設定にもいくつかの違いがあります。

MTA と一緒に SpamAssassin を使用すると、SpamAssassin からはスコアと判定のみが返されます。メッセージ自体は変更されません。つまり、ヘッダーの追加や件名の変更のようなオプションは、Sieve スクリプトによって行う必要があります。また、mode オプションを使用すると、判定を示すために返す文字列を指定できます。文字列の選択肢は、NULL、デフォルト、SpamAssassin の結果文字列、または verdict 文字列です。詳細は、「SpamAssassin オプション」を参照してください。

SpamAssassin の要件と使用法の考慮

SpamAssassin を実行する場所

SpamAssassin は、それ自体が置かれている個々のシステム上、単一のシステム配備の Messaging Server と同じシステム上、または 2 層配備の MTA と同じシステム上で実行できます。MTA とメッセージストア間で Local Mail Transfer Protocol (LMTP) が使われている場合、フィルタ処理は MTA から呼び出す必要があります。メッセージストアから呼び出すことはできません。MTA とメッセージストア間で SMTP が使われている場合は、いずれか一方から呼び出すことができ、いずれかのシステムか 3 つ目の別のシステムで実行できます。

SpamAssassin を実行するサーバーのファームを使用する場合は、それらの前でロードバランサを使用する必要があります。MTA は、SpamAssassin サーバー用に 1 つのアドレスのみを持つよう設定されます。

SpamAssassin を配備する

次に示す手順を実行して、SpamAssassin を配備します。

SpamAssassin 設定の例

この節では、一般的な SpamAssassin 設定の例について説明します。


注 –

これらの例では、多数のオプションとキーワードを使用しています。表 14–1 および表 14–2 を参照してください。


Procedureスパムを個別のフォルダにファイリングするには

この例では、ローカルメッセージストアに届くメッセージをテストし、spam というフォルダ内にスパムをファイリングします。最初の 3 つのステップは任意の順序で実行できます。

手順
  1. SpamAssassin の設定ファイルを作成します。

    このファイルの名前と場所は、手順 2 で指定したものです。適切な名前は spamassassin.opt です。このファイルには、次に示す行が含まれます。


    host=127.0.0.1
    port=2000
    mode=0
    verdict=spam
    debug=1
                      

    host および port は、spamd が実行されているシステムの名前と、spamd が着信要求を待機するポートです。mode=0 は、メッセージがスパムとして認識された場合に、verdict によって指定された文字列が返されることを指定します。debug=1 は、SpamAssassin ライブラリでデバッグをオンにします。表 14–4 を参照してください。

  2. option.dat ファイルに、次に示す行を追加します。


    ! for Spamassassin
    spamfilter1_config_file=/opt/SUNWmsgsr/config/spamassassin.opt
    spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so
    spamfilter1_optional=1
    spamfilter1_string_action=data:,require "fileinto"; fileinto "$U";
                      

    spamfilter1_config_file は、SpamAssassin 設定ファイルを指定します。

    spamfilter1_library は、SpamAssassin 共有ライブラリを指定します。

    spamfilter1_optional=1 は、spamd による失敗があった場合に MTA が操作を続行することを指定します。

    spamfilter1_string_action は、スパムメッセージに対して実行する Sieve アクションを指定します。

    この例では、spamfilter1_string_action は必須ではありません。これは、デフォルト値があらかじめ data:,require "fileinto"; fileinto "$U"; であるためです。この行では、スパムメッセージがフォルダに送られることを指定しています。フォルダの名前は、SpamAssassin によって返されるスパム判定値です。SpamAssassin によって返される値は、spamassassin.optverdict オプションによって指定されます 。(手順 1 を参照。) この例では、フォルダ名は spam です。

  3. フィルタ処理するメッセージを指定します。

    ローカルメッセージストアに届くすべてのメッセージをフィルタ処理するには、ims-ms チャネルの destinationspamfilterXoptin spam キーワードを追加して imta.cnf ファイルを変更します。


    !
    ! ims-ms
    ims-ms defragment subdirs 20 notices 1 7 14 21 28 backoff "pt5m" "pt10m" 
    "pt30m" "pt1h"  "pt2h" "pt4h" maxjobs 4 pool IMS_POOL fileinto
    $U+$S@$D destinationspamfilter1optin spam
    ims-ms-daemon
  4. 設定をコンパイルしなおし、サーバーを再起動します。MTA を再起動するだけでかまいません。stop-msg を実行する必要はありません。


    # imsimta cnbuild
    # imsimta restart
    
  5. spamd デーモンを起動します。次の形式のコマンドを使用してこれを実行します。

    spamd -d

    spamd は、デフォルトではローカルシステムからの接続を受け入れるだけです。SpamAssassin と Messaging Server が別のシステム上で実行されている場合は、次の構文が必要です。

    spamd -d -i listen_ip_address -A allowed_hosts

    listen_ip_address は待機対象のアドレスであり、allowed_hosts はこの spamd インスタンスに接続できる、認証されたホストまたはネットワークのリスト (IP アドレスを使用) です。


    注 –

    -i listen_ip_address で 0.0.0.0 を設定すると、spamd にすべてのアドレスを待機させることができます。spamfilterX_verdict_ n を使用すると、システムの IP アドレスを変更したときにコマンドスクリプトを変更しなくても済むため、すべてのアドレスを待機することをお勧めします。


Procedureスパムメッセージに SpamAssassin スコアを含むヘッダーを追加する

この例では、SpamAssassin によってスパムであると判断された各メッセージに、ヘッダー Spam-test: 結果文字列 を追加しています。ヘッダーの例は次のとおりです。

Spam-test: True ; 7.3 / 5.0

Spam-test: はリテラルで、その後ろはすべて結果文字列です。True はそれがスパムであることを意味し、False はスパムではないことを意味します。7.3 は SpamAssassin スコアです。5.0 はしきい値です。この結果は、一定のスコアを超えたメールや一定のスコア間のメールをファイリングまたは破棄できる、Sieve フィルタを設定する場合に便利です。

また、USE_CHECK0 に設定すると、判定文字列とともに一致する SpamAssassin テストのリストが返されます。表 14–4 の USE_CHECK を参照してください。

手順
  1. フィルタ処理するメッセージを指定します。詳細は、「スパムを個別のフォルダにファイリングするには」手順 3 を参照してください。

  2. SpamAssassin の設定ファイルを作成します。

    このファイルの名前と場所は、spamfilter_configX_file で指定したものです (次の手順を参照)。このファイルには、次に示す行が含まれます。


    host=127.0.0.1
    port=2000
    mode=1
    field=
    debug=1
                      

    host および port は、spamd が実行されているシステムの名前と、spamd が着信要求を待機するポートです。mode=1 は、メッセージがスパムであると判明した場合に SpamAssassin の結果文字列が返されることを指定します。field= は、SpamAssassin の結果文字列のプレフィックスを指定します。この例では、プレフィックスは Sieve スクリプトで指定するため、必要ありません。debug=1 は、SpamAssassin ライブラリでデバッグをオンにします。

  3. option.dat ファイルに、次に示す行を追加します。


    !for Spamassassin
    spamfilte1r_config_file=/opt/SUNWmsgsr/config/spamassassin.opt
    spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so
    spamfilter1_optional=1
    spamfilter1_string_action=data:,require 
    ["addheader"];addheader "Spam-test: $U";
                      
    

    前に示した例と同様、最初の 3 つのオプションは、SpamAssassin 設定ファイル、共有ライブラリ、および、共有ライブラリで失敗があった場合に MTA 操作を続行することを指定します。そのあとに次の行が続いています。

    spamfilter1_string_action=data:,require ["addheader"];addheader "Spam-test: $U";

    この行は、スパムメッセージにヘッダーを追加することを指定します。ヘッダーには、リテラルプレフィックス Spam-text: と、そのあとに SpamAssassin が返す文字列が含まれます。前の手順で mode=1 を指定したため、SpamAssassin 結果文字列が返されます。例: True; 7.3/5.0

  4. 設定をコンパイルしなおし、サーバーを再起動して、spamd デーモンを起動します。

    「SpamAssassin 設定の例」を参照してください。

Procedure件名行に SpamAssassin の結果文字列を追加するには

SpamAssassin の結果文字列を件名行に追加することによって、ユーザーが SpamAssassin スコアを含むメッセージを読むかどうかを判断できます。例:

Subject: [SPAM True ; 99.3 / 5.0] Free Money At Home with Prescription Xanirex!

USE_CHECK0 に設定すると、判定文字列とともに一致する SpamAssassin テストのリストが返されます (「SpamAssassin オプション」「SpamAssassin オプション」を参照)。このリストは非常に長くなることがあるため、USE_CHECK1 に設定することをお勧めします。

手順
  1. フィルタ処理するメッセージを指定します。

    詳細は、「スパムを個別のフォルダにファイリングするには」手順 3 を参照してください。

  2. SpamAssassin の設定ファイルを作成します。

    この手順の詳細は、「スパムを個別のフォルダにファイリングするには」を参照してください。mode=1 は、メッセージがスパムであると判明した場合に SpamAssassin の結果文字列が返されることを指定します。


    host=127.0.0.1
    port=2000
    mode=1
    debug=1
                      

    host および port は、spamd が実行されているシステムの名前と、spamd が着信要求を待機するポートです。mode=1 は、メッセージがスパムであると判明した場合に SpamAssassin の結果文字列が返されることを指定します。debug=1 は、SpamAssassin ライブラリでデバッグをオンにします。

  3. option.dat ファイルに、次に示す行を追加します。


    !for Spamassassin
    spamfilter1_config_file=/opt/SUNWmsgsr/config/spamassassin.opt
    spamfilter1_library=/opt/SUNWmsgsr/lib/libspamass.so
    spamfilter1_optional=1
    spamfilter1_string_action=data:,addtag “[SPAM detected: $U]”;
                      
    

    前に示した例と同様、最初の 3 つのオプションは、SpamAssassin 設定ファイル、共有ライブラリ、および、共有ライブラリで失敗があった場合に MTA 操作を続行することを指定します。そのあとに次の行が続いています。

    spamfilter1_string_action=data:,addtag “[SPAM detected $U]”;

    この行は、 Subject: 行にタグを追加することを指定します。これには、リテラルプレフィックス SPAM detected が含まれ、そのあとに field 文字列 (デフォルトは Spam-Test)、そのあとに SpamAssassin によって返される [結果文字列] が含まれます。「SpamAssassin 設定の例」mode=1 を指定したため、SpamAssassin 結果文字列が返されます。したがって、件名行は次のようになります。

    Subject: [SPAM detected Spam-Test: True ; 11.3 / 5.0] Make Money!

    addheaderaddtag を併用することもできます。

    spamfilter1_string_action=data:,require ["addheader"];addtag "[SPAM detected $U]";addheader "Spamscore: $U";

    メッセージは次のようになります。

    Subject: [SPAM detected Spam-Test: True ; 12.3 / 5.0] Vigaro Now!Spamscore: Spam-Test: True ; 12.3 / 5.0

    spamassassin.optfield= を設定して、Spam-Test のデフォルト値を削除します。よりすっきりとしたメッセージが返されます。

    Subject: [SPAM True ; 91.3 / 5.0] Vigaro Now!Spamscore: True ; 91.3 / 5.0

  4. 設定をコンパイルしなおし、サーバーを再起動して、spamd デーモンを起動します。

    「スパムを個別のフォルダにファイリングするには」を参照してください。

SpamAssassin をテストする

SpamAssassin をテストするには、最初に spamassassion.opt ファイルに debug=1 を設定します。imta.cnf にあるチャネル固有の master_debug または slave_debug をオンにする必要はありません。そのあと、テストユーザーにテストメッセージを送信します。msg_svr_base/data/log/tcp_local_slave.log* ファイルには次のような行があるはずです。


15:15:45.44: SpamAssassin callout debugging enabled; config 
/opt/SUNWmsgsr/config/spamassassin.opt
15:15:45.44: IP address 127.0.0.1 specified
15:15:45.44: Port 2000 selected
15:15:45.44: Mode 0 selected
15:15:45.44: Field "Spam-Test: " selected
15:15:45.44: Verdict "spam" selected
15:15:45.44: Using CHECK rather than SYMBOLS
15:15:45.44: Initializing SpamAssassin message context
...
15:15:51.42: Creating socket to connect to SpamAssassin
15:15:51.42: Binding SpamAssassin socket
15:15:51.42: Connecting to SpamAssassin
15:15:51.42: Sending SpamAssassin announcement
15:15:51.42: Sending SpamAssassin the message
15:15:51.42: Performing SpamAssassin half close
15:15:51.42: Reading SpamAssassin status
15:15:51.67: Status line: SPAMD/1.1 0 EX_OK
15:15:51.67: Reading SpamAssassin result
15:15:51.67: Result line: Spam: False ; 1.3 / 5.0
15:15:51.67: Verdict line: Spam-Test: False ; 1.3 / 5.0
15:15:51.67: Closing connection to SpamAssassin
15:15:51.73: Freeing SpamAssassin message context

ログファイルにこのような行が含まれていない場合、または spamd が実行されていない場合は、SMTP サーバーに最後のピリオド (.) が送信されたあと、SMTP ダイアログに次のようなエラーメッセージが返されます。

452 4.4.5 Error writing message temporaries - Temporary scan failure: End message status = -1

また、option.datspamfilter1_optional=1 が設定 (強く推奨) されている場合、メッセージは受け入れられますがフィルタ処理は行われません。これはスパムのフィルタ処理が有効になっていないのと同じで、tcp_local_slave.log* に次の行が表示されます。


15:35:15.69: Creating socket to connect to SpamAssassin
15:35:15.69: Binding SpamAssassin socket
15:35:15.69: Connecting to SpamAssassin
15:35:15.69: Error connecting socket: Connection refused
15:35:15.72: Freeing SpamAssassin message context
         

SpamAssassin に対する呼び出しは、SMTP サーバーがメッセージ全体を受信したあと、つまり、最後の「.」が SMTP サーバーに送信されたあとで、SMTP サーバーが受け取ったメッセージの差出人に認識される前に行われます。

もう 1 つのテストは、たとえば Mail-SpamAssassin-2.60 ディレクトリから、sample-spam.txt を使ってサンプルのスパムメッセージを送信することです。このメッセージには、次のような特殊なテキスト文字列が含まれます。


XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

対応する tcp_local_slave.log* には、次のような内容が含まれます。


16:00:08.15: Creating socket to connect to SpamAssassin
16:00:08.15: Binding SpamAssassin socket
16:00:08.15: Connecting to SpamAssassin
16:00:08.15: Sending SpamAssassin announcement
16:00:08.15: Sending SpamAssassin the message
16:00:08.15: Performing SpamAssassin half close
16:00:08.15: Reading SpamAssassin status
16:00:08.43: Status line: SPAMD/1.1 0 EX_OK
16:00:08.43: Reading SpamAssassin result
16:00:08.43: Result line: Spam: True ; 1002.9 / 5.0
16:00:08.43: Verdict line: Spam-Test: True ; 1002.9 / 5.0
16:00:08.43: Closing connection to SpamAssassin
16:00:08.43: Mode 0 verdict of spam
16:00:08.43: Mode 0 verdict of spam
16:00:08.47: Freeing SpamAssassin message context

mail.log_current ファイルの対応するエントリは、次のようになります。宛先アドレスの +spam 部分は、メッセージが spam というフォルダにファイリングされることを示します。


15-Dec-2003 15:32:17.44 tcp_intranet ims-ms E 1 morchia@siroe.com rfc822;
morchia morchia+spam@ims-ms-daemon 15-Dec-2003 15:32:18.53 
ims-ms D 1 morchia@siroe.com rfc822;morchia morchia+spam@ims-ms-daemon

         

SpamAssassin オプション

この節では、SpamAssassin オプションの表を示します。

表 14–4 SpamAssassin オプション (spamassassin.opt)

オプション 

説明 

デフォルト 

debug

libspamass.so でデバッグをオンにするかどうかを指定します。spamd 自体のデバッグは、spamd を呼び出すコマンド行で制御されます。0 または 1 に設定します。

field

SpamAssassin の結果文字列のプレフィックスを指定します。SpamAssassin の結果は次のようになります。 

Spam-Test: False ; 0.0 / 5.0 Spam-Test: True ; 27.7 / 5.0

field オプションは、結果の Spam-Test 部分の変更方法を提供します。注意: 空の field 値が指定されると「:」が削除されます。

USE_CHECK が 0 に設定されている場合、結果の文字列は次のようになります。

Spam-test: False ; 0.3 / 4.5 ; HTML_MESSAGE,NO_REAL_NAME 

Spam-test: True ; 8.8 / 4.5 ; NIGERIAN_BODY, NO_REAL_NAME,PLING_PLING,RCVD_IN_SBL,SUBJ_ALL_CAPS 

“Spam-test” 

host

spamd が実行されているシステムの名前です。

localhost 

mode

SpamAssassin フィルタ結果から判定情報への変換を制御します。つまり、メッセージ処理後にどの判定情報を返すかを指定します。次の 4 種類のモードが使用可能です。詳細は、「SpamAssassin の mode オプション」を参照してください。

0 - メッセージがスパムメッセージの場合は、判定文字列 (verdict オプションで指定される文字列) を返します。MTA オプション spamfilterX_string_action を使用して、verdict 文字列が返された場合の処理を指定できます。あとで定義する verdict オプションが空である場合や指定されていない場合、メッセージがスパムメッセージのときは、NULL 判定を返します。MTA オプション spamfilterX_null_action を使用して、NULL 判定が返された場合の処理を指定できます。

スパムではない場合は、SpamAssassin のデフォルトの結果文字列を返します。デフォルトの判定とは、何のアクションもとらず通常どおり配信することを意味します。

1 - メッセージがスパムであると判明した場合は SpamAssassin の結果文字列を返します。スパムではない場合は、SpamAssassin のデフォルトの結果文字列を返します。デフォルトの判定とは、何のアクションもとらず通常どおり配信することを意味します。SpamAssassin の結果文字列は、次のように表示されます。True; 6.5 / 7.3

2 - モード 1 と同様。ただし、メッセージがスパムかどうかにかかわらず SpamAssassin の結果文字列が返される点で異なります。デフォルト判定または NULL 判定が返されることはなく、verdict オプションが使用されることはありません。

3 - メッセージがスパムであると判明した場合に SpamAssassin の結果文字列を返します。スパムではない場合は verdict オプションで指定された verdict 文字列を返します。SpamAssassin 結果文字列に対するアクションを制御するには、spamfilterX_verdict_ n オプションと spamfilterX_action_n オプションの一致ペアを使用します。verdict 文字列に対するアクションを制御するには、spamfilterX_string_action を使用します。

port

spamd が着信要求を待機するポート番号を指定します。

783 

USE_CHECK

1 - spamd CHECK コマンドを使って SpamAssassin スコアを返します。

0 - SYMBOLS コマンドを使って一致する SpamAssassin テストのスコアとリストを返すことができます。2.55 以前のバージョンの SpamAssassin でこのオプションを使うと、システムがハングアップしたりその他の問題が発生することがあります。前述の field を参照してください。

 

SOCKS_HOST

文字列です。中間にある SOCKS サーバーの名前を指定します。このオプションが指定されている場合、指定された SOCKS サーバーを介して ICAP 接続が確立され、直接には接続されません。 

"" 

SOCKS_PORT

中間にある SOCKS サーバーが動作しているポートを指定します。 

1080 

SOCKS_PASSWORD

SOCKS サーバーを介した接続を確立するために使用するパスワード (文字列) を指定します。ユーザー名およびパスワードが必要かどうかは、SOCKS サーバーの設定によって異なります。 

"" 

SOCKS_USERNAME

SOCKS サーバーを介した接続を確立するために使用するユーザー名 (文字列) を指定します。 

"" 

verdict

MODE 0 で使用される判定文字列を指定します。 

“” 

SpamAssassin の mode オプション

メッセージの処理後、SpamAssassin はメッセージがスパムかどうかを判定します。mode オプションを使用すると、判定を示すために返す文字列を指定できます。文字列の選択肢は、NULL、デフォルト、SpamAssassin の結果文字列、または verdict オプションで指定された verdict 文字列です。デフォルトの文字列とは、NULL、SpamAssassin の結果文字列、または verdict で指定された文字列ではなく、その他の設定不可能な結果文字列です。mode の動作の概要を次の表で説明します。

表 14–5 SpamAssassin の mode オプションに対応して返される文字列

verdict の設定

スパムかどうか 

mode=0

mode=1

mode=2

mode=3

verdict="" (設定なし)

はい 

NULL 

SpamAssassin の結果 

SpamAssassin の結果 

SpamAssassin の結果 

いいえ 

デフォルト 

デフォルト 

SpamAssassin の結果 

デフォルト 

verdict=文字列

はい 

verdict 文字列

SpamAssassin の結果 

SpamAssassin の結果 

SpamAssassin の結果 

いいえ 

デフォルト 

デフォルト 

SpamAssassin の結果 

verdict 文字列

1 列目は、verdict オプションが設定されているかどうかを示します。2 列目は、メッセージがスパムかどうかを示します。mode の列は、各モードに対応して返される文字列を示します。たとえば、verdict が設定されておらず mode が 0 に設定されている場合、メッセージがスパムでなければデフォルト文字列が返されます。verdictYO SPAM! に設定されていて mode が 0 に設定されている場合、メッセージがスパムであれば YO SPAM! が返されます。

Symantec Anti-Virus Scanning Engine (SAVSE) を使用する

SAVSE の配備方法以外にも、この節には、ほかの ICAP 対応の スパム防止/ウィルス防止プログラムを配備する際に有効な情報が含まれています。この節には、次の項があります。

SAVSE の概要

SAVSE は、ウィルススキャンサービスを提供する TCP/IP サーバーアプリケーションおよび通信用のアプリケーションプログラミングインタフェース (API) です。ネットワークインフラストラクチャー機器を通して提供されたり、これらの機器に保存されるトラフィックを保護するために設計されています。モバイルコードや圧縮ファイル形式も含め、すべての主要なファイル形式でウィルス、ワーム、およびトロイの木馬を検出し、これらから保護します。詳細については、Symantec の Web サイトを参照してください。


注 –

Messaging Server の現在のバージョンでは、SAVSE のスキャン機能だけがサポートされています。修復機能や削除機能はサポートされていません。


SAVSE の要件と使用法の考慮

これは Symantec から単独でライセンス許可された製品です。

SAVSE の構成では、スキャンモードだけがサポートされています。スキャンと修復、スキャンと削除のモードはサポートされていません。

SAVSE を実行する場所

SAVSE、または ICAP をサポートするほかのサーバーは、それ自体が置かれている個々のシステム上、単一のシステム配備の Messaging Server と同じシステム上、または 2 層配備の MTA と同じシステム上で実行できます。MTA とメッセージストア間で Local Mail Transfer Protocol (LMTP) が使われている場合、フィルタ処理は MTA から呼び出す必要があります。メッセージストアから呼び出すことはできません。MTA とメッセージストア間で SMTP が使われている場合は、いずれか一方から呼び出すことができ、いずれかのシステムか 3 つ目の別のシステムで実行できます。

SAVSE を実行するサーバーのファームを使用する場合は、それらの前でロードバランサを使用する必要があります。MTA は、SpamAssassin サーバー用に 1 つのアドレスのみを持つよう設定されます。

SAVSE を配備する

次に示す手順を実行して、SAVSE を配備します。

SAVSE の設定例

次の例では、ローカルメッセージストアに届くメッセージをテストして、ウィルスを含むメッセージを破棄します。最初の 3 つのステップは任意の順序で実行できます。

ProcedureSAVSE を設定するには

手順
  1. SAVSE の設定ファイルを作成します。

    このファイルの名前と場所は、次の手順で指定します。ここでは、SAVSE.opt という名前を使用します。このファイルの設定例を次に示します。


    host=127.0.0.1
    port=1344
    mode=0
    verdict=virus
    debug=1
                      

    host および port は、SAVSE プログラムが実行されているシステムの名前と、SAVSE プログラムが受信要求を待機するポート (SAVSE のデフォルトは 1344) です。mode=0 は、メッセージがウィルスを含んでいると認識された場合に、verdict によって指定された文字列 (この例の場合は virus という単語) が返されることを指定します。debug=1 はデバッグをオンにします。ICAP 設定パラメータについては、「SAVSE オプション」を参照してください。

  2. option.dat ファイルを作成します。次に例を示します。


    ! for Symantex Anti-virus Scan Engine
    spamfilter1_config_file=/opt/SUNWmsgsr/config/SAVSE.opt
    spamfilter1_library=/opt/SUNWmsgsr/lib/libicap.so
    spamfilter1_optional=1
    spamfilter1_string_action=data:,discard
                      

    spamfilter1_config_files は、SAVSE 設定ファイルを指定します。

    spamfilter1_library は、SAVSE 共有ライブラリの場所を指定します。

    spamfilter1_optional=1 は、SAVSE プログラムによる失敗があった場合に MTA が操作を続行することを指定します。

    spamfilter1_string_action は、スパムメッセージに対して実行する Sieve アクションを指定します。この値は、ウィルスを含むメッセージが破棄されるように指定します。これはデフォルト値なので、値を変更する場合を除き、指定する必要はありません。

  3. フィルタ処理するメッセージを指定します。

    ローカルメッセージストアに届くすべてのメッセージをフィルタ処理するには、ims-ms チャネルの destinationspamfilter1optin spam を追加して imta.cnf ファイルを変更します。


    !
    ! ims-ms
    ims-ms defragment subdirs 20 notices 1 7 14 21 28 backoff "pt5m" "pt10m"
    "pt30m" "pt1h"  "pt2h" "pt4h" maxjobs 4 pool IMS_POOL fileinto
    $U+$S@$D destinationspamfilter1optin virus
    ims-ms-daemon
  4. 設定をコンパイルしなおし、サーバーを再起動します。MTA を再起動するだけでかまいません。stop-msg を実行する必要はありません。


    # imsimta cnbuild
    # imsimta restart
    
  5. SAVSE が起動していることを確認します。

    自動的に起動しているはずですが、起動していない場合は、次のような起動コマンドを使用します。/etc/init.d/symcscna start

ほかの使用可能な設定

mode0 に設定して spamfilterX_null_option とともに使用すると、メッセージがスパムであると判明した場合に特定のフォルダにメッセージをファイリングするなど、ほかのアクションを実行できます。例:

spamfilter1_null_option=data:,require "fileinto"; fileinto "VIRUS";

感染したメッセージをフォルダにファイリングすることは、ほとんどの場合不適切です。

mode を 1 に設定すると、アクションを起動できます。たとえば、mode を 1 に設定して、MTA の spamfilterX_string_action オプションを次のように設定すると、スパムの結果を拒否メッセージに含めることができます。

spamfilter1_string_action=data:,require "reject"; reject "Message contained a virus [$U]";

reject アクションはウィルスを差出人に送り返すため、fileinto と同様、このアクションを使用してウィルスを処理する方法は不適切です。

option.dat ファイルに行を追加して、スパムメッセージのヘッダーにタグを追加することもできます。次に例を示します。

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

mode2 に設定すると、メッセージにウィルスが含まれると判定されるかどうかにかかわらず、アクションを実行できます。あとでテストできるヘッダーフィールドが追加されているところは、明らかに mode 2 のアプリケーションです。

spamfilterX_string_action=data:,require ["addheader"];addheader "$U"

SAVSE オプション

SAVSE オプションファイルは実際に、かなり一般的な ICAP オプションファイルです。オプションファイルの名前および場所は、option.datspamfilterX_config_file で設定されています。SAVSE オプションファイルは、option=value という形式の行から構成されています。HOST というオプションが 1 つ必要です。このオプションは、ICAP フィルタ処理サーバーが動作しているシステムの名前に設定する必要があります。ICAP サーバーがローカルホストで動作していても、このオプションを設定する必要があります。SAVSE オプションファイルを次に示します。

表 14–6 ICAP オプション

オプション 

説明 

デフォルト 

debug

ICAP インタフェースモジュールからのデバッグ出力を有効または無効にします。0 または 1 です。 

field

ICAP の結果のプレフィックスを指定します。SAVSE の結果文字列は次のようになります。 

Virus-Test: False Virus-Test: True; W32.Mydoom.A@mm.enc

このオプションは、結果の Virus-Test: 部分の変更方法を提供します。注意: 空の field 値が指定されると「:」が削除されます。

Virus-Test: 

host

ICAP フィルタ処理サーバーが動作しているシステムの名前です。 

localhost 

mode

ICAP フィルタ結果から判定情報への変換を制御します。つまり、メッセージ処理後に返す文字列情報を指定します。次の 4 種類のモードが使用可能です。詳細は、「ICAP の mode オプション」を参照してください。

0 - メッセージにウィルスが含まれる場合は、判定文字列 ( verdict オプションで指定される文字列) を返します。MTA オプション spamfilterX_string_action を使用して、verdict 文字列が返された場合の処理を指定できます。verdict オプションが空である場合や設定されていない場合は、NULL 判定を返します。MTA オプション spamfilterX_null_action を使用して、NULL 判定が返された場合に、メッセージを破棄するデフォルトアクションを置き換えるときの処理を指定できます。

メッセージにウィルスが含まれていない場合は、デフォルトの文字列が返されます。デフォルトの文字列とは、設定不可能な文字列で、何のアクションもとらず通常どおり配信することを意味します。 

1 - メッセージにウィルスが含まれていると判明した場合は ICAP の結果文字列を返します。メッセージにウィルスが含まれていない場合は、デフォルトの文字列が返されます。デフォルトの文字列とは、何のアクションもとらず通常どおり配信することを意味します。以下に、ICAP 結果文字列の例を 2 つ示します。

VIRUS TEST: FALSEVIRUS-TEST: TRUE; W32.Mydoom.A@mm.enc

2 - ICAP 結果文字列を無条件に返します。デフォルト判定または NULL 判定が返されることはなく、verdict オプションが使用されることはありません。この設定は、メッセージにウィルスが含まれると判定されるかどうかにかかわらず、アクションを実行する必要がある場合を対象にしています。あとでテストできるヘッダーフィールドが追加されているところは、明らかに mode 2 のアプリケーションです。

spamfilterX_string_action=data:,require ["addheader"];addheader "$U"

3 - メッセージにウィルスが含まれていると判明した場合は ICAP の結果文字列を返します。ウィルスが含まれていない場合は verdict オプションで指定された verdict 文字列を返します。この設定は、ウィルスが発見されたらある 1 つのアクションを実行し、発見されなかったら別のアクションを実行する必要がある場合を対象としています。ICAP 結果文字列に対するアクションを制御するには、spamfilterX_verdict_ n オプションと spamfilterX_action_n オプションの一致ペアを使用します。verdict 文字列に対するアクションを制御するには、spamfilterX_string_action を使用します。

port

ICAP サーバーが動作しているポート番号を指定します。

1344 

SOCKS_HOST

文字列です。中間にある SOCKS サーバーの名前を指定します。このオプションが指定されている場合、指定された SOCKS サーバーを介して ICAP 接続が確立され、直接には接続されません。 

"" 

SOCKS_PORT

整数です。中間にある SOCKS サーバーが動作しているポートを指定します。 

1080 

SOCKS_PASSWORD

文字列です。SOCKS サーバーを介した接続を確立するために使用するパスワードを指定します。ユーザー名およびパスワードが必要かどうかは、SOCKS サーバーの設定によって異なります。 

"" 

SOCKS_USERNAME

文字列です。SOCKS サーバーを介した接続を確立するために使用するユーザー名を指定します。 

"" 

verdict

MODE 0 および 3 で使用される判定文字列を指定します。 

"" 

ICAP の mode オプション

メッセージの処理後、ICAP ウィルス防止プログラムは SASVE と同様に、メッセージにウィルスが含まれているかどうかを判定します。mode オプションを使用すると、この判定を示すために ICAP プログラムから返す文字列を指定できます。文字列の選択肢は、 NULLデフォルトICAP の結果文字列、または verdict オプションで指定された verdict 文字列 です。デフォルトの文字列とは、NULL、ICAP の結果文字列、または verdict で指定された文字列ではなく、プログラムによって返されるその他の設定不可能な文字列です。mode の動作の概要を次の表で説明します。

表 14–7 ICAP の mode オプションに対応して返される判定文字列

verdict の設定

ウィルスかどうか 

mode=0

mode=1

mode=2

mode=3

verdict="" (設定なし)

はい 

NULL 

ICAP の結果 

ICAP の結果 

ICAP の結果 

いいえ 

デフォルト 

デフォルト 

ICAP の結果 

デフォルト 

verdict=文字列

はい 

verdict 文字列

ICAP の結果 

ICAP の結果 

ICAP の結果 

いいえ 

デフォルト 

デフォルト 

ICAP の結果 

verdict 文字列

1 列目は、verdict オプションが設定されているかどうかを示します。2 列目は、メッセージにウィルスが含まれているかどうかを示します。mode の列は、各モードに対応して返される文字列を示します。たとえば、verdict が設定されておらず mode が 0 に設定されている場合、メッセージにウィルスが含まれていなければ、ICAP プログラムからデフォルト文字列が返されます。verdictWARNING VIRUS! に設定されていて mode が 0 に設定されている場合、メッセージにウィルスが含まれていれば、ICAP プログラムから WARNING VIRUS! という文字列が返されます。

Sieve 拡張のサポート

標準の Sieve 機能以外にも、Messaging Server は多くの拡張機能を提供します。拡張機能には addheaderaddtagspamtestspamadjust などがあります。addheader addtag については、「スパムメッセージに SpamAssassin スコアを含むヘッダーを追加する」および 「件名行に SpamAssassin の結果文字列を追加するには」を参照してください。ここでは、spamtest と spamadjust について説明します。

これらの拡張は、管理者に、別のしきい値を設定する機能と、SpamAssassin の判定を無効にするホワイトリストを設定する機能を提供します。この 2 つの拡張を組み合わせて、特定のメッセージの差出人に応じて別のしきい値を持つようにすることもできます。spamadjust は非標準のアクションです。spamtest については、ftp://ftp.isi.edu/in-notes/rfc3685.txt を参照してください。

spamtest を使用して、Sieve [RELATIONAL] 拡張を使った特定の値に対する SpamAssassin スコアを、 "i;ascii-numeric" 比較子と比較することができます。SpamAssassin スコアは通常は実数ですが、spamtest は、最初にスコアを近似整数に丸めることで、スコアを 0 から 10 の整数値にします。0 未満の値は強制的に 0 になり、10 を超える値は強制的に 10 になります。最後に、Messaging Server が維持するテキスト文字列が付加されて、spamtest が示すテスト文字列が生成されます。

spamadjust は、現在のスパムスコアの調整に使われます。このアクションは、実際の数値に対してスキャンされる単一の文字列引数をとります。この値が現在のスパムスコアの調整に使われます。また、文字列全体も現在のスコアテキスト文字列に付加されます。次の例では、この文字列は “undisclosed recipients” です。

複数の spamadjust アクションを指定でき、それぞれが現在のスコアに追加されます。また、スコア値は常に 0 で始まります。符号付き数値を指定でき、現在のスコアを小さくしたり大きくしたりできます。spamadjust に対する require 句はなく、代わりに spamtest 拡張を列挙する必要があります。

たとえば、SpamAssassin の MODE を 2 に設定した spamadjust を使用すると、次のようになります。

spamfilterX_string_action=data:,require ["spamtest"];spamadjust "$U";

システムレベルの Sieve フィルタは、特定のタイプのヘッダーをチェックし、それが見つかった場合は SpamAssassin スコアに 5 を追加することによって、SpamAssassin を変更します。


spamfilter1_string_action=require "spamtest";  \
if header :contains ["to", "cc", "bcc", "resent-to", "resent-cc", \
   "resent-bcc"]  ["<undisclosed recipients>", "undisclosed.recipients"]  \
{spamadjust "+5 undisclosed recipients";}

最後に、ユーザーレベルの Sieve スクリプトは、結果を示す値のテスト、スパムであることが確実なメッセージの破棄、スパムと思われるメッセージのファイリング、ローカルドメインのアドレスからのメッセージ通過の許可を行うことができます。


spamfilter1_string_action=require ["spamtest", "relational",  \
"comparator-i;ascii-numeric", "fileinto"];                   \
if anyof (address :matches "from" ["*@siroe.com",            \
                                   "*@*.siroe.com"])         \
    {keep;}                                                  \
elsif spamtest :value "ge" :comparator "i;ascii-numeric" "8" \
    {discard;}                                               \
elsif spamtest :value "ge" :comparator "i;ascii-numeric" "5" \
    {fileinfo "spam-likely";}                                \
else                                                         \
   {keep;}