Mail server yang disetup dengan baik harus memiliki beberapa kriteria tertentu, yang diukur dari reputasi dan rankingnya. Semakin tinggi reputasi dan ranking, semakin besar pula kemungkinan email dari mail tersebut dianggap eligible dan otomatis dianggap whitelist atau masuk ke Inbox.
Jika reputasi dan ranking mail server kurang baik, email kemungkinan besar akan masuk ke folder junk atau folder spam dan dalam tingkat yang parah, email dibanned/blacklist/ditolak. Kalaupun diterima, email bukan masuk ke Inbox melainkan langsung masuk ke tempat sampah alias didelete, hehehe…Tentu bukan hasil yang menyenangkan untuk kita sebagai Admin mail server.
Sebagai gambaran, berikut adalah beberapa kriteria mail server yang baik :
- Memiliki IP public static, bukan dynamic. Cukup banyak mail server tujuan yang menolak pengiriman email dari IP dynamic, karena IP dynamic ini kerap dijadikan sebagai media open relay suatu email
- IP tidak tercantum dalam Blacklist. IP public mail server tidak masuk ke dalam blacklist di beberapa layanan online blacklist seperti barracudacentral, spamhaus, spamcop dll. Jika mail server kita ingin menerapkannya, bisa membaca artikel ini : Tips Anti Spam Zimbra : Aktivasi Fasilitas Blacklist Spammer
- Memiliki reverse DNS/PTR Records. Keterangan detail mengenai DNS/PTR Records dapat dibaca pada tulisan ini : Tips Mail Server : Apa itu Reverse DNS Zone? sedangkan panduan untuk konfigurasinya jika DNS server dikelola sendiri bisa dilihat pada artikel Konfigurasi Reverse DNS Server (PTR Records) Secara Mudah
- Dilengkapi dengan SPF. SPF atau Sender Policy Framework berfungsi sebagai rujukan bahwa mail server bersangkutan memang eligible untuk mengirimkan email dengan domain tertentu. Penjelasan implementasi SPF dapat dibaca disini : Menangkal Spoofing & Phising Spam Menggunakan SPF (Sender Policy Framework)
- Dilengkapi dengan DomainKeys atau DKIM. DomainKeys atau DKIM pada dasarnya merupakan signature yang menjadi pertanda bahwa email yang keluar dari suatu mail server sudah di sign dengan kode tertentu sesuai nama domain dan identitas mail server sehingga dianggap syah dan meyakinkan sebagai pengirim resmi
Meski masih ada beberapa prasayarat sebuah mail server yang baik, 5 hal diatas sudah cukup membuat reputasi mail server meningkat. 15 point yang lebih lengkap mengenai audit suatu mail server dapat dibaca pada artikel mengenai Tips Audit Mail Server.
Panduan kali ini akan membahas mengenai penerapan DomainKeys/DKIM menggunakan OpenDKIM. Sebagai sample, saya menggunakan domain vavai.web.id yang berjalan pada sistem Zimbra Mail Server 7.0.0 beta 3 menggunakan sistem operasi SUSE Linux Enterprise Server 11 SP 1 64 bit. Jika menggunakan distro lain, silakan sesuaikan tahapan instalasi dan path folder yang digunakan.
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
Download dan install OpenDKIM. Untuk kemudahan, saya menggunakan repo yang ada pada alamat http://download.vavai.com. Saya menggunakan mesin 64 bit sehingga menggunakan aplikasi x86_64. Jika menggunakan mesin 32 bit, gunakan sesuaikan alamat aplikasi dengan menggunakan folder i586
wget -c http://download.vavai.com/repo/x86_64/opendkim-2.2.2-2.1.x86_64.rpm
wget -c http://download.vavai.com/repo/x86_64/libopendkim3-2.2.2-2.1.x86_64.rpm
zypper in *.rpm
KONFIGURASI OPENDKIM
- Buat salinan file konfigurasi OpenDKIM
cp /usr/share/doc/packages/opendkim/opendkim.conf.sample /etc/opendkim.conf
- Lakukan perubahan isi file /etc/opendkim.conf, jangan lupa sesuaikan dengan nama domain dan IP yang mail server yang dikonfigurasi
BaseDirectory /var/run/opendkim Domain vavai.web.id InternalHosts 192.168.10.0/24, 127.0.0.1 KeyFile /etc/mail/dkim/selector.private Mode sv Selector selector Socket inet:8891@localhost Syslog Yes SyslogFacility mail X-Header Yes
- Buat file selector dan key
mkdir -p /etc/mail/dkim opendkim-genkey -d vavai.web.id -D /etc/mail/dkim -s selector cd /etc/mail/dkim chmod 440 selector.private
Perintah diatas akan menghasilkan 2 buah file yaitu selector.txt dan selector.private. File selector.txt berisi records DNS yang harus kita paste ke konfigurasi DNS Server yang kita gunakan.
- Jalankan OpenDKIM dengan perintah :
opendkim -x /etc/opendkim.conf
Agar otomatis berjalan setiap kali sistem direstart, masukkan perintah diatas kedalam file /etc/init.d/after.local, kemudian lakukan perintah chmod +x /etc/init.d/after.local
KONFIGURASI DNS SERVER
Buka file /etc/mail/dkim/selector.txt dan salin isinya menjadi salah satu records pada DNS Server. Jika DNS Server publik yang digunakan dikelola oleh pihak ISP, kirimkan file selector.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. Terdengar kasar ? Tidak juga, karena DomainKeys/DKIM memang memerlukan penambahan records. Jika tidak, anda harus mengubur impian anda membuat DomainKeys.
Berikut adalah contoh isi konfigurasi DNS Server yang saya kelola untuk vavai.web.id :
# cat /var/lib/named/master/vavai.web.id
$TTL 2d
@ IN SOA ns1.vavai.web.id. root.ns1.vavai.web.id. (
2010122101 ; serial
3h ; refresh
1h ; retry
1w ; expiry
1d ) ; minimum
vavai.web.id. IN NS ns1.vavai.web.id.
vavai.web.id. IN NS ns2.vavai.web.id.
vavai.web.id. IN A 174.120.9.XXX
vavai.web.id. IN MX 0 mail.vavai.web.id.
www IN CNAME vavai.web.id.
ns1 IN A 202.158.52.xxx
mail IN A 202.158.52.xxx
ns2 IN A 202.43.115.xxx
vavai.web.id. IN TXT "v=spf1 a mx include:mail.vavai.web.id ~all"
selector._domainkey IN TXT "v=DKIM1; r=postmaster; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJ5IZT5e5nvmkotroz5ylTlwU8yEEZ+v/576aI+w6TkbP4XibYxDsWVweXXtVeQQmw8AwYuK5R9b373Xqu+Hv9HNAJoAteKF/qlKcZc5Akhj5B7P1imXaurZkkIBp63yBZyZRralzQYNT3UrVB7M/xONMWXcU9xm7Zv1PzH1Y1OQIDAQAB"
INTEGRASI DENGAN ZIMBRA MAIL SERVER
Masuk sebagai Zimbra user (su – zimbra) dan ganti/tambahkan baris berikut pada file /opt/zimbra/postfix/conf/main.cf :
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
milter_default_action = accept
Setelah selesai, jalankan perintah : postfix reload
UPDATE 02 Maret 2011
Agar bersifat permanen meski Zimbra berulangkali direstart, lakukan prosedur berikut :
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
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.
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
Received-SPF: pass (google.com: domain of vavai@vavai.web.id designates XXX.158.52.XXX as permitted sender) client-ip=XXX.158.52.XXX;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of vavai@vavai.web.id designates XXX.158.52.XXX as permitted sender) smtp.mail=vavai@vavai.web.id; dkim=pass header.i=@vavai.web.id
Received: from localhost (localhost [127.0.0.1])
by mx3.vavai.web.id (Postfix) with ESMTP id 0E666DB0302
for ; Wed, 22 Dec 2010 09:42:12 +0700 (WIT)
X-Virus-Scanned: amavisd-new at vavai.web.id
Received: from mx3.vavai.web.id ([127.0.0.1])
by localhost (mx3.vavai.web.id [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id On3P3QqkyMM4 for ;
Wed, 22 Dec 2010 09:42:11 +0700 (WIT)
Received: from mx3.vavai.web.id (mx3.vavai.web.id [XXX.158.52.XXX])
by mx3.vavai.web.id (Postfix) with ESMTP id 56CC1DB0136
for ; Wed, 22 Dec 2010 09:42:11 +0700 (WIT)
X-DKIM: OpenDKIM Filter v2.2.2 mx3.vavai.web.id 56CC1DB0136
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=vavai.web.id;
s=selector; t=1292985731;
bh=cBOiyKgb7kh/ygTXq8sQihgwMCryqYRvRZBYcO6/z5U=;
h=Date:From:To:Message-ID:Subject:MIME-Version:Content-Type;
b=KMOYjsda6qPqNdf0NuyxdEayFxgRCAVmilYKobK3sKV8hSvybT3fmbWM+2mZUCzMY
sDSdVVTXMB6RnHoEPyPzNFK7y9TPpAn0SPkGqL0nSzQ+Fr6/VaEBHrcQGduUNm5Ot5
V0Y9vIcmfjLGWTkkAX0RjHpV/9ZK8VPJD0etRsM0=
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 apakah perintah diatas juga sama mas? makasih
@Made, mestinya sama, hanya perlu penyesuaian sedikit mas. Saya juga melakukan implementasi dengan panduan yang ditulis untuk CentOS kok 😀
Thanks om… setelah baca” di sini dan di sana akhirnya bisa juga setting SPF, Domainkeys
Untuk DKIM berharil di mesin yang pake postfix/CentOS, untuk mesin yang pake cpanel/exim dan plesk/psa (pake postfix) belum ketemu caranya
ketika saya mencoba
/opt/zimbra/postfix/conf/master.cf.in
dengan saya tambahkan
-o milter_default_action=accept
-o smtpd_milters=inet:localhost:8891
-o non_smtpd_milters=inet:localhost:8891
-o disable_mime_output_conversion=yes
selanjutnya,
zmcontrol restart
zmcontrol status
antispam Running
antivirus Running
ldap Running
logger Running
mailbox Running
mta Stopped
postfix is not running
snmp Running
spell Running
stats Running
zmconfigd Running
slalu seperti itu
setelah saya jalankan opendkim +x /etc/opendkim.conf
muncul pesan berikut :
opendkim: error while loading shared libraries: libopendkim.so.3: cannot open shared object file: No such file or directory
Mau tanya mas,
Saya sedang membuat/mengaktifan DKIM pada ubuntu saya
semua prosedur telah dilakukan
saat mengaktifkannya, /etc/init.d/opendkim start
yang muncul adalah “opendkim: /etc/opendkim.conf: at least one
selector and key required for signing mode”
apakah maksudnya dkimnya sudah aktif mas?
padahal sudah ada mail.txt dan mail.selector pada /etc/mail
Mohon pencerahan.
saya sudah setting semuanya…, tapi pas dibagian ” opendkim -x /etc/opendkim.conf “, ada pesan error. Error : opendkim: smfi_opensocket() failed
itu apanya ya mas???……mohon bantuannya
@Rahman,
Hapus baris ini mas dari file /etc/opendkim.conf :
“BaseDirectory /var/run/opendkim”
sy sdh konfig dkim sesuai sama yg diatas…tp knp ttp DKIM Signature validation: not available jawaban dari elandsys dan Result: (no result present) jawaban dari sendmail, apa yg salah y, sy pake centos untuk mesinnya zimbra v 7
terimakasih sebelumnya
CentOS versi 5 atau 6 mas?
@mas vavai cenos versi 5.3 (final)
mas Wahyu,
Check tulisan terbaru saya mas : http://www.excellent.co.id/excellent/resource/solved-domainkeysdkim-problem-cant-read-smfic_data-reply-packet-header-zimbra-7-centos-5/
sy sudah cb yg di tulisan terbarunya, tetap msh blm bisa y?
apa karena gini
subdomain emailnya mail.XX.ac.id
id email yg digunakan wahyuprio@XX.ac.id
utk record dnsnay selector._domainkey sy menggunakan mail.XX.ac.id bkn XX.ac.id
apakah itu berpengaruh?
klo pesan errornya seperti ini apa yang salah yah mas vavai
opendkim: smfi_opensocket() failed
@Mahmud,
Biasanya si DKIM sudah berjalan atau portnya sudah dipakai. Ini setting DKIM untuk Zimbra berapa?
zimbra versi 7.0 mas vavai pake open suse 11 sp1
Mas, kalau ada pesan error disaat service opendkim start ini kenapa ya ? pesan error nya seperti ini
Starting OpenDKIM Milter: opendkim: /etc/opendkim.conf: refile:/etc/opendkim/TrustedHosts: dkimf_db_open(): Permission denied
@yoga,
Check di bagian /etc/opendkim.conf, sepertinya mas ada set baca file /etc/opendkim/TrustedHosts namun file ini tidak ada atau tidak bisa diakses. Konfigurasinya cukup seperti contoh saya diatas saja mas
Mas vavai, saya sudah mencoba implementasi open dkim pada zimbra. saya coba kirim ke gmail alhasil header mail sudah ada informasi dkimnya, tetapi sy coba tes mail ke sa-test@sendmail.net hasilnya “DKIM signature confirmed BAD, Unrecoverable error during processing; signature data cannot be verified”. dan juga cek dkim di http://dkimcore.org/tools/keycheck.html hasilnya “the p= field must be base64 encoded”.
Ini kenapa ya mas? mohon pencerahannya. terima kasih
mas vavai , source rpm nya masih punya , saya coba download dari link diatas tapi sudah tidak ada .
terimakasih
mas…. bagaimana cara menambah repo dari vavai.com di centos7 ?