qmailでのDomainKeysについて

2010年4月30日

能書きはともかくコマンドをひたすら羅列。参考になれば。

wget http://superb-east.dl.sourceforge.net/sourceforge/domainkeys/libdomainkeys-0.68.tar.gz
wget http://www.qmail.org/qmail-1.03-dk-0.54.patch
wget http://jeremy.kister.net/code/qmail-dk-0.54-auth.patch
tar xfvz libdomainkeys-0.68.tar.gz
cd libdomainkeys-0.68
make

もしここでmakeにエラーが出たら
echo -lresolv > dns.lib

make

cd ..
tar xfvz qmail-1.03.tar.gz
patch -d qmail-1.03 < qmail-1.03-dk-0.54.patch
patch -d qmail-1.03/ < qmail-dk-0.54-auth.patch
cd qmail-1.03
patch < ../qmail-date-localtime.patch
patch -p1 < ../qmail-0.0.0.0.patch
patch -p1 < ../qmail-103.patch
patch < ../sendmail-flagf.patch
patch -p1 < ../qmail-1.03.errno.patch

!注意!
smtp-auth関係のパッチはあてる必要なし。これをあてるとうまくいかない。

qmail-dkの作成。libdomainkeysのヘッダファイルが参照できない場合があるようなので、
専用のディレクトリ空間を作成し、そこで行うようにする。

mkdir test
cp -Rpf qmail-1.03 test
cp -Rpf libdomainkeys-0.68/* test/
cd test/
cd qmail-1.03/
make qmail-dk

qmail-dkをインストール

cp qmail-dk /var/qmail/bin/
cp qmail-dk.8 /var/qmail/man/man8/
chown qmailq /var/qmail/bin/qmail-dk
chmod 4711 /var/qmail/bin/qmail-dk

署名用の鍵ファイル作成

mkdir -p /etc/domainkeys
mkdir -p /etc/domainkeys/example.com
cd /etc/domainkeys/example.com/
openssl genrsa -out rsa.private 768
openssl rsa -in rsa.private -out rsa.public -pubout -outform PEM
mv rsa.private default
chown -Rf qmailq /etc/domainkeys
chmod 0600 default
grep -v ^- rsa.public | perl -e 'while(<>){chop;$l.=$_;}print “t=y; p=$l;\n";’

リレー用ファイル更新

cd /home/vpopmail/
cd etc
vi tcp.smtp
tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
/home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

最後に、本当のインストール

ln /var/qmail/bin/qmail-queue /var/qmail/bin/qmail-queue.orig
ln /var/qmail/bin/qmail-dk /var/qmail/bin/qmail-queue.new
mv /var/qmail/bin/qmail-queue.new /var/qmail/bin/qmail-queue

/etc/rc.d/init.d/qmail restart

value-domainのネームサーバーの設定例

txt @ v=spf1 +ip4:xxx.xxx.xxx.xxx ~all
txt mail v=spf1 +ip4:xxx.xxx.xxx.xxx ~all
txt _domainkey t=y;o=-
txt default._domainkey t=y;k=rsa;p=~~~~~~~