環境
- OS: NetBSD 3.1
- sendmail: 8.14.4
- openssl: 1.0.0
- opendkim: 2.0.2
インストール
http://www.opendkim.org/のDownload から取得します。
% tar zxvf opendkim-2.0.2.tar.gz
% cd opendkim-2.0.2
% ./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-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で指定して使用します。
その他のdkim-filter用設定ファイル
dkim-filterではサインするかどうかは受信したときの相手のIPアドレスで判定します。
デフォルトでは127.0.0.1のみとなっていますが、自ネットワーク内のアドレスをここに設定します。
# mkdir /etc/mail/dkim
# vi /etc/mail/dkim/ilist
192.168.1.0/24
127.0.0.1
# chown -R dkim /etc/mail/dkim
# chmod 500 /etc/mail/dkim
起動
# /usr/local/sbin/opendkim -l \
-i /etc/mail/dkim/ilist \
-p inet:8891@localhost \
-c relaxed/simple \
-s lagoon \
-k /var/db/dkim/lagoon.private \
-d example.com,example.org
# /etc/init.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="-l -s lagoon -c relaxed/simple -i /etc/mail/dkim/ilist -p inet:8891@localhost -k /var/db/dkim/lagoon.private -d example.org,example.net -u dkim -P /var/run/dkim/opendkim.pid"
/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="/etc/mail/dkim/ilist"
load_rc_config $name
run_rc_command "$1"