Implementasi SPF, DKIM, DMARC dan Reverse DNS Sebagai Standard Protection dan Meningkatkan Email Integrity
Ketika kita membangun sebuah email server sering kita lupa bahwa ada
konfigurasi tambahan yang harus kita lakukan. Konfigurasi ini termasuk
kategori penting loh sebab ini terkait integritas email system yang telah kita bangun, pertanyaannya itu seberapa penting sih?
Banyak Email System saat ini terutama seperti Gmail, Yahoo, AOL, sampe Email System Perbankan (Bank-Bank) biasanya sangat memperhatikan paramater-parameter seperti SPF, DKIM, DMARC, dan Resolve DNS yang digunakan oleh si pengirim email. Kenapa sih kok ribet amat yah? Itu karna mereka mengeluarkan banyak tenaga untuk bertarung melawan spam dan email spoofing. Inilah kenapa sebabnya biasanya paket email yang tidak terdapat SPF, DKIM, DMARC bahkan yang Resolve DNS nya kurang baik konfigurasinya sering dianggap spam dan lebih parahnya lagi bahkan di DROP oleh email system penerima.
By the way untuk tulisan ini best practicenya menggunakan platform
zimbra. Namun, kudu diinget meskipun saya sebelumnya pernah berguru sama
salah satu jagoan email server dgn platform zimbra di Indonesia, bukan
berarti bahwa standard yang saya tulis ini hanya untuk platform zimbra
saja, namun sebenernya juga untuk semua platform. Artinya ketika selesai
mendeploy sebuah email system jangan cuma intinya bisa kirim dan
terima email saja, sebaiknya jangan lupa juga tambahkan konfigurasi
lainnya untuk meningkatkan proteksi dan juga email integrity, antara
lain yaitu sebagai berikut ini :
- Sender Policy Framework (SPF).
- Domain Keys Identified Mail (DKIM).
- Domain-Based Message Authentication, Reporting & Conformance (DMARC).
- Reverse DNS.
Berikut beberapa penjelasan singkat termasuk best practice untuk
membangun standard proteksi dan memperbaiki reputasi serta email
integrity di email system yang kita bangun. Nah best practicenya baru
mengacu pada platform zimbra nih hehe...
Sender Policy Framework (SPF)
Sender policy framework adalah sebuah email validation system yang
sebenernya di desain untuk mencegah spoofing. Cara kerja SPF cukup
sederhana yaitu SPF akan melakukan verifikasi Source IP dari email yang dikirim lalu mencocokannya dengan DNS TXT record menggunakan SPF content.
Dibawah ini kira-kira merupakan flow gimana kira-kira SPF bekerja.
Penjelasan :
Nah kalo dari flow diatas terlihat bahwa email system yang menerima email akan mengecek Sender-ID Framework dari tiap-tiap email yang mereka terima dengan cara menanyakan SPF record si pengirim email ke DNS. Nah hasilnya hanya ada dua yaitu Pass atau Fail, apabila pass maka email biasanya akan di redirect ke folder inbox penerima dan apabila fail maka email akan diredirect ke folder Junk/Quarantine bahkan yang lebih parahnya lagi bisa saja di drop.
Sebenernya ada juga status selain Pass dan Fail yaitu neutral. Kalo statusnya neutral
ada beberapa kemungkinan bisa saja masih menunggu propagasi DNS atau
memang sudah di konfigurasi namun namun memang si admin menginginkan
implementasi SPF tanpa policy.
Apa dampaknya kalo kita enggak buat SPF di email system kita? Biasanya
kalo si penerima memang agak strict ya email kita di anggap spam bahkan
bisa aja di drop karna dianggap tidak trusted.
Konfigurasi SPF?
Setelah saya ceritain dulu konsep SPF biar paham jadi gak cuma bisa
konfig doang hehe, maka selanjutnya kita masuk ke proses konfigurasi
SPF. Konfigurasinya standardnya sih sebenernya mudah kok, mungkin untuk
beberapa kasus yang custom baru sedikit lebih rumit cuma saya coba share
yang standard yah..
Format
"v=spf1 a mx include:servermta.domain.com ~all"
Contoh
"v=spf1 a mx include:mail.example.com ~all"
Kalo agan pake WHM contohnya seperti dibawah ini.
Notes :
- Saya merahin karna pake domain orang, yang saya merahin seharusnya adalah nama domain agan. Nah yang saya kasih tanda panah isi dengan server mta yang sudah di isi dengan A Record di DNS agan.
- Sebagai catatan tambahan aja kalo masih gak ngerti ~all, -all, ?all, +all bisa liat tabel dibawah ini.
Nah kalo sudah selesai agan tinggal nunggu propagasi DNS paling lama 1-2 hari.
Pengecekan SPF
Kalo propagasi DNS sudah selesai agan bisa test SPF internet seperti mxtoolbox.com disini. Setelah itu cari box yang SPF lalu masukan domain agan. Kalo sudah selesai seharusnya hasil testing akan seperti dibawah ini.
Dan apabila agan coba ngirim email ke google dan show original code maka SPF akan terlihat pass.
Domain Keys Identified Mail (DKIM)
Domain keys adalah salah satu metode
security pada email untuk mengasosiasikan domain name dengan email yang
dikirim. Dengan adanya DKIM maka ini memungkinkan adanya proses
signature pada masing-masing email yang dikirim oleh si pengirim dengan metode enkripsi asymetric dengan saling berbagi informasi mengenai public keys dan private keys yang digunakan.
Coba agan perhatikan gambar dibawah ini :
Penjelasan :
Nah dari gambar diatas terlihat bahwa MTA si pengirim mempublish public
keys di DNS public lalu ketika proses pengiriman email terjadi, maka si
penerima akan menggunakan public keys yang ada di DNS untuk mencocokan
apakah match atau tidak, apabila match maka akan tertera bahwa email
yang dikirim signed-by domain si pengirim.
Konfigurasi DKIM?
Konfigurasi DKIM lebih sedikit rumit daripada SPF namun enggak susah
kok. Langkah-langkahnya itu adalah sebagai berikut ini, saya contohkan
generate dengan zimbra yah.
- Masuk ke server lalu masuk lagi ke user zimbra setelah itu cek dengan command ini "/opt/zimbra/libexec/zmdkimkeyutil -q -d contoh.com"
- Kalau belum ada saatnya buat dengan format seperti dibawah ini :
/opt/zimbra/libexec/zmdkimkeyutil -a -d example.com -s namadkim - Setelah selesai di generate maka akan muncul public key yang bisa di
publish di DNS, agan bisa copas public key tersebut lalu buat lagi TXT
record di DNS agan. Sebagai contoh hasil generate public key seperti
dibawah ini :
"v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2c4zVBYQtUsoeEGiqYKEZ7JLU3cbuQCOYvr+IDQJPOQjVlsSTapsu+4yUZ6OJ41RmzYQooneL+We1MMYDmGMAQmHNQAAfhoudLN/+aSC7ggo+rTAd4ipwMujgySB8SsKzKBeAFLth/WteAOrVMIfMrmNgKj0pLUfQp1sVpa1WGQIDAQAB"
Hapus tanda-tanda petik diatas lalu coba copas ke website tools checker dkim di disini.
Kalo hasilnya sudah seperti pada screenshot dibawah ini maka berarti DKIM untuk domain agan sudah berjalan. - Setelah selesai di cek copas key record yang sudah valid tsb ke WHM
atau manajemen tools yang agan gunakan, buat TXT record yah. Sebagai
contoh seperti dibawah ini :
Untuk mengecek DKIM agan sudah berjalan atau belum agan bisa cek di link yang sama di dkimcore disini. Lalu masukan nama dkim yang agan generete tadi lalu domain seperti dikotak merah ini.
Kalo hasilnya sudah valid seperti gambar dibawah berarti DKIM anda sudah terecord di DNS.
Tinggal lanjutkan coba kirim email dari email agan ke google lalu cek
parameter ini dan show original code, apabila sudah sesuai seperti
dibawah ini harusnya DKIM sudah berjalan.
Show Original Code
Show Arrow Details
Keliatan kalo di original code bahwa dkim agan statusnya PASS dan di arrow details bisa dilihat signed-by nah yg garis merah seharusnya nama domain agan.
Kalo seperti ini lebih reliable dan trusted kan? hehe
Domain-Based Message Authentication, Reporting & Conformance (DMARC)
Selanjutnya kita membahas DMARC, sebenernya cara kerjanya hampir sama
seperti dengan SPF namun metodenya dan fungsinya sedikit berbeda.
Meskipun begitu nampaknya saat ini DMARC merupakan salah satu komponen
penting juga yang kudu dikonfigurasi pada email system kita yang sudah established untuk meningkatkan email integrity.
DMARC sendiri adalah sebuah spesifikasi teknis yang dibuat oleh
sekelompok organisasi yang ingin membantu mengurangi potensi
penyalahgunaan email dengan metode email authentication protocol. Coba perhatikan cara kerjanya pada gambar dibawah ini.
Penjelasan :
DMARC melakukan standarisasi dengan mendeteksi bagaimana penerima email menjalankan autentikasi menggunakan mekanisme well-known SPF & DKIM yang
telah ada di record DNS. Hal ini biasanya akan berdampak pada user
experience pengirim email tersebut karna email yg dikirim akan menerima "Consistent Authentication Results" dari
setiap penerima email mereka yg juga menjalankan mekanisme DMARC, yang
jelas dengan menggunakan mekanisme ini komunikasi email yang terjadi
antara pengirim dan penerima akan menjadi lebih reliable.
Konfigurasi DMARC?
Untuk melakukan konfigurasi DMARC sebaiknya lakukan dulu konfigurasi SPF dan DKIM di email system agan. Setelah itu agan bisa generate record untuk DMARC disini.
Nah coba isi parameter seperti contoh dibawah ini, lalu kalo sudah selesai tekan tombol "Get DMARC Record". Nama domain example.com ganti dengan nama domain masing-masing yah.
Dari policy diatas itu saya tentukan apabila status email paket fail maka akan di redirect ke quaratine. Sebenernya
agan bisa juga pilih policy yang reject kalo mau lebih strict sih, cuma
kekurangannya kita jadi gak bisa analisa aja itu email spam ato bukan
karna langsung di drop emailnya. #CMIIW
Setelah dapet DMARC Record seperti gambar dibawah ini agan bisa masukan
record yang ada di kotak merah dari gambar dibawah ini ke DNS agan,
seperti biasa buat TXT record.
Copas record yang sudah di generate dari link diatas yg ada di kotak
merah tsb lalu buat TXT Record di WHM ato cPanel ato DNS managemen agan
lah pokoke seperti contoh gambar dibawah ini.
Kalo sudah selesai ketik OK/Apply Modification.
Pengecekan DMARC
Kamu bisa cek dari mxtoolbox.com disini lalu cari kotak box DMARC dan masukan domain agan, atau bisa juga di dmarcian.com disini dengan
cara yang sama tinggal masukan domain agan. Sebagai contoh saya masukan
domain google.com di mxtoolbox kalo domain agan yang dimasukan hasilnya
sudah sesuai sama seperti gambar dibawah ini maka seharusnya mekanisme
DMARC sudah berjalan di email system agan.
Agan bisa cek juga dengan kirim email ke gmail misalnya lalu di "Show Original Code" cari parameter DMARC, apabila sudah PASS seperti gambar dibawah ini artinya sudah berjalan nih mekanisme DMARC di email system agan.
Reverse & Resolve DNS
Sepertinya banyak engineer dan sysadmin yang kurang aware juga untuk hal
yang satu ini, di beberapa email system yang sudah strict banged ada
loh biasanya yang mereject pengirim email yang tidak memiliki Reverse
DNS yang konsisten.
Gambaran proses untuk Resolve DNS bisa dilihat dari gambar dibawah ini.
Setelah liat gambar diatas harusnya dapet yah gambarannya? Kalo
Resolution DNS itu menentukan IP Address yang diasosiasikan ke domain
name, sedangkan kalo Reverse DNS itu sebaliknya Domain yang
diasosiasikan ke IP Address.
Konfigurasi Reverse DNS?
Cara satu-satunya itu cuma bisa minta tolong ISP di tempat dimana agan
berlangganan. Bilang aja ke mereka kalo kita punya IP Public pengen
bikin PTR Record yang dipointing ke domain A dengan IP Public yang
digunakan B, sesimple itu kok hehe.
Setelah itu jangan lupa edit SMTP Helo agan, kalo di zimbra bisa menggunakan command dibawah ini.
Perhatikan bahwa mail.example.com ganti dengan nama mx record yg digunakan di DNS agan yah.
Version 8.0.X
zmlocalconfig -e postfix_smtpd_banner="mail.example.com"
zmcontrol restart
Version 8.5 keatas
zmprov ms `zmhostname` zimbraMtaSmtpdBanner mail.example.com
zmcontrol restart
Pengecekan Reverse DNS
Caranya gampang gan, tinggal pake mxtoolbox.com aja menggunakan link disini.
Lalu agan tinggal masukan IP Address yang agan gunakan sebagai mail
server agan yg juga digunakan sebagai MX Record. Kalo sudah sesuai
artinya sudah tidak ada issue lagi dan dengan cara ini pastinya email
integrity dari email system kita akan naik di pihak penerima email.
No comments: