PostfixにDKIMを対応させる。(2)(CentOS-5のみ)

dkim-milterの最新バージョンは2.8.3だが、CentOSのm4のバージョンが古い為にビルドできないのでRPMパッケージからインストールしてみました。(2009年11月時点)
2010年3月 間違っているとの指摘を受けて一部修正しました。(なゆき様、ご指摘ありがとうございます)

参考にしたところ

下準備 (以前のdkim-milterを削除する。)

service dkim-milter stop
rpm -e dkim-milter

※削除されなかったファイルやディレクトリも削除する。

GPG-KEY をインポートする

rpm --import http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL

rpmパッケージをインストールする。

rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/5/i386/
dkim-milter-2.8.3-3.el5.i386.rpm (1行で記述)

ココで新しいバージョンの確認をする

公開鍵と秘密鍵を作成する

cd /etc/mail/dkim-milter/keys/
dkim-genkey -s selector -d exaple.com

秘密鍵のパーミッションを変更

chmod 600 selector.private
chown dkim-milter:dkim-milter selector.private

ここからdkim-milterを設定する為にファイルの編集を行う。

keylistを修正する

vi /etc/mail/dkim-milter/keys/keylist
# *:example.com:selector
*:example.com:selector

dkim-fileter.confを修正する。

vi /etc/mail/dkim-milter/dkim-filter.conf

# ADSPDiscard           No
ADSPDiscard             yes

# ADSPNoSuchDomain      No
ADSPNoSuchDomain        yes

# AllowSHA1Only         no
AllowSHA1Only           no

# AlwaysAddARHeader     no
AlwaysAddARHeader       no

# AutoRestart           No
AutoRestart             yes

# AutoRestartRate       n/tu
AutoRestartRate         10/1h

# BaseDirectory         /var/run/dkim-milter
BaseDirectory           /var/run/dkim-milter

# Canonicalization      simple/simple
Canonicalization        simple/simple

# Domain                mydomain1.com
Domain                  example.com

# ExternalIgnoreList    filename
ExternalIgnoreList      /etc/mail/dkim/trusted-hosts
ExternalIgnoreList      /etc/mail/dkim-milter/trusted-hosts

# InternalHosts         filename
InternalHosts           /etc/mail/dkim/trusted-hosts
InternalHosts           /etc/mail/dkim-milter/trusted-hosts

# KeyFile               /var/db/dkim/example.private
KeyFile                /etc/mail/dkim-milter/keys/selector.private

# KeyList               /var/db/dkim/example.private
KeyList                 /etc/mail/dkim/keylist
KeyList                 /etc/mail/dkim-milter/keylist

# LocalADSP             /etc/mail/local-adsp-rules
LocalADSP               /etc/mail/local-adsp-rules

# Mode                  sv
Mode                    sv

# MTA                   name
MTA                     MSA

# On-Default
On-Default              reject
# On-BadSignature
On-BadSignature         reject
# On-DNSError
On-DNSError             tempfail
# On-InternalError
On-InternalError        accept
# On-NoSignature
On-NoSignature          accept
# On-Security
On-Security             discard

# PidFile               filename
PidFile                 /var/run/dkim-milter/dkim-milter.pid

# RemoveOldSignatures     No
RemoveOldSignatures       yes

# Selector              my-selector-name
Selector                selector

# SignatureAlgorithm      rsa-sha256
SignatureAlgorithm        rsa-sha1

# Socket                inet:20209@localhost
Socket                  inet:10032@localhost

# Syslog                No
Syslog                  yes

# SyslogFacility       mail
SyslogFacility        mail

# SyslogSuccess         No
SyslogSuccess           yes

# TemporaryDirectory      /var/tmp
TemporaryDirectory        /var/tmp

# UMask                 022
UMask                   022

# UserID                userid
UserID                  dkim-milter:dkim-milter

(2009-12-22 修正)(2010-3-29 修正)

ADSPを設定する

vi /etc/mail/local-adsp-rules
example.com:unknown

unix socketで動かなかったので inetを使う。

vi /etc/rc.d/init.d/dkim-milter
#SOCKET=local:/var/run/${name}/${name}.sock
SCKET inet:10032@localhost
SOCKET=inet:10032@localhost

LAN内のPCから送信して署名が付くようにする。

vi /etc/rc.d/init.d/dkim-milter
TRUST="/etc/mail/dkim-milter/trusted-hosts"
EXTRA_ARGS="-h -l -D -i ${TRUST} -I ${TRUST}"

署名をつけるネットワークのリストを設定。

vi /etc/mail/dkim-milter/trusted-hosts
localhost
127.0.0.1
192.168.100.0/24
192.168.200.0/24

DNSへの設定

公開鍵をDNSのゾーンファイルへ書き込む。

cat /etc/mail/dkim-milter/keys/selector.txt >>
 /var/named/chroot/var/named/example.com.db(1行で記述)

DNSのゾーンファイルに追記する。

_adsp._domainkey.example.com. IN TXT "dkim=unknown"
selector._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=
~省略~" ;----- DKIM selector for example.com

DNSをリロードする。

service named reload
service named restart

dkim-milter起動設定

chkconfig dkim-milter on

Postfixの設定

vi /etc/postfix/main.cf
#DKIM
smtpd_milters = inet:10032
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

その他

手動でdkim-milterを起動、停止させる場合はPostfixも起動、停止させる必要が有ります。(順番が大切)

起動させる

service dkim-milter start
service postfix start

停止させる

service postfix stop
service dkim-milter stop

ここの下の方にある”DKIMのチェック メールで確認”に空メールを送信して動作確認すればOK

コメント&トラックバック

トラックバックURL: http://www.moritox.jp/centos/dkim_2/trackback