pasang dkim di qmail tanpa patch

1. install libdomainkeys. download dari sourceforge lalu

$ tar xzfv libdomainkeys-0.69.tar.gz
$ cd libdomainkeys-0.69
$ make

jika muncul error seperti berikut :

./libdomainkeys.a(dns_txt.o): In function `dns_text':
dns_txt.c:(.text+0x2d): undefined reference to `__res_query'
dns_txt.c:(.text+0xc0): undefined reference to `__dn_expand'
dns_txt.c:(.text+0x11e): undefined reference to `__dn_expand'
collect2: ld returned 1 exit status
make: *** [dktest] Error 1
solusinya :
$
echo -lresolv > dns.lib

lalu ulangi lagi proses diatas. kalo tidak ada error lanjut
$ su –
$ install -m 644 libdomainkeys.a /usr/local/lib/
$ install -m 644 domainkeys.h dktrace.h /usr/local/include/
$ install -m 755 dknewkey /usr/local/bin/
$ install -m 755 dktest /usr/local/bin/

2. install Mail::DKIM.  ada 2 cara yaitu melalui CPAN atau manual.

melalui CPAN :

$ perl -MCPAN -e shell

cpan> install Mail::DKIM

cara manual :

browse ke http://search.cpan.org lalu cari Mail::DKIM kemudian download lalu

$ tar xzfv Mail-DKIM-0.40.tar.gz
$ cd Mail-DKIM-0.40
$ perl Makefile.PL
$ make
$ make test
$ su –
$ make install

jika ada dependensi yang kurang ketika install Mail::DKIM, penuhi dengan cara manual untuk masing-masing dependensi hingga tidak ada komplain ketika install Mail::DKIM. Selanjutnya:

$ cd /usr/local/bin
$ wget http://www.memoryhole.net/qmail/dkimsign.pl
$ wget http://www.memoryhole.net/qmail/dkimverify.pl
$ chmod 755 dkimsign.pl
$ chmod 755 dkimverify.pl

3. bikin key pair dan seting DNS. untuk ini kita bisa minta bantuan dkimcore.
pertama, gunakan tool generate a dkim core key. ketik nama domain anda (misal: serverku.com) lalu klik generate.
catat selector yang berupa 10 digit angka (misal:1366597073).
copy link pada Download private key lalu

$ su –
$ mkdir -p /etc/domainkeys/serverku.com/
$ cd /etc/domainkeys/serverku.com/
$ wget yyy (ganti yyy dengan paste link yang tadi dicopy dari Download private key)
$ mv privatekey.txt 1366597073 (sesuaikan dengan selector yang tadi diperoleh diatas)
$ chown -R qmailq /etc/domainkeys
$ chgrp qmail 1366597073 (sesuaikan dengan selector yang tadi diperoleh diatas)
$ chmod 0640 1366597073 (sesuaikan dengan selector yang tadi diperoleh diatas)

selanjutnya seting DNS. Jika menggunakan Bind gunakan hasil dari tool generate a dkim core key bagian Bind 9 Format.
copy lalu
$ vi /var/named/ serverku.com.zone

setelah paste, hapus kata serverku setelah angka-angka selector sehingga hasilnya seperti berikut :

1366597073._domainkey.serverku.com. IN TXT (
“v=DKIM1;t=s;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYrSCbfKerv5o6lht41H5EU3cy”
“lnUfx7i+uPnjTOtV2im1u5cHW63PwMrisfwTE6MdMK9wrUVHQO+dt+n+bkUArRg+”
“5FNMoHtbPbwuVYM2/BiU9FZNoRqz/ct6WVV6O2FTHeAL4SuldeOC0X+UgS+cDUb5”
“sGtDeTF2p0Ar/iPqUwIDAQAB”)
simpan lalu keluar dari dari editor vi dan restart Bind. Demikian juga jika menggunakan tinydns jangan lupa hapus kata serverku.

4. pasang qmail-remote wrapper

$ su –
$ cd /var/qmail/bin
$ mv qmail-remote qmail-remote.orig
$ vi qmail-remote-wrapper.sh isi dengan baris-baris berikut (atau download disini) :
#!/bin/bash
DOMAIN=”serverku.com”
DKREMOTE=”/var/qmail/bin/qmail-remote.orig”
DKSIGN=”/etc/domainkeys/$DOMAIN/1366597073″
tmp=`/bin/mktemp -t dk.sign.XXXXXXXXXXXXXXXXXXX`
/bin/cat – >”$tmp”
( /usr/local/bin/dktest -s “$DKSIGN” -c nofws -h <“$tmp” 2>/dev/null |
/bin/sed ‘s/; d=.*;/; d='”$DOMAIN”‘;/’ ;
/usr/local/bin/dkimsign.pl –type=dkim –selector=1366597073
–key=”$DKSIGN” –method=relaxed <“$tmp” |
/usr/bin/tr -d ‘r’ ;
/bin/cat “$tmp” ) |
“$DKREMOTE” “$@”
retval=$?
/bin/rm “$tmp”
exit $retval

penyesuaian yang harus dilakukan adalah pada :
a. DOMAIN
b. DKSIGN pada bagian akhir sesuaikan dengan selector yang tadi diperoleh diatas
c. –selector= sesuaikan dengan selector yang tadi diperoleh diatas

perhatikan juga path untuk file-file binary, pastikan bahwa path file tersebut sesuai (misal:/bin/mktemp). simpan lalu keluar dari editor vi.

$ chmod a+x qmail-remote-wrapper.sh
$ ln -s qmail-remote-wrapper.sh qmail-remote

untuk testing bisa gunakan tool dari www.appmaildev.com klik tombol next step lalu kirim email dari salah satu akun email @serverku.com ke email yang muncul (misal: AAAA3QcEFRcA@appmaildev.com )

akan ada balasan email yang berisi report. jika berhasil maka isi report ada cuplikan :

===========================================================DomainKey result: pass

===========================================================DKIM result: pass

Cara testing lainnya adalah kirim email kosong ke check-auth@verifier.port25.com dan tunggu sejenak untuk balasan email yang berisi info tentang status SPF, DKIM dan DomainKeys mail server anda.