Qmail and DomainKeys
Get the source
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://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/qmail-1.03.errno.patch wget http://www.thedjbway.org/qmail/patches/qmail-1.03.big-dns.patch
Backup qmail and shut it down
tar zcvf qmail-backup.tar.gz /var/qmail /home/vpopmail /etc/tcp.smtp /service/qmail /service/smtp/
svc -d /service/{qmail,smtp}
killall -v qmail-remoteInstall libdomainkeys
tar zxvf libdomainkeys-0.68.tar.gz
cd libdomainkeys-0.68
make
cd libdomainkeys-0.68
make
Install qmail-dk
tar zxvf /usr/local/src/qmail-1.03.tar.gz
# Move qmail inside libdomainkeys
mv qmail-1.03 libdomainkeys-0.68
cd qmail-1.03
patch -p1 < ../qmail-1.03.errno.patch
patch -p1 < ../qmail-1.03.big-dns.patch
patch -p1 < ../qmail-1.03-dk-0.54.patch
make 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
# Move qmail inside libdomainkeys
mv qmail-1.03 libdomainkeys-0.68
cd qmail-1.03
patch -p1 < ../qmail-1.03.errno.patch
patch -p1 < ../qmail-1.03.big-dns.patch
patch -p1 < ../qmail-1.03-dk-0.54.patch
make 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
Generate key pair
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 -R qmailq /etc/domainkeys
chmod 0600 default
# If qmail is not patched with qmailqueue
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
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 -R qmailq /etc/domainkeys
chmod 0600 default
# If qmail is not patched with qmailqueue
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
Create a TXT record
grep -v ^- rsa.public | perl -e 'while(<>){chop;$l.=$_;}print "t=y; p=$l;\n";'
# The TXT records are:
_domainkey.example.com. IN TXT "t=y; o=-";
default._domainkey.example.com. IN TXT "TXT record generated from previous step"Modify /etc/tcp.smtp
10.0.0.2:allow,RELAYCLIENT="",DKSIGN="/etc/domainkeys/example.com/default",QMAILQUEUE="bin/qmail-dk" :allow,DKVERIFY="DEGIJKfh",QMAILQUEUE="bin/qmail-dk" # And rebuild the cdb qmailctl cdb
Sendmail wrapper
#!/bin/sh
export QMAILQUEUE=/var/qmail/bin/qmail-dk
export DKSIGN=/etc/domainkeys/example.com/default
exec /var/qmail/bin/sendmail "$@"
export QMAILQUEUE=/var/qmail/bin/qmail-dk
export DKSIGN=/etc/domainkeys/example.com/default
exec /var/qmail/bin/sendmail "$@"
Reference http://jeremy.kister.net/howto/dk.html
There are no comments on this page. [Add comment]