Beberapa saat yg lalu, queue di mailserver kantor tiba-tiba menjadi sangat banyak. Lebih dari batas maksimal 'alert' queue yg saya set.
Setelah diselidiki lebih lanjut, ternyata banyak queue yg numpuk ke arah mx-nya yahoo. Oleh yahoo di-defer, dan disuruh mencoba lagi beberapa waktu lagi.
Dugaan saya ini berkaitan dengan DomainKeys (DK) dan DomainKeys Identified Mail (DKIM). Ya, email yg keluar dari mailserver kantor memang belum mengimplementasikan DK atau DKIM. Untuk lebih jelas tentang DK atau DKIM, bisa dibaca disini dan disana.
Diantara DK dan DKIM, setelah saya baca2, DKIM merupakan penyempurnaan dari DK. DK juga sudah tidak develop lagi. Jadi saya putuskan untuk memakai DKIM. DKIM bisa diperoleh di dkim-milter.sf.net atau kalau menggunakan debian/ubuntu, nama paketnya dkim-filter.
Cara install settingnya sangat sederhana.
#apt-get install dkim-filter
Setelah itu, kita generate private key dan entry untuk dipasang di DNS.
#dkim-genkey -d rootbox.or.id -s 201002
-d rootbox.or.id adalah nama domain yg akan di-sign
-s 201002 adalah selector. Selector akan dipasang di DNS sehingga mx tujuan dapat memverifikasi email yg telah di-sign dari kita. Google lebih dapat menjelaskan daripada saya. ;p
Dari hasil perintah diatas, didapat 2 buah file. 201002.txt berisi entry untuk DNS dan 201002.private yg berisi private key untuk men-sign email. Contoh isi dari 201002.txt:
201002._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=XSDsd34Gx67g...bk2s” ; —– DKIM 201002 for rootbox.or.id
Silahkan pasang entry tersebut di DNS server anda. Atau paling mudah, silahkan minta ke DNS admin untuk dipasangkan ke domain anda.
Kemudian, kita pindah file 201002.private ke folder /etc/dkim/ (folder ini belum ada, silahkan dibuat).
Setelah itu kita sesuaikan dahulu konfigurasi dkim-filter. Berikut yang saya sesuaikan.
Domain rootbox.or.id
KeyFile /etc/dkim/201002.private
Selector 201002
InternalHosts /etc/dkim/internalhosts.txt
Mode sv
Secara default, dkim-filter akan men-sign email yg datang dari localhost. Namun tidak yg datang dari local subnet kita. Untuk itu diperlukan entry InternalHost. Isinya kira2 sebagai berikut:
127.0.0.1
192.168.1.0/24
192.168.2.0/24
202.154.57.0/24
Sesuaikan dengan subnet yg dibolehkan untuk merelay di mailserver tersebut.
dkim-filter secara default akan listen di port 8891. Namun apabila ingin mengubahnya, bisa edit di /etc/default/dkim-filter
Setelah itu, ditambahkan ke postfix. Edit main.cf
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
Setelah itu direstart postfix dan dkim-filter.
#/etc/init.d/dkim-filter restart
#/etc/init.d/postfix restart
Setelah itu dicoba kirim. Untuk lebih mudahnya, silahkan dicoba kirim ke yahoo atau gmail. Apabila telah ada entry sebagai berikut, maka setting dkim telah berhasil.
Authentication-Results: mx-nya-yahoo; dkim=pass (1024-bit key)
header.i=@rootbox.or.id;
Apabila anda menggunakan distro Ubuntu 8.04 atau Hardy, anda cukup berhenti sampai disini. Namun apabila anda menggunakan distro Ubuntu 6.06 atau Dapper masalah tidak berhenti disini. Karena distro Dapper masih menggunakan versi lama. Postfix versi 2.2 maka tidak mendukung konfigurasi smtpd_milters. Walhasil harus mengupgrade postfix. Sedikit googling dan mencari di packages.ubuntu.com/postfix saya menemukan paket backports-dapper dari postfix. A-ha!
Kemudian dicoba pasang repository backports. Setelah dicoba apt-get, masih tetap tidak ter-upgrade ke versi 2.5. Ternyata, paket binary yg tersedia di backports cuma ada untuk i386 (32bit) dan powerpc. Ah, yg amd64 tidak tersedia.
Akhirnya diputuskan untuk mengcompile sendiri. Tinggal mendownload source dengan perintah
$apt-get source postfix
Kemudian masuk ke directory dari source postfix tersebut. Dan tinggal ketik
$dpkg-buildpackage -rfakeroot
Namun, ternyata ada error. Yaitu meminta untuk dicompile dengan -fPIC paket tinycdb-nya. Karena paket tinycdb binary yg dari ubuntu tidak dicompile dengan -fPIC, maka terpaksa harus mengcompile sendiri.
$apt-get source tinycdb
$vi tinycdb-0.74/Makefile
edit bagian "CC = cc"
menjadi "CC = cc -fPIC"
kemudian kita compile
$cd tinycdb-0.74
$dpkg-buildpackage
$sudo dpkg -i tinycdb_0.74-1_amd64.deb
Setelah itu kita lanjutkan lagi mengcompile postfix.
$cd postfix-2.5.4
$dpkg-buildpackage -rfakeroot
Kemudian diinstall
$sudo dpkg -i postfix_2.5.4-1~dapper1_amd64.deb
Setelah itu, tinggal dikonfigurasi sesuai yg diinginkan.
--budiw
referensi:
blognya jp
help.ubuntu.com