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

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 デーモンを起動します。

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