DKIM adalah salah satu cara untuk menandai email yang anda kirim di ijinkan menggunakan domain yang bersangkutan, contoh k891@jaranguda.com, oleh mail server jaranguda.com, akun k891@jaranguda.com 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.

Install DKIM

yum install opendkim

Generate Key Signing

Buat folder tempat menyimpan private dan public key di /etc/opendkim/keys/ untuk memudahkan memanage beberapa domain buat folder baru untuk tiap domain.
Contoh saya akan menambahkan domain jaranguda.com

mkdir /etc/opendkim/keys/jaranguda.com
cd /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

$ ls -l /etc/opendkim/keys/jaranguda.com/
total 8
-rw------- 1 opendkim opendkim 891 Apr 27 14:06 mail.private
-rw------- 1 opendkim opendkim 314 Apr 27 14:06 mail.txt

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

KeyTable    /etc/opendkim/KeyTable
SigningTable    refile:/etc/opendkim/SigningTable
ExternalIgnoreList  refile:/etc/opendkim/TrustedHosts
InternalHosts   refile:/etc/opendkim/TrustedHosts

buka file /etc/opendkim/KeyTable, tambahkan dibagian paling bawah

mail._domainkey.jaranguda.com jaranguda.com:mail:/etc/opendkim/keys/sibayak.com/mail.private

buka file /etc/opendkim/SigningTable, tambahkan dibagian paling bawah

*@jaranguda.com   mail._domainkey.jaranguda.com

Jalankan opendkim

# aktifkan opendkim setealh reboot
systemctl enable opendkim
systemctl restart  opendkim

Edit File Konfigurasi Postfix

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

smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action  = access

Restart Postfix

systemctl restart  postfix

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.

Leave a comment

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