FuzzyOcrPluginを入れてみる

このところ、うちのドメインを騙って送られたspamの弾かれた奴が戻ってくるのが目に付くようになってるんだけど、その中に画像付きの奴がいくつか見られるのと、ふつーに送られてくるspamの中にも画像付きの奴が来、ちらほら。
なので「対策をしてみよう!」ということで、SpamAssassinの機能を拡張するためのPlugin、FuzzyOcrPluginを入れてみた。

まずは、前準備と言うことで、FuzzyOcrを動かすための前提となるパッケージからインストール。
Debianの場合(ただしEtchsid)、Operating System specific notesを見ると


# apt-get install netpbm gifsicle libungif-bin gocr ocrad
# apt-get install libstring-approx-perl

を実行しろと書いてあるので、その通りに実行すれば、依存関係上必要なものも一発でインストール完了。

続いて、FuzzyOcrのパッケージを、wgetとかで適当なところにダウンロードして、解凍。ドキュメントに従って、FuzzyOcr.cfFuzzyOcr.pm/etc/mail/spamassassinの下にコピー。

# tar xvfz fuzzyocr-3.4.2-devel.tar.gz
# cd FuzzyOcr-3.4.2/
# cp -p FuzzyOcr.* /etc/mail/spamassassin/

あとは、/etc/mail/spamassassin/FuzzyOcr.cfを必要に応じて修正すればいいんだけど、基本的には弄る必要はないみたい。
ただ、ログファイルを/etc以下に置くのも何なので、ログの出力先に関する設定を下の通りに変更。

# diff -u ~/FuzzyOcr-3.4.2/FuzzyOcr.cf /etc/mail/spamassassin/FuzzyOcr.cf
--- /root/FuzzyOcr-3.4.2/FuzzyOcr.cf    2006-11-11 21:27:33.000000000 +0900
+++ /etc/mail/spamassassin/FuzzyOcr.cf  2006-12-09 20:32:25.000000000 +0900
@@ -18,6 +18,7 @@
 #
 # Logfile (make sure it is writable by the plugin) (Default value: NONE)
 #focr_logfile /etc/mail/spamassassin/FuzzyOcr.log
+focr_logfile /var/log/FuzzyOcr.log
 ##########################
 ##### Wordlists #####

で、あとはspamassassinの再起動でOKなはずなんだけど、うちの環境では、

Dec  9 20:42:16 eswat2 spamd[1039]: Can't locate MLDBM.pm in @INC (@INC contains: lib ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4) at /etc/spamassassin/FuzzyOcr.pm line 17.
Dec  9 20:42:16 eswat2 spamd[1039]: plugin: failed to parse plugin /etc/spamassassin/FuzzyOcr.pm: Can't locate MLDBM.pm in @INC (@INC contains: lib ../lib /usr/share/perl5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4) at /etc/spamassassin/FuzzyOcr.pm line 17.

と「MLDBM.pmがない」と/var/log/mail.infoに出力されるので、改めて

# aptitude install libmldbm-perl

を実行して、MLDBM.pmをインストール後にspamassassinを再起動。
あとは、FuzzyOcrのアーカイブに一緒に入っているsampleディレクトリ以下のテストファイルをspamassassinに喰わせてみて、出力の中に

X-Spam-Status: Yes, score=20.6 required=5.0 tests=DATE_IN_PAST_06_12,
        EXTRA_MPART_TYPE,FUZZY_OCR,HTML_MESSAGE autolearn=no version=3.1.7

とか

Content analysis details:   (20.6 points, 5.0 required)
 pts rule name              description
---- ---------------------- --------------------------------------------------
 0.8 EXTRA_MPART_TYPE       Header has extraneous Content-type:...type= entry
 0.7 DATE_IN_PAST_06_12     Date: is 6 to 12 hours before Received: date
 0.0 HTML_MESSAGE           BODY: HTML included in message
  19 FUZZY_OCR              BODY: Mail contains an image with common spam text inside
                            Words found:
                            "meridia" in 1 lines
                            "target" in 1 lines
                            "charts" in 1 lines
                            "symbol" in 1 lines
                            "stock" in 2 lines
                            "company" in 3 lines
                            "alert" in 4 lines
                            "trade" in 1 lines
                            "manufacture" in 2 lines
                            "xanax" in 1 lines
                            (17 word occurrences found)

というのが見つかれば正常に動作してます。

ただ、テストしたときに感じたんだけど、画像中をチェックするだけに、サーバへの負荷は大きそう。幸いにしてうちはメールの量もさほど多くないので、問題にはならないと思うけど・・・・。

トラックバック(0)

コメントする