DKIM(Domain Keys Identified Mail)


1. インストール

1.1 pkgからインストールする

# pkg install opendkim

1.2 portsからインストールする

portsからインストールする場合はコンパイルオプションを/etc/make.confのSENDMAILに合わせます。

/usr/ports/mail/opendkim/files/site.config.m4

APPENDDEF(`confLIBS', `-lldap -llber -lsasl2')
APPENDDEF(`confLIBDIRS', `-L%%LOCALBASE%%/lib')
APPENDDEF(`confINCDIRS', `-I%%LOCALBASE%%/include')
# portinstall /usr/ports/mail/dkim-milter

1.3 /etc/rc.confに以下を追加する

milteropendkim_enable="YES"

2. 鍵の生成

# cd /var/db/dkim
# opendkim-genkey -d next-hop.net -s selector1

3. 秘密鍵の設定

opendkimから読み出しできるようにする
# chown mailnull:mailnull selector1.private
# chmod 640 selector1.private

4. opendkimの設定

/usr/local/etc/mail/opendkim.conf

Domain                  next-hop.net
KeyFile                 /var/db/dkim/selector1.private
ReportAddress           "DKIM Error Postmaster" <postmaster@next-hop.net>
Selector                selector1
Socket                  local:/var/run/milteropendkim/socket
Syslog                  Yes

5. 起動

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

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

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

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

6.2 ドメインポリシーのタグ

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

6.3 /var/db/dkim/selector1.txtをDNSに登録する

selector1._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": メールのみ