DKIMproxy導入覚書-はまり処満載で撃沈寸前!その2

DKIMproxyオフィシャルサイト

秘密鍵・公開鍵を作成したので、DNSゾーンファイルを編集します。

ポリシーレコード、セレクターレコード、2つのレコードを追加

ポリシーレコード、

_policy._domainkey.hstech.  600 IN  TXT "t=y; o=~; r=yoshio@hstech.net"
hstech._domainkey.hstech.net.   600 IN  TXT "t=y; k=rsa; p=公開鍵"

下記サイトでポリシレコードのチェックをします。
http://domainkeys.sourceforge.net/policycheck.html
結果は

 Testing hstech.net
Policy TXT=t=y;o=~;n=;r=yoshio@hstech.net;This policy record appears valid.

OKのようです。
次に下記サイトでセレクターレコードのチェックをします。
http://domainkeys.sourceforge.net/selectorcheck.html
結果は

hstech._domainkey.hstech.net
TXT Record length = 229
p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCXxC8mmzt/x8VFnbzPWH1dSw/FU5qoIafLdCAqt

...aP8T1NhBvthFpKQku3gcTs72xZrj0h/I0dmzoFyI+f/emJ7VHuFPfYIyi8dwAc+Qq2vrJmKPYey3vL4q

...Im1SEyYWB4fzUdU9CynjOBeT+RziZcHIroQuQeWVXToqxuzAhaJQIDAQAB;k=rsa;t=y;

This selector is in error: Tag 'p': Invalid public key has no modulus

む!なんじゃいノーモデュラスって????

検索してみましたが思うような答えが見つかりません。

オフィシャルサイトの指示通り

Generate a private/public key pair using OpenSSL:

openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -out public.key

と鍵を再作成しても結果は同じでした。
ここで1日はまりました。とりあえずDKIMproxyを動作させて、吐かれるエラーメッセージ等から
解決策を探ろうと思い、DKIMproxyの設定をすることにしました。
変更箇所は太字部分のみ

/usr/local/dkimproxy/etc/dkimproxy_in.conf
# specify what address/port DKIMproxy should listen on

listen    127.0.0.1:10025

# specify what address/port DKIMproxy forwards mail to

relay     127.0.0.1:10026
/usr/local/dkimproxy/etc/dkimproxy_out.conf

# specify what address/port DKIMproxy should listen on listen    127.0.0.1:10027

# specify what address/port DKIMproxy forwards mail to relay     127.0.0.1:10028

# specify what domains DKIMproxy can sign for (comma-separated, no spaces)

domain    hstech.net,parts-recycle.net,hair-saloon.net

# specify what signatures to add simple

signature dkim(c=relaxed,a=rsa-SHA256)

signature domainkeys(c=nofws,a=rsa-SHA1)

# specify location of the private key

keyfile   /usr/local/dkimproxy/private.key

# specify the selector (i.e. the name of the key record put in DNS)

selector  hstech 
# control how many processes DKIMproxy uses

#  - more information on these options (and others) can be found by

#    running `perldoc Net::Server::PreFork'. #min_servers 5 #min_spare_servers 2

DKIMproxyの解凍ディレクトリから起動ファイルを/etc/rc.d/init.d/にリネームしてコピー

sample-dkim-init-script.sh ⇒ /etc/rc.d/init.d/dkimproxy

これでDKIMproxyの設定は終了

次に以下のサイトを参照しpostfixのmaster.cfを変更します。

http://dkimproxy.sourceforge.net/postfix-inbound-howto.html

これで受け取ったメールの検証が出来ます。

ためしにDKIM署名をしているgmailとしていないplalaのメールのヘッダーを比較してみます

gmailヘッダー(抜粋)

Return-Path: <hstech99@gmail.com>

Received: from dns2.hstech-net.com ([unix socket])

by dns2.hstech-net.com (Cyrus v2.2.13p1-Invoca-RPM-2.2.13p1-4vl4) with LMTPA;

Fri, 30 Nov 2012 14:25:24 +0900

X-Sieve: CMU Sieve 2.2

Received: from dns2.hstech-net.com (localhost [127.0.0.1])

by dns2.hstech-net.com (Postfix) with ESMTP id 735426203F6

for <yoshio@hstech.net>; Fri, 30 Nov 2012 14:25:24 +0900 (JST)

Authentication-Results: dns2.hstech-net.com; dkim=pass header.i=@gmail.com 
X-DKIM-Authentication-Results: pass 

Received: from mail-ie0-f176.google.com (mail-ie0-f176.google.com [209.85.223.176])

by dns2.hstech-net.com (Postfix) with ESMTP

for <yoshio@hstech.net>; Fri, 30 Nov 2012 14:25:24 +0900 (JST)

Received: by mail-ie0-f176.google.com with SMTP id 13so124242iea.7

for <yoshio@hstech.net>; Thu, 29 Nov 2012 21:25:23 -0800 (PST)

DKIM-Signature: 略

検証結果=pass が確認できます。

plalaヘッダー(大部分略)

Return-Path: <hskimura@blue.plala.or.jp>

Received: from dns2.hstech-net.com ([unix socket])

by dns2.hstech-net.com (Cyrus v2.2.13p1-Invoca-RPM-2.2.13p1-4vl4) with LMTPA;

Sat, 01 Dec 2012 09:37:55 +0900

X-Sieve: CMU Sieve 2.2

Received: from dns2.hstech-net.com (localhost [127.0.0.1])

by dns2.hstech-net.com (Postfix) with ESMTP id 581816203D7

for <yoshio@hstech.net>; Sat,  1 Dec 2012 09:37:55 +0900 (JST)

Authentication-Results: dns2.hstech-net.com;

X-DKIM-Authentication-Results: none

これで受信メールの検証確認が出来ました。

次はいよいよ署名を付ける設定です。でもまだまだ先は長いかも・・・・・