BLOGTIMES
2006/12/24

qmailをDomainKeysに対応させてみる

  qmail  antispam 
このエントリーをはてなブックマークに追加

ちょっと前にやろうと思っていたqmailのDomainKeys対応ですが、急にいろいろと忙しくなってしまったのでそのままになっていましたが、このたびやっと完了しました。とりあえずウチでしばらく運用してみて特に問題がなければ、仕事用のものも含めて全サーバー展開しようかと思います。

案外すんなりとできてしまいましたが、手順自体は初心者向けとは言えません。まず、シェルをある程度自在に使うことができ、なおかつDNSに関してはきちんとゾーンファイルを自分で書き換えることができ、さらにqmailに関してはpatchの際にFAILEDが出ても手で差分を反映できるくらいでないと正直厳しいと思います。

DomainKeysとは

spamメールのFrom:は大手のフリーメール(Yahoo, Hotmailなど)のものになっていることが多く、そのほとんどが偽装されているというのは良く知られていることですが、DomainKeysはこのような送信ドメイン偽装を防ぐための技術のひとつです。電子署名を使っているところに特徴があります。Yahoo!が提唱し、Sourceforgeで参照実装が公開されています。大手ではYahoo!Mailを始めとして、Gmailなどが対応しているようです。

Yahoo!MailではDomainKeysの認証が成功すると下記のような表示が出ます*1
DomainKeys Verification Succeeded.(Yaho!Mail) - qmailをDomainKeysに対応させてみる

Gmailの場合はこんな感じです。
DomainKeys Verification Succeeded.(Gmail) - qmailをDomainKeysに対応させてみる

また、後述する手順でqmail-1.03-dk-0.54.patchを使ったqmailの場合にはヘッダに下記が付加されます。

DomainKey-Status: good

早速取り掛かってみる

とりあえずDomainKey Implementor's Tools and Library for email servers & clientsにqmail用の手順(How to set up Qmail to use DomainKeys)があるので、これをベースにやれば大丈夫です。

日本語で技術的な解説が必要なのであれば@ITの「電子署名を使うDomainKeysの設定方法」が役立ちます。

無事、qmail-dkができたら、qmail-queueをqmail-queue.origとリネームし、qmail-dkをqmail-queueとしてあげれば完了です。

設定に関しては手順にあるものから少し変更しています。まず、ドメインのポリシーは"t=y; o=-;"(すべてのメールに署名があることを規定)ではなく、"t=y; o=~;"(署名があるものもあれば、ないものもある)という方がいいかもしれません。また、DKSIGNは/etc/domainkeys/example.com/defaultを指定するよりも、/etc/domainkeys/%/defaultの方がいいかもしれません。この場合%はFromに読み替えられ、ファイルがない場合には署名されないようになるようです。

ちなみに、この手順ですがちょっとした間違いがあります。

or for BIND: _domainkey.example.com. IN TXT "t=y; o=-";

or for BIND: _domainkey.example.com. IN TXT "t=y; o=-;"

qmail-dkをテストする

qmail-dkがうまく動いているかをテストするにはmessageというファイルにメールを書いて、以下ようなコマンドを実行すると処理結果をコンソールで確認することができます。

env DKVERIFY="DEGIJKfh" DKQUEUE="/bin/cat" /var/qmail/bin/qmail-dk < message

トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/1778
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン