デフォルトとサードパーティとあるようで、色々試してみましょう。
デフォルトでは以下のものがインストールされてます。
デフォルト | プラグイン名 |
---|
× | ASN.pm |
○ | AWL.pm |
× | AccessDB.pm |
× | AntiVirus.pm |
○ | AutoLearnThreshold.pm |
○ | Bayes.pm |
○ | BodyEval.pm |
× | BodyRuleBaseExtractor.pm |
○ | Check.pm |
× | DCC.pm |
× | DKIM.pm |
○ | DNSEval.pm |
× | DomainKeys.pm |
○ | HTMLEval.pm |
○ | HTTPSMismatch.pm |
○ | Hashcash.pm |
○ | HeaderEval.pm |
○ | ImageInfo.pm |
○ | MIMEEval.pm |
○ | MIMEHeader.pm |
× | OneLineBodyRuleType.pm |
○ | Pyzor.pm |
○ | Razor2.pm |
× | RelayCountry.pm |
○ | RelayEval.pm |
○ | ReplaceTags.pm |
× | Rule2XSBody.pm |
○ | SPF.pm |
× | Shortcircuit.pm |
○ | SpamCop.pm |
× | Test.pm |
× | TextCat.pm |
○ | URIDNSBL.pm |
○ | URIDetail.pm |
○ | URIEval.pm |
○ | VBounce.pm |
○ | WLBLEval.pm |
○ | WhiteListSubject.pm |
本家で公開しているサードパーティ製プラグイン一覧
http://wiki.apache.org/spamassassin/CustomPlugins
GoogleSafeBrowsing
Google APIを使ったプラグインで、メール本文のURLやメールアドレスを
GoogleSafeBrowseで検証して、スコアをつけるらしいです。
インストール
perl -MCPAN -e shell cpan[1]> install Net::Google::SafeBrowsing::Blocklist cpan[2]> install Net::Google::SafeBrowsing::UpdateRequest cpan[3]> install Mail::SpamAssassin::Plugin::GoogleSafeBrowsing
他にも依存するものがあるかもしれません。
起動時のメッセージを見て足りないものは適宜追加してください。
設定
http://code.google.com/apis/safebrowsing/key_signup.html
ここでAPIキーを取得します。
/usr/local/sbin/gsb-update
#!/bin/sh #APIKEY=取得したAPIキー for LIST in goog-black-hash goog-malware-hash; do blocklist_updater --apikey "$APIKEY" --blocklist $LIST --dbfile /var/cache/spamassassin/${LIST}-db done
シェルを実行させる
chmod 755 /usr/local/sbin/gsb-update crontab -e */20 * * * * /usr/local/sbin/gsb-update >/dev/null 2>&1
/etc/mail/spamassassin/init.pre(以下を追加)
# GoogleSafeBrowsing
# loadplugin Mail::SpamAssassin::Plugin::GoogleSafeBrowsing
/etc/mail/spamassassin/local.cf(以下を追加)
# Google Safe Browsing google_safebrowsing_dir /var/cache/spamassassin google_safebrowsing_apikey 取得したAPIキー google_safebrowsing_blocklist goog-black-hash 0.2 google_safebrowsing_blocklist goog-malware-hash 0.1
エラーが無いか確認して見ましょう。
spamassassin -D --lint ~~~ dbg: plugin: loading Mail::SpamAssassin::Plugin::GoogleSafeBrowsing from @INC dbg: logger: adding facilities: GoogleSafeBrowsing dbg: GoogleSafeBrowsing: Spam score for message: 0 ~~~
あたりが出てればOKです。
後はspamdを再起動してログを確認しておしまいです。
URLを含んだメールを受信したときにはこんな感じで記録されます。
GoogleSafeBrowsing: URI: 'http://www.example.com/', blocklist: goog-malware-hash, match: '(none)' GoogleSafeBrowsing: URI: 'http://www.example.com/', blocklist: goog-black-hash, match: '(none)'
FuzzyOcr
画像Spam対策のためのプラグインです。
対応しているのはgif(アニメーション含む)/jpg/pngで
ハッシュ機能を備えています。
ただし、日本語に対応しているかは未検証です。
3.3.0ではエラーをはいてしまい使えなくなっています。
利用するには次のツールが入っていることが前提となります。
- NetPBM
- GifSicle
- GifLib/Libungif
- Ocrad 又は Gocr
Perlモジュール
- String::Approx
- Time::HiRes
- MLDBM (オプション)
- MLDBM::Sync( オプション)
- Log::Agent (オプション)
- DBD::Mysql (オプション)
ここでのPerlモジュールも起動時に足りないものがあれば適宜追加してください。
インストール
cd /usr/local/src wget http://users.own-hero.net/~decoder/fuzzyocr/fuzzyocr-3.6.0.tar.gz cd FuzzyOcr-3.6.0 cp -r FuzzyOcr /etc/mail/spamassassin cp FuzzyOcr.cf FuzzyOcr.pm FuzzyOcr.preps FuzzyOcr.scansets FuzzyOcr.words /etc/mail/spamassassin
基本的にはこれで動くようになるとおもいます。
後はテストしてみてちゃんと動作するかSpamdを再起動した後に
確認しておきましょう。
cd /usr/local/src/FuzzyOcr/samples spamc -R < ocr-multi.eml
レポートの中に以下の記述があれば正常に動作しています。
FUZZY_OCR BODY: Mail contains an image with common spam text inside
[Words found:]
["buy" in 2 lines]
["target" in 1 lines]
["stock" in 2 lines]
["alert" in 3 lines]
["trade" in 1 lines]
[(25.5 word occurrences found)]
PDFInfo
最近はPDFスパムが増えつつあるようなので、
pdftotextを使ったプラグインをつかってみます。
インストール
cd /etc/mail/spamassassin wget http://www.rulesemporium.com/plugins/PDFInfo.pm wget http://www.rulesemporium.com/plugins/pdfinfo.cf mv PDFInfo.pm [SpamAssassinのあるPerlのパス]/Mail/SpamAssassin/Plugin/ mv pdfinfo.cf PDFInfo.cf/etc/mail/spamassassin/init.pre(追加)
# PDFInfo loadplugin Mail::SpamAssassin::Plugin::PDFInfoこれでインストール完了です。
後は例によって動くか確認してみます。
spamassassin -D --lint以下のものが出ているかを確認
dbg: config: read file /etc/mail/spamassassin/PDFInfo.cf dbg: plugin: loading Mail::SpamAssassin::Plugin::PDFInfo from @INC最新のものをチェックするスクリプト
#!/bin/sh PM=`perl -MConfig -e 'print "$Config{installsitelib}"'`/Mail/SpamAssassin/Plugin/PDFInfo.pm CF=/etc/mail/spamassassin/PDFInfo.cf trap 'rm -f $PMTMP $CFTMP' EXIT PMTMP=$(mktemp -t pdfinfo.pm.XXXXXXXX) || exit 1 CFTMP=$(mktemp -t pdfinfo.cf.XXXXXXXX) || exit 1 chmod a+r $PMTMP $CFTMP echo Downloading, veryfying perl module and size of config file... if ! wget -q -O $PMTMP http://www.rulesemporium.com/plugins/PDFInfo.pm; then echo FAILED to download http://www.rulesemporium.com/plugins/PDFInfo.pm exit 1 fi if ! wget -q -O $CFTMP http://www.rulesemporium.com/plugins/pdfinfo.cf; then echo FAILED to download http://www.rulesemporium.com/plugins/pdfinfo.cf exit 1 fi if ! test -s $PMTMP ; then echo ERROR the downloaded PDFInfo.pm file is zero sized exit 1 fi if ! test -s $CFTMP ; then echo ERROR the downloaded pdfinfo.cf file is zero sized exit 1 fi if ! perl -cw $PMTMP; then echo FAILED syntax check of new PDFInfo.pm module exit 1 fi echo Successfully downloaded $PM and $CF, installing: mv $CFTMP $CF || exit 1 # Probably I am not root... mv $PMTMP $PM || exit 1 # same echo Restarting SpamAssassin: service spamd restart exit 0後は適当に調べて追加していきます。
コメントを追加