qmailとSpamAssassinにつきまして
こんにちは、技術部のshoriと申します。
先日、SpamAssassinについて勉強する機会がありました。
使用MTAは下記となります。
qmail+vpopmail+SpamAssassin+ClamAV
検証としてSpamAssassinが導入されているサーバから導入されていないサーバへスパム判定が行われるメールを送ってみると
何故か件名に[SPAM]が付与されていました。
メールヘッダーを確認してもスコアが記載されておらず(SpamAssassinを導入してないので当たり前ですが・・・)
もしかしたら送信元サーバで付与した?とも考えましたが、わざわざ自分が送るメールに[SPAM]をつける意味が分からない。
色々探していると下記サイトに情報がありました。
http://www.asahi-net.or.jp/~AA4T-NNGK/qmail6.html
下記抜粋
——————————————————————————————
本当ならば、受信メールだけスキャンして、送信メールはスキャンさせたくない。というのも、送信メールをブロックした際の通知に困るからだ。しかし、上記の設定では、どうしても両方ともスキャンされてしまう。 Qmail-Scanner にもそういった選別機能はない。Qmail-Scanner の FAQ で少し触れられているのは、 qmail-smtpd をふたつ立ち上げておき、メインのほうはスキャンを有効にし、もう一方はスキャンなしに設定し、DNS の MX レコードでIPを使い分けるという手段だが、IP をひとつしか持てないダイナミックDNS環境ではそうもいかない。可能性は、ポートによる使い分け….?
——————————————————————————————
どうやらqmailとSpamAssassinを仲介してもらう為に導入した「Qmail-Scanner」は送受信関係なくメールをチェックする仕様らしく分ける事も出来ないとの事。
メールの仕様上、ローカル/グローバル問わず送信する際は必ず「qmail-queue」プロセスを経由します。
[qmail-inject/qmail-smtpd]
↓
[qmail-queue]
↓
[qmail-send]
↓
[qmail-lspawn/qmail-rspawn]
↓
[qmail-local/qmail-remote]
「Qmail-Scanner」を設定した際にQMAILQUEUEの環境変数を「/var/qmail/bin/qmail-scanner-queue.pl」をセットしている為、チェックが入ってしまうんですね。
自分は取り合えずサーバ上のアカウントをホワイトリスト登録して対応しました。
しかしこんな仕様があるとは・・・