インストール
インストールはyumを利用します。
# yum install opendkim
access: 172069
インストールはyumを利用します。
# yum install opendkim
まずは鍵を生成します。
複数ドメイン利用することを前提にしますので、ドメイン名でディレクトリを作ってそこで生成。
# mkdir /etc/opendkim/keys/junkie.work # cd /etc/opendkim/keys/junkie.work # opendkim-genkey -d junkie.work # chown -R root:opendkim . # chmod 640 default.private # chmod 644 default.txt
/etc/opendkim/opendkim.confに設定を記載します。
PidFile /var/run/opendkim/opendkim.pid Mode sv Syslog yes SyslogSuccess yes LogWhy yes UserID opendkim:opendkim Socket inet:8891@localhost Umask 002 Canonicalization relaxed/relaxed Selector default MinimumKeyBits 1024 KeyTable /etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts AlwaysAddARHeader yes
/etc/opendkim/KeyTable には、ドメインの鍵情報を一行ずつ記載します。
default._domainkey.junkie.work junkie.work:default:/etc/opendkim/keys/junkie.work/default.private(↑実際には一行です)
/etc/opendkim/SigningTable には、署名するためのマッチング情報を記載します。
*@junkie.work default._domainkey.junkie.work
/etc/opendkim/TrustedHosts には、信用できる(処理を行わない)相手の情報を記載します。
127.0.0.1 10.0.0.0/16
サービスを起動し、問題なければ自動起動をonにしておきます。
# service opendkim start # chkconfig opendkim on
DKIMでは、相手に公開鍵を渡す手段としてDNSを利用するので、ドメイン情報に鍵を追加します。
/etc/opendkim/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を再起動して反映させておきます。
準備が整ったら、postfixにDKIMを利用する設定を追加します。
/etc/postfix/main.cf に以下の設定を追加します。
smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = 127.0.0.1:8891 milter_default_action = accept
サービス再起動。
# service postfix restart
準備が整ったら、sendmailにDKIMを利用する設定を追加します。
/etc/mail/sendmail.mcに以下の一行を追加します
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@127.0.0.1')
sendmail.mcからsendmail.cfを生成してサービス再起動。
# cd /etc/mail # make # 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