インストール
インストールはpkgを利用します。
# pkg install opendkim
access: 181433
インストールはpkgを利用します。
# pkg install opendkim
まずは鍵を生成します。
複数ドメイン利用することを前提にしますので、ドメイン名でディレクトリを作ってそこで生成。
# mkdir /usr/local/etc/mail/keys/junkie.work # cd /usr/local/etc/mail/keys/junkie.work # opendkim-genkey -d junkie.work # chown -R root:mailnull . # chmod 640 default.private # chmod 644 default.txt
/usr/local/etc/mail/opendkim.conf の設定を変更します。変更したのは以下。
AlwaysAddARHeader yes Canonicalization relaxed/relaxed Domain junkie.work ExternalIgnoreList refile:/usr/local/etc/mail/TrustedHosts InternalHosts refile:/usr/local/etc/mail/TrustedHosts KeyFile /usr/local/etc/mail/keys/junkie.work.private KeyTable /usr/local/etc/mail/KeyTable LogWhy yes PidFile /var/run/opendkim/opendkim.pid SigningTable refile:/usr/local/etc/mail/SigningTable Socket inet:8891@localhost
/usr/local/etc/mail/KeyTable には、ドメインの鍵情報を一行ずつ記載します。
default._domainkey.junkie.work junkie.work:default:/usr/local/etc/mail/keys/junkie.work/default.private(↑実際には一行です)
/usr/local/etc/mail/SigningTable には、署名するためのマッチング情報を記載します。
*@junkie.work default._domainkey.junkie.work
/usr/local/etc/mail/TrustedHosts には、信用できる(処理を行わない)相手の情報を記載します。
127.0.0.1 10.0.0.0/16
サービスの起動設定を行い、起動します。
# sysrc milteropendkim_enable="YES" # service milter-opendkim start
DKIMでは、相手に公開鍵を渡す手段としてDNSを利用するので、ドメイン情報に鍵を追加します。
/usr/local/etc/mail/keys/junkie.work/default.txt にかかれている鍵を登録します。
(鍵が長くて見づらいので、()で括って複数行に分割しました)
$ORIGIN junkie.work. default._domainkey IN TXT ( "v=DKIM1; k=rsa; p=" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCt6yihaVGS65L8mSkDugIrHJLZ" "LkSXKvHsyQM91fTsAYue7AEFeh5l3v1W/Q0zrm5ugwRKh/1Mgb1Z3ZkXfOd4i+S/" "HHZ0OzCyQLOO2g4lovxFFpQNiIe3xXYUINWPavaHIEoRaReOi6Totilzrz6tOtdl" "sE3jAouyv+73ISNm/QIDAQAB" )
SOAレコードのシリアルを更新した後、DNSを再起動して反映させておきます。
準備が整ったら、sendmailにDKIMを利用する設定を追加します。
/etc/mail/hostname.mcに以下の一行を追加します
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@127.0.0.1')
hostname.mcからsendmail.cfを生成してサービス再起動。
# cd /etc/mail # make # make install # service sendmail restart
正しく動作していると、送信するメールには以下のようなヘッダ情報が追加されます。
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=junkie.work; s=default; t=1426902300; bh=GgIdlLH7WDDB4xJE/H01SAfYuBT25XMKnri/aPUpR94=; h=Date:From:To:Subject; b=N+g3/6DYV1CC2CyPNi9+MurhUCeiMfYnM/l78AE1bpGFlTKIZS+PdVLGoCzgTjlDf zZHr41//vmYgtSlyT+A/1Gog6Mt62ZE0AJSMZiCH90nAvMvjDq+kzGSQOVRU2I5dog ID42pr3MBkH+yQrBSHdUeK+Q2IMopHJijyRiCh6I=
また、受信側(この例ではgmail)では以下のようなヘッダ情報が追加されます。
Authentication-Results: mx.google.com; spf=pass (google.com: domain of user@junkie.work designates 2001:2e8:61f:0:2:1:0:bd as permitted sender) smtp.mail=user@junkie.work; dkim=pass header.i=@junkie.work