2017年09月05日
川俣晶の縁側ソフトウェア技術雑記 total 3414 count

procmail+postfixの電子メールサーバでqq.comからのメールを拒否するまでの記録

Written By: 川俣 晶連絡先

主旨 §

 無駄に手間が掛かったので経緯をメモする。

 メールサーバの構成の問題から参考にならない人の方が多いと思われる。

問題 §

 数日前からqq.comドメインからの大量の迷惑メールが届いた。qq.comそのものは中国の正当なサービスのドメインと思われる。qq.comのメールサーバそのものが使われているのか、それともドメイン詐称かは分からない。しかし、あまりにも数が多く重要なメールの多くが不達となっているので対策の重要度は高い。

環境 §

 procmail+Clam AntiVirus+spamassasin+postfixの構成である。

原因 §

 問題が起きる原因はおそらくspam判定に時間が掛かっているためだと判断した。spam判定能力を超えた数のメールが殺到すると、着信できないメールが発生する。

目標 §

 spam判定より前にqq.comからの電子メールを排除したい。

間違った対策 §

 Postfixのmain.cfに拒否ドメインに関する設定を行った。詳細はネットを検索するといくらでも事例が出てくるので略。smtpd_sender_restrictionsを使った方法と、header_checksを使った方法を試したがいずれも効果が無かった。

正しいと思われる対策 §

 この電子メールサーバの構成では、メールが着信して最初に起動されるのはPostfixではなくprocmailである。procmailはClam AntiVirus+spamassasinでスコア判定してスコアが特に悪ければ捨て、そこそこのスコアならspamフォルダにメールを転送するように書かれていた。Postfixが起動するのはおそらく、このあとである。従って、Postfixでいくら対策しても無駄である。今回は、Clam AntiVirus+spamassasinで処理する前に破棄したかったので、procmailrcの先頭近く(Clam AntiVirus+spamassasin呼び出し前)に、以下のような記述を追加して対策した。(ただし、インチキ臭いガバガバの正規表現なので関係ないメールを破棄してしまうリスクはある)

:0

 * ^From.*qq.com

 /dev/null

結果 §

 設定変更後数時間が経過したが、qq.comからのメールがspamフォルダに入ることはなくなった。

対策の是非の検討 §

 qq.comからのメールが来る可能性は現状でほぼ無い(というか、特に付き合いの長い相手以外からの電子メールが来る可能性そのものが極めて少ない)ので、取りあえずは緊急対応としてこの処置は是認するが、これで良いわけではない。