- blogs:
- cles::blog

qmailをDomainKeysに対応させてみる


ちょっと前にやろうと思っていたqmailのDomainKeys対応ですが、急にいろいろと忙しくなってしまったのでそのままになっていましたが、このたびやっと完了しました。とりあえずウチでしばらく運用してみて特に問題がなければ、仕事用のものも含めて全サーバー展開しようかと思います。
案外すんなりとできてしまいましたが、手順自体は初心者向けとは言えません。まず、シェルをある程度自在に使うことができ、なおかつDNSに関してはきちんとゾーンファイルを自分で書き換えることができ、さらにqmailに関してはpatchの際にFAILEDが出ても手で差分を反映できるくらいでないと正直厳しいと思います。
† DomainKeysとは
spamメールのFrom:は大手のフリーメール(Yahoo, Hotmailなど)のものになっていることが多く、そのほとんどが偽装されているというのは良く知られていることですが、DomainKeysはこのような送信ドメイン偽装を防ぐための技術のひとつです。電子署名を使っているところに特徴があります。Yahoo!が提唱し、Sourceforgeで参照実装が公開されています。大手ではYahoo!Mailを始めとして、Gmailなどが対応しているようです。
Yahoo!MailではDomainKeysの認証が成功すると下記のような表示が出ます*1。
Gmailの場合はこんな感じです。
また、後述する手順でqmail-1.03-dk-0.54.patchを使ったqmailの場合にはヘッダに下記が付加されます。
† 早速取り掛かってみる
とりあえず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に読み替えられ、ファイルがない場合には署名されないようになるようです。
ちなみに、この手順ですがちょっとした間違いがあります。
↓
† qmail-dkをテストする
qmail-dkがうまく動いているかをテストするにはmessageというファイルにメールを書いて、以下ようなコマンドを実行すると処理結果をコンソールで確認することができます。
- *1: Yahoo!MailのDomainKeysに関するヘルプ(日本語)はこちら。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/1778
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112851)
3 . 年次の人間ドックへ(112293)
4 . 2023 年分の確定申告完了!(1つめ)(111858)
5 . 三菱鉛筆がラミーを買収(111736)