Postfix で dkim-milter を使ってDomainKeys ,DKIM の両方に対応する(CentOS/ScientificLinux編)
ご利用のブラウザは、JavaScript が無効 となっていませんか?
このサイトでは、コンテンツの一部が非表示 、あるいは、コメント、お問い合わせの投稿ができない 、検索ができない ことがあります。
ここまでに、DomainKeys ,DKIM のそれぞれの対応について、下記の記事で書きました。
今回は、Postfix で dkim-milter(dkim-filter) を使ってDKIM に対応する(CentOS/ScientificLinux編) で利用した dkim-milter を使って 1つにまとめて対応したいと思います。
つまり、Postfix で dk-milter(dk-filter) を使ってDomainKeys に対応する(CentOS/ScientificLinux編) で紹介した内容は、要らなくなります。
といってもDomainKyesのSignature をメールに付けたい場合は、やっぱり、Postfix で dk-milter(dk-filter) を使ってDomainKeys に対応する(CentOS/ScientificLinux編) が必要になります。ここでの対応は、あくまでチェックだけです。
sendmail で dkim-milter を使ってDomainKeys ,DKIM の対応する
ここで紹介する内容は、Postfix で dkim-milter(dkim-filter) を使ってDKIM に対応する(CentOS/ScientificLinux編) による dkim-milter がインストールされていて、少なくともDKIMへの対応はできている状態であることを前提に 以降 解説します。
dkim-milter を使って、DomainKeysをチェックさせるには、dkim-milter をコンパイル(ビルド)する必要があります。
以降に、その手順を簡単に解説します。
dkim-milter をmakeする
dkim-milter のソースコードをダウンロードする
$ wget "http://sourceforge.net/projects/dkim-milter/files/DKIM%20Milter/2.8.3/dkim-milter-2.8.3.tar.gz/download" - O dkim- milter- 2. 8. 3. tar. gz
最新版は、現在(2013.2)では、dkim-milter-2.8.3.tar.gz となります。
dk-milter のソースコードをダウンロードする
CentOS5
$ wget http:// sourceforge. net/ projects/ dk- milter/ files/ DomainKeys% 20Milter/ 0. 6. 0/ dk- milter- 0. 6. 0. tar. gz/ download - O dk- milter- 0. 6. 0. tar. gz
CentOS6 /ScientificLinux6
$ wget http:// sourceforge. net/ projects/ dk- milter/ files/ DomainKeys% 20Milter/ 1. 0. 2/ dk- milter- 1. 0. 2. tar. gz/ download - O dk- milter- 1. 0. 2. tar. gz
最新版は、現在(2012.2)では、dk-milter-1.0.2.tar.gz となります。
ただし、必要とするOpenSSLのバージョンが、1.0以上となるので、デフォルトのCentOS5 では、対応できていません。
そこで、CentOS5 では、OpenSSLのバージョンが、1.0未満の最新バージョンである 0.6.0 を利用します。
dkim-milter , dk-milter のソースコードを解凍する
$ tar xfz dkim- milter- 2. 8. 3. tar. gz - C / usr/ local/ src
$ tar xfz dk- milter- 0. 6. 0. tar. gz - C / usr/ local/ src
$ tar xfz dk- milter- 1. 0. 2. tar. gz - C / usr/ local/ src
ここでは、わかりやすいように
/usr/local/src 配下へソースコードを展開しています。
dkim-milter へ dk-milter の libdk を組み込みます
$ cd / usr/ local/ src/ dkim- milter- 2. 8. 3
[dkim-milter-2.8.3]$ ln - s ../ dk- milter- 0. 6. 0/ libdk/ .
[dkim-milter-2.8.3]$ ln - s ../ dk- milter- 1. 0. 2/ libdk/ .
ここでは、無駄にディスクを使用しないようにリンクファイルを作成していますが、
/usr/local/…/libdk ディレクトリをまるごとコピーでもOKです。
dkim-milter のmakeための設定ファイルを編集します
Domainkeys の認証を行うように dkim-milter のmakeファイルを編集します。
/usr/local/src/dkim-milter-2.8.3/devtools/Site/site.config.m4 を編集します。
site.config.m4.distというサンプルファイルがありますから、それをコピーして編集します。
$ cd / usr/ local/ src/ dkim- milter- 2. 8. 3
[dkim-milter-2.8.3]$ cp site. config. m4. dist devtools/ Site/ site. config. m4
...
define(`bld_VERIFY_DOMAINKEYS', `true')
...
bld_VERIFY_DOMAINKEYS は、DomeinKeysの認証を有効にしています。
dkim-milter をmakeします
$ cd / usr/ local/ src/ dkim- milter- 2. 8. 3
[dkim-milter-2.8.3]$ make
...
基本的にdk-filterで必要なパッケージと同じものが必要になります。
ここでは、以下の2つのライブラリをインストールした上で、上記のmake作業を行っています。
$ yum install sendmail- devel openssl- devel
...
Is this ok [y/N]: y
...
openssl-develは、そのままOpenSSLが必要なためです。
sendmail-devel は、libmilter が必要なためです。
上記以外でも、環境によっては、必要なパッケージがあるかもしれません。
必要に応じてyumでインストールしましょう。
特にエラーが出力されなければOKです。
dkim-milter をインストールする
dkim-milter の動作確認する
送信時のSignature と DNS 設定による認証を確認するには、Yahoo! や GMailへメールを送信するのが最も簡単な方法です。
送信、受信で正しく動作しているか確認してみましょう。
送信確認
GMailの場合
Authentication-Results: mx.google.com; spf=pass (google.com: domain of hoge@exmaple.com designates 11.22.33.44 as permitted sender) smtp.mail=hoge@exmaple.com; dkim=pass header.i=@exmaple.com
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=exmaple.com; s=sexmaple_com; t=1323065988; bh=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy=; h=Message-ID:Date:From:MIME-Version:To:Subject:Content-Type: Content-Transfer-Encoding; b=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Yahoo!の場合
Authentication-Results: mta551.mail.kks.yahoo.co.jp from=exmaple.com; domainkeys=neutral (no sig); dkim=pass (ok) header.i=@exmaple.com
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=exmaple.com; s=sexmaple_com; t=1323065988; bh=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy=; h=Message-ID:Date:From:MIME-Version:To:Subject:Content-Type: Content-Transfer-Encoding; b=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Yahoo!の場合は、domainkeys を必ず認証するらしく、その情報が必ず出力されます。
受信確認
GMailの場合
Authentication-Results : mail.example.com; dkim=pass (2048-bit key)
header.i=@gmail.com; x-dkim-adsp=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=x-received:message-id:date:from:user-agent:mime-version:to:subject
:content-type:content-transfer-encoding;
bh=....;
b=....
Yahoo!の場合
Authentication-Results: mail.example.com; domainkeys=pass header.from=hoge-hoge@yahoo.co.jp
Authentication-Results : mail.example.com; dkim=pass (1024-bit key)
header.i=@yahoo.co.jp; x-dkim-adsp=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.jp; s=yj20110701; t=1360817693; bh=....; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=....
DomainKey-Signature:a=rsa-sha1; q=dns; c=nofws;
s=y....; d=yahoo.co.jp;
h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding;
b=....;
上記のように Authentication-Results がDomainKeys と DKIM用の2つが出力されることがポイントです。
ちゃんと出力されればOKです。
どうでしょうか、このやり方では、1プロセスだけで DomainKeysもDKIMも確認することができます。
また、Signature(署名)もDomainKeysはされなくても DKIMについては行ってくれます。DKIMは、DomainKeysも包含していると言えなくもないですから、2つの署名がそれほど有効性があるかは疑問もあります。
そう考えると、少ないリソースで効率よく偽装メールの判断ができるという点では、このやり方も悪くないと思います。
ただ、どれだけDomainKeysが利用されているか?というと日本では、ほとんどがYahoo!メールになるでしょう。でも、Yahoo!メールもDKIMに対応していますしね。
まあでも、悪質なYahoo!メールの対策にはなるかもしれませんね、少なくともチェック機能が増えることで良くはなるでしょう。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用 となっていませんか?
このサイトでは、コンテンツの一部が非表示 、あるいは、コメント、お問い合わせの投稿ができない 、検索ができない ことがあります。
関連記事 :
コメントを投稿 :