DKIM adalah salah satu cara untuk menandai email yang anda kirim di ijinkan menggunakan domain yang bersangkutan, contoh [email protected], oleh mail server jaranguda.com, akun [email protected] diberi tanda bahwa akun tersebut memang benar-benar menggunakan mail server jaranguda dan terotentikasi. Untuk mempermudah tutorial ini, kita akan menggunakan domain jaranguda.com sebagai contoh dalam pengaplikasian DKIM dan SPF. Tahap instalasi dan konfigurasi DKIM dan SPF akan dijelaskan satu persatu. Untuk instalasi Mail Server bisa dilihat di Instalasi Mail Server Postfix Dovecot MySQL Debian 7.

Instalasi dan Konfigurasi DKIM

Install pake dkim di Debian 7

apt-get install opendkim opendkim-tools

Generate Private Key

Kita akan membuat private key untuk domain jaranguda.com dan membuat folder khusus tempat menyimpan key tersebut

mkdir -p /etc/opendkim/keys/jaranguda.com
opendkim-genkey -t -s mail -d jaranguda.com
chown opendkim:opendkim -R /etc/opendkim

mail diatas bisa diganti dengan berbagai variasi, misalnya dnsx901, private dll, untuk memudahkan tutorial ini kita akan menggunakan mail, mail diatas dinamakan sebagai selector.
Setelah diubah file permission dengan chown, kira-kira seperti dibawah ini user:group dari folder yang baru kita buat

/etc/opendkim/keys/jaranguda.com:
total 16
drwxr-xr-x 2 opendkim opendkim 4096 Apr 11 04:42 .
drwx------ 5 opendkim opendkim 4096 Apr 11 04:42 ..
-rw------- 1 opendkim opendkim  887 Apr 11 04:42 mail.private
-rw------- 1 opendkim opendkim  305 Apr 11 04:42 mail.txt

Buka file konfigurasi opendkim yang berada di /etc/opendkim.conf, tambahkan

LogWhy yes
SyslogSuccess yes
Domain                 jaranguda.com
KeyFile                /etc/opendkim/keys/jaranguda.com/mail.private
Selector               mail

LogWhy dan SyslogSuccess untuk memudahkan debugging bila ada kesalahan konfigurasi di openDKIM. Buka file /etc/default/opendkim, hapus tanda # di depan SOCKET=”inet:12345@localhost”

#SOCKET="local:/var/run/opendkim/opendkim.sock" # default
#SOCKET="inet:54321" # listen on all interfaces on port 54321
SOCKET="inet:12345@localhost" # listen on loopback on port 12345
#SOCKET="inet:[email protected]" # listen on 192.0.2.1 on port 12345

Edit File Konfigurasi Postfix

Agar DKIM ini dikenali oleh Postfix, ubah file /etc/postfix/main.cf tambahkan

milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:12345
non_smtpd_milters = inet:localhost:12345

Ubah konfigurasi DNS

Hasil generate opendkim-genkey diatas menghasilkan file mail.private dan mail.txt, isi mail.txt yang akan kita pindah ke DNS.
Contoh isi file mail.txt

mail._domainkey IN TXT "v=DKIM1; k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/jY/MPlIomlaLbnIYsMr05SuCSDf5NG6pN0bFRL1FT+LrLCRI+NQI9RgHlgTxBE5IGVNSyfNkj3+uCoBNBJqBqu8tzBfGKawvgVRFWA8aOu24f67LCfOMBxezJFkouMDvVXpElZdkUxsaL25V4ILS9UK0CTwo0r/QihrvsnPN5wIDAQAB" ; ----- DKIM key mail for jaranguda.com

contoh bila anda menggunakan cPanel
edit dns

Menambah SPF Record

Sebagai contoh saya menggunakan IP 192.168.1.1, ganti dengan IP server anda. Tambah record baru di DNS dengan record type : TXT

