DKIM(Domain Keys Identified Mail)


1. インストール

portsのコンパイルオプションを/etc/make.confのSENDMAILに合わせます。

/usr/ports/mail/dkim-milter/files/site.config.m4

+ APPENDDEF(`confLIBS', `-lldap -llber -lsasl2')
+ APPENDDEF(`confLIBDIRS', `-L%%LOCALBASE%%/lib')
+ APPENDDEF(`confINCDIRS', `-I%%LOCALBASE%%/include')

portsからインストールします。

# portinstall /usr/ports/mail/dkim-milter

2. 鍵の生成

% dkim-genkey -b 1024 -d next-hop.net -s key1

3. 秘密鍵の設定

dkim-fiterが読み出しできるようにします。

# cp key1.private /etc/mail
# chown mailnull:mailnull /etc/mail/key1.private
# chmod 640 /etc/mail/key1.private

4. DNSによる公開鍵の設定

鍵がない場合などのドメインのポリシーを設定します。

_domainkey           86400   IN      TXT     "t=y; o=~"

ドメインポリシーのタグ

タグ用途
tテストモード(検証に失敗しても成功と同じ扱いを要求)
使用可能文字は"y"のみ
o該当ドメインの署名ポリシーを指定
"~": 署名されていないメールもある
"-": すべてのメールは署名されている
rコンタクトアドレス(検証失敗時の問い合わせ先)
nコメント

dkim-genkeyで生成した公開鍵を設定します。

key1._domainkey      86400   IN      TXT     "v=DKIM1; g=*; k=rsa; p=M...(省略)...B"

セレクターポリシーのタグ

タグ用途
g公開鍵の使用用途(ドメイン単位の署名、ユーザ単位の署名)
k使用する公開鍵の種別(デフォルト: rsa)
p公開鍵(BASE64)
tテストモード
nコメント
vレコードのバージョン。現時点では"DKIM1"のみ使用可能
h使用するハッシュアルゴリズムの種別(標準では"sha1")
sレコードの使用可能用途
"*": 何でも
"email": メールのみ

5. dkim-filterの設定

dkim-filter.conf

Domain                  next-hop.net
KeyFile                 /etc/mail/key1.private
ReportAddress           postmaster@next-hop.net
Selector                key1
Socket                  local:/var/run/milterdkim/socket

6. 起動

/etc/rc.confに以下を追加します。

milterdkim_enable="YES"

フィルターを起動します。

# /usr/local/etc/rc.d/milter-dkim start