Beberapa waktu yang lalu saya menulis artikel mengenai implementasi DKIM/DomainKeys pada Zimbra Mail Server berbasis SUSE Linux Enterprise Server (SLES) 11 SP1. DKIM/DomainKeys adalah metode signing sebuah mail menggunakan Public-key cryptography sebagai bukti bahwa email yang terkirim sudah divalidasi oleh pengirimnya. Penerapan DomainKeys/DKIM pada mail server akan meningkatkan eligibilitas suatu email yang dikirimkan.
Selain DKIM/DomainKeys, ada beberapa faktor lain yang mempengaruhi performance suatu mail server (baca link diatas untuk lengkapnya), namun DKIM/DomainKeys merupakan salah satu feature penting yang sebaiknya diimplementasikan.
Tadi siang ada saya melakukan implementasi sistem pada salah satu klien Excellent yang menggunakan Zimbra Mail Server diatas Ubuntu LTS 10.04.2 64 bit. Salah satu improvement yang saya lakukan adalah implementasi DKIM/DomainKeys menggunakan OpenDKIM. Sebagai sample, saya akan menggunakan live domain saya sendiri, yaitu vavai.net. Berikut adalah contoh message header saat belum diimplementasikan DKIM, belum ada label Signed By :
Langkah-langkah implementasi DKIM dapat dibagi kedalam 5 bagian, yaitu :
- Instalasi OpenDKIM
- Konfigurasi OpenDKIM
- Konfigurasi DNS Records
- Integrasi dengan Zimbra Mail Server
- Testing & Verifikasi DKIM
INSTALASI OPENDKIM
OpenDKIM sudah ada pada repo Ubuntu jadi untuk instalasi bisa langsung dilakukan dengan perintah apt-get sebagai berikut :
sudo apt-get update && apt-get install opendkim
KONFIGURASI OPENDKIM
- Lakukan perubahan isi file /etc/opendkim.conf, jangan lupa sesuaikan dengan nama domain dan IP yang mail server yang dikonfigurasi
# This is a basic configuration that can easily be adapted to suit a standard # installation. For more advanced options, see opendkim.conf(5) and/or # /usr/share/doc/opendkim/examples/opendkim.conf.sample. # Log to syslog Syslog yes # Required to use local socket with MTAs that access the socket as a non- # privileged user (e.g. Postfix) UMask 002 # Sign for example.com with key in /etc/mail/dkim.key using # selector '2007' (e.g. 2007._domainkey.example.com) Domain vavai.net KeyFile /etc/mail/mail.private Selector mail # Commonly-used options; the commented-out versions show the defaults. #Canonicalization simple Mode sv #SubDomains no #ADSPDiscard no Socket inet:8891@localhost X-Header Yes
- Buat file selector dan key (sesuaikan dengan nama domain dan selector yang digunakan)
opendkim-genkey -d vavai.net -D /etc/mail/ -s mail chmod 440 /etc/mail/mail.private
Perintah diatas akan menghasilkan 2 buah file yaitu mail.txt dan mail.private. File mail.txt berisi records DNS yang harus kita paste ke konfigurasi DNS Server yang kita gunakan, sedangkan file mail.private berisi kriptografi public key.
- Jalankan OpenDKIM dengan perintah :
/etc/init.d/opendkim start
Agar otomatis berjalan setiap kali sistem direstart, masukkan perintah diatas kedalam file /etc/rc.local
KONFIGURASI DNS SERVER
Buka file /etc/mail/mail.txt dan salin isinya menjadi salah satu records pada DNS Server. Jika DNS Server publik yang digunakan dikelola oleh pihak ISP, kirimkan file /etc/mail/mail.txt pada pihak ISP dan minta pada mereka untuk membuatkan records baru sesuai permintaan anda tersebut. Jika ISP tidak bersedia melakukannya dan tidak bersedia mendelegasikan wewenang perubahan DNS server pada anda, pertimbangkan untuk pindah ISP. Hal ini mutlak diperlukankarena DomainKeys/DKIM memang memerlukan penambahan records. Jika tidak, anda harus mengubur impian anda membuat DomainKeys :-).
Berikut adalah contoh tambahan TXT records untuk DNS Server yang saya kelola untuk vavai.net (merupakan isi dari file /etc/mai/mail.txt):
# cat /etc/mail/mail.txt
mail._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFaeJe6OvwfaveStqNTNfU1U24JxE5jYY3y2uUkMTQey64NWBM1lMZ5H/POGtevtYNuJkpBFRcqN5eencLzNO2/X7yPW7RC10OPAUtOlQyvM2D+MJ2HyhYNb0CF+WoRR/lPRzUjSZ9b+45QQkUlXb6frKBGQjIz4f/CACDQGZ2NQIDAQAB" ; ----- DKIM mail for vavai.net
INTEGRASI DENGAN ZIMBRA MAIL SERVER
Masuk sebagai Zimbra user (su – zimbra) dan tambahkan baris berikut pada file /opt/zimbra/postfix/conf/master.cf.in, tepat dibagian bawah baris :
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
-o milter_default_action=accept
-o smtpd_milters=inet:localhost:8891
-o non_smtpd_milters=inet:localhost:8891
-o disable_mime_output_conversion=yes
Setelah selesai, jalankan perintah : zmcontrol restart untuk melakukan restart service Zimbra.
TESTING & VERIFIKASI DKIM
Jika kesemua perintah diatas sudah diakukan, lakukan testing pengiriman email ke sa-test@sendmail.net atau check-auth@verifier.port25.com atau autorespond+dkim@dk.elandsys.com. Bisa juga dilakukan dengan mengirim email ke Gmail dan check pada bagian header apakah sudah mencantumkan label Signed By atau belum.
Berikut adalah contoh pesan dari sendmail :
Authentication System: DomainKeys Identified Mail
Result: DKIM signature confirmed GOOD
Description: Signature verified, message arrived intact
Reporting host: sendmail.net
More information: http://mipassoc.org/dkim/
Sendmail milter: https://sourceforge.net/projects/dkim-milter/
Pesan dari elandsys :
This is an automatic response. Replies to this message will not generate
an automatic response.
Do not reply to this message except for reporting a problem.
The results are as follows:
DKIM Signature validation: pass (1024-bit key)
Contoh respon dari Gmail
Hasil pengecekan message source :
Received-SPF: pass (google.com: domain of vavai@vavai.net designates 202.43.114.252 as permitted sender) client-ip=202.43.114.252;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of vavai@vavai.net designates 202.43.114.252 as permitted sender) smtp.mail=vavai@vavai.net; dkim=pass header.i=@vavai.net
Received: from localhost (localhost [127.0.0.1])
by mail.vavai.net (Postfix) with ESMTP id 4C41140322
for ; Fri, 1 Jul 2011 04:54:31 +0700 (WIT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=vavai.net; s=mail;
t=1309470871; bh=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN/XKdLCPjaYaY=;
h=Date:From:To:Subject:Message-ID:Content-Type:
Content-Transfer-Encoding:MIME-Version;
b=rGDDFx07Cfh0XB8+XMtQlbXmxuuiG+2R3KWlvkF/uzFtkizfQrH4MfRZ1gwBbY1aV
ByrfdB2LYsAJouH8/w3k5QKxgMfH4nvAM8A7u4xtPLnC24LoYMecNNDtbg8gUzEHZn
/ysSnnEvPvLuBeeO8CAZzP2mlDWqFIvm/YrModOo=
TROUBLE SHOOTING
Setting DomainKeys/DKIM merupakan salah satu proses konfigurasi yang butuh kesabaran dan ketelitian untuk mengimplementasikannya. Saran saya, ikuti panduan diatas sesuai dengan urutan dan jangan terburu nafsu untuk cepat-cepat mendapat hasilnya 🙂
Jika ada masalah, silakan share melalui halaman komentar dibawah ini.
27 Comments
Kalo di ubuntu, memasang prgram untuk jalan di startup bisa digunakan tool update-rc.d. Jadi tidak diletakkan di rc.local. Tapi ya, dimana saja boleh asal kebutuhan terpenuhi. 😀
kalau DKIM multiple domain dalam satu zimbra sepertinya tidak jalan? ada ide mas?
@Yudi,
Jalan kok mas, hanya perlu membuat nama domain dengan pemisah koma di opendkim.conf.
mas, TXT Records itu cara menambahkannya bagaimana ya? saya menggunakan NS dari webhosting, apakah saya menghubungi pihak hosting buat menambahkannya???
Terima kasih….
mas untuk installasi DKIM menggunakan Server Centos seperti apa ya ?, apakah sama atau ada yg berbeda, trus installasi DKIM ini dilakukan di DNS server atau di server terpisah sendiri ?
Pak vavai klo dns dengan mail server terpisah bagaimana cara implementasinya? kebetulan dns server ada di isp?
salam
@mikriting,
Sama saja mas, lakukan perubahan di DNS Server yang ada di ISP (kasih tahu mereka isi yang hendak ditambahkan)
mas kok linknya udh ga aktif yak buat download opendkimnya
awalnya server saya spf nya sudah pass, namun ketika saya implementasikan DKIM ini kenapa jadi eror ya? 🙁 adakah yg salah?
Received-SPF: temperror
problem solve 😀
makasih tutorialnya pak vavai 🙂
kok saya instal di ubuntu 14.04 tsl gagal ya.
mas vavai,
mohon petunjuk. saya gagal sampai step ini
opendkim-genkey -d vavai.net -D /etc/mail/ -s mail
errornya : “/usr/bin/opendkim-genkey: 140: cd: can’t cd to /etc/mail/”
saya check directory memang tak ada /etc/mail
apakah ada yang saya lewatkan
@Irkham, gagalnya karena apa?
@Ikhsan,
Folder /etc/mail bisa di create manual mas
mas vavai,
yang di DNS server public sebagai recordnya apakah komplit seperti ini
“v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFaeJe6OvwfaveStqNTNfU1U24JxE5jYY3y2uUkMTQey64NWBM1lMZ5H/POGtevtYNuJkpBFRcqN5eencLzNO2/X7yPW7RC10OPAUtOlQyvM2D+MJ2HyhYNb0CF+WoRR/lPRzUjSZ9b+45QQkUlXb6frKBGQjIz4f/CACDQGZ2NQIDAQAB” ; —– DKIM mail for vavai.net
ataukah hanya yang di dalam tanda petik ganda
v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFaeJe6OvwfaveStqNTNfU1U24JxE5jYY3y2uUkMTQey64NWBM1lMZ5H/POGtevtYNuJkpBFRcqN5eencLzNO2/X7yPW7RC10OPAUtOlQyvM2D+MJ2HyhYNb0CF+WoRR/lPRzUjSZ9b+45QQkUlXb6frKBGQjIz4f/CACDQGZ2NQIDAQAB
Ditulis lengkap tidak masalah, yang tanda petik saja juga OK mas.
mas vavai,
bolehkah record tersebut saya set di hosting? bukan di sisi ISP.
karena selama ini semua dns record (A, CNAME) saya set melalui hosting pada menu Advanced DNS Zone Editor di cPanel hostingnya
Apa bedanya set di sisi ISP atau set di sisi hosting?
Mas Vavai,
Saya start opendkim di Centos 6.7, muncul error seperti ini:
Starting OpenDKIM Milter: opendkim: /etc/opendkim.conf: /etc/opendkim/keys/mail.private is in group 0 which has multiple users (e.g. “sync”)
Ini maksudnya apa ya mas? saya sudah cari, tapi belum ketemu solusinya.
Mohon bantuannya mas.
Terima kasih.
zimbra saya gunakan untuk 3 domain,
tapi yang masuk inboxnya gmail hanya domain utama,
domain yang lain masuk junk (padahal statusnya email yang nge-junk tersebut pass untuk spf dan dkim nya).
di test pakai tool lain seperti mail-tester.com hasilnya perfect.
mas vavai.com
mohon bantuan dan sarannya..
di zimbra mail server saya sudah aktif semua.. mulai dari dkim, dmarch dan spf.. dan PTR record dari isp juga sudah mengarah ke doamin email semua.. tetapi saya send email ke gmail ataupun yahoo masih masuk spam/junk yaa..
mohon bantuan dan informasi sarannyaa,,, terima kasih banyak….
Makasi bung vavai buat tutsnya.
Disini saya ingin bertanya :
– pada saat saya ingin generate key dengan command opendkim-genkey -d domainsaya.com -D /etc/mail/ -s mail, keluar notif error: “bash: opendkim-genkey: command not found”.
Saya sudah mencoba install yum install crypto-utils, maupun yum install opendkim-tools namun tidak membantu.
Saya menggunakan centos 5.4 dan zimbra versi 7.2.
Kira-kira kenapa ya bung ?
Terimakasih..
@Supriyanto,
1. Rekomendasi : Install dan upgrade ke CentOS 7 dengan Zimbra 8.7 atau 8.8, karena Zimbra 7.x dan 8.0.x sudah end of life
2. Untuk opendkim-genkey mesti install dulu aplikasinya
Terimakasih bung vavai atas respon dan jawabannya.
Berarti memang harus di upgrade toh, saya pikir masih ada jalan tanpa di upgrade ^_^
Ok bung vavai saya akan coba mengikuti sarannya.
Sekali lagi, terimakasih atas respon dan jawabannya.
Sehat dan sukses selalu
Terimakasih atas tutorialnya,
ada 1 hal yang ingin saya tanyakan, kira nya bisa dibantu jawab. jika pada implementasi mail server dengan smtp server dipisah maka opendkim ini lebih cocok diinstall di server mana ya ya?
Sebelumnya saya ucapkan terimakasih
@Syarbel,
Disetting pada outgoing SMTP Server