2010年5月12日水曜日

(FreeBSD) portupgradeしたら、SpamAssassinのspamdが起動しなくなって焦る

先日、portsのmail/p5-Mail-SpamAssassinをportupgradeしたら、spamdが起動しなくなっちゃいまして、少々焦りました。



ログを見たら、「sa-updateを実行したか?」 みたいなことが書かれていたので、言われたとおり、sa-updateを実行したところ、無事、spamdが起動しました。あ~よかった。



あとになってSpamAssassinのドキュメントをチェックしたら、ちゃんと書いてありますね。



Note for Users Upgrading to SpamAssassin 3.3.0
-----------------------------------------------



- Rules are no longer included with SpamAssassin "out of the box".  You will
  need to immediately run "sa-update", or download the additional rules .tgz
  package and run "sa-update --install" with it, to get a ruleset.



ルールファイルは、SpamAssassinとは分離されたので、sa-updateコマンドでインストールしてね! っていうわけですか。



FreeBSDのportsで表示するメッセージでも、そのことを表示して欲しい・・・あ~・・・なんかそれ以外にもいろいろ書いてありますね・・・書ききれないくらいに。



まあフリーウェアを使う以上は、自己責任ですね。





ちなみに、portsでは、mail/spamass-rulesってのがあります。うっかり、「なるほど!これをインストールすればいいんだな」と、早とちりして、1時間くらい悩みました。



こっちは、追加ルールファイルですね。



うちでは、これを使ったら誤判定が増えた気がするので(非スパムを、スパムと判定)、1日でpkg_deleteしました。





sa-updateについても、1つ、よくわからないことがありました。



ファイアーウォールがあって、直接、インターネットに接続できない環境でsa-updateを実行すると、どうしても、ルールファイルをダウンロードできません。
sa-updateは、http proxyにも対応していると、ドキュメントに書かれているのにおかしいな~と。



sa-update -v -D してみると、こんなログが見えます。これは失敗したとき。



channel: attempting channel updates.spamassassin.org
channel: update directory /var/db/spamassassin/3.003001/updates_spamassassin_org
channel: channel cf file /var/db/spamassassin/3.003001/updates_spamassassin_org.cf
channel: channel pre file /var/db/spamassassin/3.003001/updates_spamassassin_org.pre
channel: metadata version = 923114
dns: query failed: 1.3.3.updates.spamassassin.org => NOERROR
dns: query failed: mirrors.updates.spamassassin.org => NOERROR
assassin.org' record found, channel failed
diag: updates complete, exiting with code 4
Update failed, exiting with code 4



なんだか、DNSを引きに行ってます。どうやら、ダウンロードするファイル名を求めるのに、DNSを使っているようです。なぜ、そんなことを?!



こんな感じのDNSクエリをするらしいです。1.3.3は、version 3.3.1をひっくり返したもの?



% dig 1.3.3.updates.spamassassin.org TXT



; <<>> DiG 9.4.3-P2 <<>> 1.3.3.updates.spamassassin.org TXT
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26530
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 0



;; QUESTION SECTION:
;1.3.3.updates.spamassassin.org.        IN      TXT



;; ANSWER SECTION:
1.3.3.updates.spamassassin.org. 2929 IN TXT     "932302"



直接インターネットへアクセスでいる環境でsa-update -v -Dしてみた場合



channel: attempting channel updates.spamassassin.org
channel: update directory /var/db/spamassassin/3.003001/updates_spamassassin_org
channel: channel cf file /var/db/spamassassin/3.003001/updates_spamassassin_org.cf
channel: channel pre file /var/db/spamassassin/3.003001/updates_spamassassin_org.pre
channel: metadata version = 932302
dns: 1.3.3.updates.spamassassin.org => 932302, parsed as 932302
channel: current version is 932302, new version is 932302, skipping channel
diag: updates complete, exiting with code 1
Update finished, no fresh updates were available



という感じ。しかも、



% head -1 /var/db/spamassassin/3.003001/updates_spamassassin_org.cf
# UPDATE version 932302



というわけで、「932302」というのが、ルールファイルのバージョン番号ということですか。なるほど。





以上のように、ファイルをダウンロードする前に、まずDNSを見に行ってしまう仕組みになっているために、、http proxyは使えても、DNSは使えない、という環境では、sa-updateは失敗してしまうのでした。



http://spamassassin.apache.org/
の「Download」というリンクの先に行くと、

SpamAssassin sa-update rules tarball, for use if you cannot run sa-update to download these automatically after installing. (signatures: GPG MD5 SHA1)

というのがあるので、そこからファイルをダウンロードできるようになっています。



ただし、ミラーサイトの中には「ハズレ」もあって、ファイルが無かったサイトもありました。



昨日(2010/05/10)試したときは、この3つのファイルがダウンロードできました。

Mail-SpamAssassin-rules-3.3.1.r923114.tgz
Mail-SpamAssassin-rules-3.3.1.r923114.tgz.asc
Mail-SpamAssassin-rules-3.3.1.r923114.tgz.sha1



あとは、こんな感じで、*.tgzファイルからインストールしてくれました。



# sa-update --install /ダウンロード場所/Mail-SpamAssassin-rules-3.3.1.r923114.tgz



インストールされたルールファイルはこちら。



# ls /var/db/spamassassin/3.003001/
updates_spamassassin_org        updates_spamassassin_org.cf



# ls /var/db/spamassassin/3.003001/updates_spamassassin_org/
10_default_prefs.cf                     25_replace.cf
20_advance_fee.cf                       25_spf.cf
20_aux_tlds.cf                          25_textcat.cf
20_body_tests.cf                        25_uribl.cf
20_compensate.cf                        30_text_de.cf
20_dnsbl_tests.cf                       30_text_fr.cf
20_drugs.cf                             30_text_it.cf
20_dynrdns.cf                           30_text_nl.cf
20_fake_helo_tests.cf                   30_text_pl.cf
20_freemail.cf                          30_text_pt_br.cf
20_freemail_domains.cf                  50_scores.cf
20_head_tests.cf                        60_adsp_override_dkim.cf
20_html_tests.cf                        60_awl.cf
20_imageinfo.cf                         60_shortcircuit.cf
20_meta_tests.cf                        60_whitelist.cf
20_net_tests.cf                         60_whitelist_dkim.cf
20_phrases.cf                           60_whitelist_spf.cf
20_porn.cf                              60_whitelist_subject.cf
20_ratware.cf                           72_active.cf
20_uri_tests.cf                         72_scores.cf
20_vbounce.cf                           STATISTICS-set0-72_scores.cf.txt
23_bayes.cf                             STATISTICS-set1-72_scores.cf.txt
25_accessdb.cf                          STATISTICS-set2-72_scores.cf.txt
25_antivirus.cf                         STATISTICS-set3-72_scores.cf.txt
25_asn.cf                               languages
25_dcc.cf                               local.cf
25_dkim.cf                              regression_tests.cf
25_hashcash.cf                          sa-update-pubkey.txt
25_pyzor.cf                             user_prefs.template

25_razor2.cf



ちなみに、portsのspamass-rulesでのインストール先は、/usr/local/etc/mail/spamassassin/ でした。



# ls /usr/local/etc/mail/spamassassin/
20_dnsbl_ahbl.cf                bogus-virus-warnings.cf
70_sare_adult.cf                chickenpox.cf
70_sare_bayes_poison_nxm.cf     evilnumbers.cf
70_sare_genlsubj0.cf            init.pre
70_sare_header0.cf              init.pre.sample
70_sare_html0.cf                local.cf
70_sare_obfu0.cf                local.cf.sample
70_sare_oem.cf                  mangled.cf
70_sare_random.cf               mime_validate.cf
70_sare_specific.cf             random.cf
70_sare_spoof.cf                sa-update-keys
70_sare_stocks.cf               v310.pre
70_sare_unsub.cf                v310.pre.sample
70_sare_uri0.cf                 v312.pre
72_sare_bml_post25x.cf          v312.pre.sample
72_sare_redirect_post3.0.0.cf   v320.pre
99_FVGT_Tripwire.cf             v320.pre.sample
99_sare_fraud_post25x.cf        v330.pre
airmax.cf                       v330.pre.sample
backhair.cf                     weeds.cf





こんなかんじで、1~2時間ほど、ドタバタしてしまいました。



0 件のコメント:

コメントを投稿