環境
- OS: NetBSD 3.1
- sendmail: 8.14.4
- openssl: 1.0.0
- opendkim: 2.1.3
インストール
http://www.opendkim.org/のDownload から取得します。
% tar zxvf opendkim-2.1.3.tar.gz
% cd opendkim-2.1.3
% ./configure --with-openssl=/usr/local/openssl-1.0
% make
% su
# make install
インストールされるもの↓
/usr/local/sbin/opendkim
/usr/local/sbin/opendkim-genkey.sh
/usr/local/sbin/opendkim-genzone
/usr/local/sbin/opendkim-testkey
/usr/local/sbin/opendkim-testssp
/usr/local/lib/libopendkim.*
/usr/local/include/opendkim/*
sendmail.mcの設定
sendmail.mcに以下を追加してsendmail.cfをつくり直す
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost')
dkim-filterを実行するためのユーザ作成
セキュリティ上、dkimを実行するためのユーザは分離したほうがいいので、dkimを実行するためのユーザを作成します。
# useradd dkim
キーの生成およびDNSの設定
SELECTORは識別子となるようです。今回はSELECTORを「lagoon」とします。
% /usr/local/sbin/opendkim-genkey.sh -s lagoon
opendkim-genkey.shを実行すると、lagoon.txt, lagoon.privateというファイルが生成
されます。
まずはlagoon.txtを使用します。lagoon.txtをみると
% cat lagoon.txt
lagoon._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=XXXXXXXYYYYYYYZZZZZZZZ"
のような内容になっています。これをDNSのzoneファイルに設定します。bindであればこのまま張り付ければOKです。
DNSには以下のようにポリシーも設定します。
_policy._domainkey IN TXT "t=y; o=~"
bind等を再起動し lagoon._domainkey.example.com のTXTエントリがアクセスできることを確認します。
% host -t txt lagoon._domainkey.example.com
lagoon._domainkey.example.com descriptive text "v=DKIM1\; g=*\; k=rsa\; p=XXXXXXXYYYYYYYZZZZZZZZ"
このように出力されればOKです。
つぎにlagoon.privateを使用します。
# mkdir -p /var/db/dkim
# cp lagoon.private lagoon.txt /var/db/domainkeys
# chown -R dkim /var/db/dkim
# chmod 500 /var/db/dkim
このファイルはopendkim起動時オプション-kで指定して使用します。
設定ファイル
opendkim-2.1.3では設定ファイルを利用するようになりました。そこで
/usr/local/etc/opendkim.conf を作成します。
Canonicalization relaxed/simple
Domain example.org,example.com
KeyFile /var/db/dkim/lagoon2.private
PidFile /var/run/dkim/opendkim.pid
Selector lagoon
Socket inet:8891@localhost
Syslog Yes
UserID dkim
以前のopendkimではサインするかどうかの判定はpeerのIPアドレスで行っていましたが、
opendkim-2.1.3ではFrom: ヘッダのドメインで判定するようになりました。
そのため、以前作成していた、/etc/mail/dkim/ilist は不要となりました。
# chown -R dkim /etc/mail/dkim
# chmod 500 /etc/mail/dkim
起動
# /usr/local/sbin/opendkim -x /usr/local/etc/opendkim.conf
# /etc/rc.d/sendmail restart
動作確認(送信時設定)
sa-test@sendmail.netにメールをなげて確認できます。
sa-test@sendmail.netが不調の場合は autorespond+dkim@dk.elandsys.com でも同様のサービスをしているようです。
以下のように結果がpassになっていればOKです。
なお、送付したメイルにはDKIM-Signature:ヘッダが付加されていない場合は設定を再確認します。
DKIM Test: pass
動作確認(受信時設定)
返送されたメイルのヘッダに、
Authentication-Results: example.com; dkim=pass (1024-bit key) header.i=@sendmail.net
があれば受信時の設定はOKです。
OSブート時起動設定
/etc/rc.confに以下を追加します。
opendkim=YES
opendkim_flags="-x /usr/local/etc/opendkim.conf"
/etc/rc.d/opendkimを作成します。内容は以下です。
#!/bin/sh
# REQUIRE: syslogd
# BEFORE: mail
# KEYWORD: FreeBSD NetBSD
. /etc/rc.subr
name="opendkim"
rcvar=$name
command="/usr/local/sbin/opendkim"
pidfile="/var/run/dkim/${name}.pid"
required_files="/usr/local/etc/opendkim.conf"
load_rc_config $name
run_rc_command "$1"