"v=spf1 a ip4:192.168.1.1/32  ?all"

dns edit spf
/32 menandakan server anda hanya memiliki 1 buah IP, dan hanya IP tersebut yang digunakan untuk mengirim email. Untuk Server yang lebih dari 1 IP silahkan disesuaikan CIDR-nya.

Restart Services

Karena telah dilakukan perubahan di postfix dan opendkim maka kita perlu merestart service tersebut

service opendkim restart; service postfix restart

Setelah semua selesai, sekarang kita verifikasi konfigurasi yang telah kita buat. Salah satu tool yang sangat membantu adalah dig. Tes DNS ini bisa tidak segera muncul karena butuh waktu untuk propagation DNS. Bisa juga digunakan situs whatsmydns.net untuk mempermudah mengecek propagation sudah berjalan atau belum.

Cek konfigurasi SPF

dig jaranguda.com txt

bila settingan DNS sudah benar maka muncul

; <<>> DiG 9.9.4-P2-RedHat-9.9.4-12.P2.fc20 <<>> jaranguda.com txt
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40451
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;jaranguda.com.			IN	TXT
 
;; ANSWER SECTION:
jaranguda.com.		14016	IN	TXT	"v=spf1 a ip4:192.168.1.1/32  ?all"
 
;; Query time: 107 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Fri Apr 11 12:11:24 WIB 2014
;; MSG SIZE  rcvd: 90

Cek konfigurasi DKIM

dig mail._domainkey.jaranguda.com txt

hasil output perintah diatas

; <<>> DiG 9.9.4-P2-RedHat-9.9.4-12.P2.fc20 <<>> mail._domainkey.jaranguda.com txt
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28291
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;mail._domainkey.jaranguda.com.	IN	TXT
 
;; ANSWER SECTION:
mail._domainkey.jaranguda.com. 14399 IN	TXT	"v=DKIM1; k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/jY/MPlIomlaLbnIYsMr05SuCSDf5NG6pN0bFRL1FT+LrLCRI+NQI9RgHlgTxBE5IGVNSyfNkj3+uCoBNBJqBqu8tzBfGKawvgVRFWA8aOu24f67LCfOMBxezJFkouMDvVXpElZdkUxsaL25V4ILS9UK0CTwo0r/QihrvsnPN5wIDAQAB"
 
;; Query time: 456 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Fri Apr 11 09:29:42 WIB 2014
;; MSG SIZE  rcvd: 310

cara yang lain untuk testing DKIM dan SPF adalah dengan mengirim email ke gmail

mail -s "dkim test" alamat.email@gmail.com

setelah menekan enter, ketik isi pesan anda, tekan enter, akhiri dengan kombinasi CTRL + D. Kira-kira seperti dibawah ini

mail -s "dkim test" alamat.email@gmail.com
Ini adalah percobaan untuk DKIM dan SPF record.
EOT

Sekarang buka Gmail anda, bila sukses tampilannya seperti dibawah ini
dkim spf record sukses
bagian mailed-by dan signed-by menandakan SPF dan DKIM sukses. Bila email tidak ada di inbox anda, coba cek di folder spam.

Join the Conversation

4 Comments

Your email address will not be published. Required fields are marked *

  1. Mau tanya DKIM ini bisa bikin email kita masuk inbox ga ya? saya tiap kirim email via postfix masuk folder spam terus

    1. pake DKIM/SPF/DMARC dan lain sebagainya ngga menjadi jaminan email masuk inbox, apalagi ke Gmail, atau Hotmail. :)
      Untuk awal-awal whitelist aja dlu emailnya, nanti lama-kelamaan setelah ngirim banyak email dan ngga di tag user sebagai spam masuk ke inbox kok.

  2. Mas , mau nanya neh.
    implementasi dkim pada mail server yang tidak langsung berhadapan dengan dunia luar ( NAT) apakah memungkinkan untuk authentication ?
    Terima Kasih
    Please advice ..