spf-flow-small

Meningkatkan keamanan email dengan SPF record

Saat ini, e-mail menjadi salah satu kebutuhan bagi semua yang yang berinteraksi dengan internet, terlebih lagi mereka yang bekerja atau mempunyai usaha. E-mail menjadi bagian yang sangat penting seperti nomor telepon karena digunakan dalam kegiatan sehari-hari untuk saling berkirim pesan. Satu hal yang harus disadari oleh pengguna e-mail yang  mempunyai domain sendiri seperti celah keamanan bahwa sipapun dapat mengirim email dengan domain yang kita kelola, misalnya saya mempunyai domain pnyet.web.id dan Anda dapat mengirim email ke siapapun dengan alamat [email protected] bayangkan jika Anda menerima invoice atau permintaan ubah password dari alamat email rekanan yang ternyata palsu? 

Teknik hacking dengan menyamar melalui email ini biasa disebut email spoofing, dimana pengirim memalsukan alamat email sebenarnya dengan menggunakan alamat email (From: ) lain agar dianggap valid. Mayoritas pelaku email spoofing adalah spammer yang mengirimkan email sampah agar email mereka tidak dianggap spam, beberapa pelaku lain adalah orang-orang yang memang mempunyai niat untuk mencuri. Lalu bagaimana mengamankan domain kita agar tidak digunakan untuk melakukan spoofing?

Sender Policy Framework (SPF) adalah solusinya. SPF merupakan protokol yang digunakan untuk memverifikasi domain dan IP host pengirim apakah sesuai dengan record SPF di DNS atau tidak.

SPF flow

Bagaimana SPF bekerja?

SPF akan memeriksa identitas envelope sender dan MAIL From lalu membandingkan alamat IP host pengirim dengan daftar IP yang berada di DNS record berupa “v=spf1” TXT record kemudian akan menentukan respon / hasil dari SPF lookup. Ilustrasinya dapat dilihat pada gambar diatas.

Dibawah ini beberapa metode SPF record yang dapat digunakan

all = merujuk pada semua host pengirim, biasa diletakan pada bagian terakhir TXT record
Contoh penggunaannya:
“v=spf1 +all” semua host pengirim dianggap “Pass”
“v=spf1 -all” semua host pengirim dianggap “Fail”
“v=spf1 ~all” semua host pengirim dianggap “Softfail”
“v=spf1 ?all” semua host pengirim dianggap “Neutral”

a = SPF record merujuk pada A record (IP address record) domain itu sendiri maupun domain lain.
Contoh penggunaannya:
“v=spf1 a -all” IP address (A record) dari domain tersebut dianggap “Pass”, sedangkan -all merujuk pada host lain yang dianggap fail.
“v=spf1 a/24-all” IP address dari domain dan IP address yang termasuk kedalam network /24 dianggap pass, sedangkan -all merujuk pada host lain yang dianggap fail.
“v=spf1 a:mail.domainlain.com -all” IP address dari mail.domainlain.com akan dianggap pass, sedangkan yang lainnya dianggap fail.

mx = SPF record merujuk pada MX record domain tertentu.
Contoh penggunaannya:
“v=spf1 mx -all” maka IP MX record dari domain tersebut akan dianggap Pass, sedangkan -all merujuk pada host lain yang dianggap fail.
“v=spf1 mx:domainlain.com -all” maka IP address dari MX record domainlain.com dianggap pass, sedangkan yang lainnya dianggap fail.
“v=spf1 mx:domainlain.com/24 -all” maka IP adress MX record domainlain.com dan IP address yang termasuk kedalam network area /24 dianggap pass, sedangkan yang lainnya dianggap fail.

ip4 = SPF record merujuk pada salah satu atau network IP address versi 4
Contoh penggunaannya:
“v=spf1 ip4:202.1.1.1 -all” maka host 202.1.1.1 dianggap Pass, sedangkan -all merujuk pada host lain yang dianggap fail.
“v=spf1 ip4:202.1.1.0/24 -all maka semua host yang berada di antara 202.1.1.0 – 202.1.1.255 dianggap pass, dan yang lainnya dianggap fail.

ip6 = SPF record merujuk pada salah satu atau network IP address versi 6
Contoh penggunaannya:
“v=spf1 ip6:[2000:0000:0000:0000:0000:0000:0000:0001] -all” maka host 2000:0000:0000:0000:0000:0000:0000:0001 dianggap pass, sedangkan -all merujuk pada host lain yang dianggap fail.
“v=spf1 ip6:[2000::0000]/64 -all” maka host mulai dari 2000:0000:0000:0000:0000:0000:0000:0000 sampai dengan 2000:0000:0000:0000:ffff:ffff:ffff:ffff dianggap pass dan yang lainnya fail.

Sebenarnya masih ada beberapa lainnya, namun mekanisme diatas adalah yang paling umum digunakan dan jika penasaran dengan metode yang lain silahkan mengunjungi website openspf.org.

Bagaimana konfigurasi SPF record di DNS?

Untuk membuat SPF record kita perlu membuat sebuah TXT record di DNS, dibawah ini adalah contoh TXT record untuk SPF dan penjelasannya:

Contoh SPF record untuk domain pnyet.web.id

pnyet.web.id.        TXT       “v=spf1 mx ip4:103.31.227.144 -all”

Record diatas menjelaskan bahwa alamat mx dan IP 103.31.227.144 diperbolehkan untuk mengirimkan email domain pnyet.web.id (pass) dan lainnya fail. Jika kita ingin menambahkan banyak IP host yang diperbolehkan untuk mengirimkan email dari domain maka tinggal ditambahkan saja hostnya seperti berikut:

pnyet.web.id. TXT “v=spf1 mx ip4:103.31.227.144 ip4:103.31.227.145 ?a:smtp1.namaisp.net.id -all”

Record diatas menjelaskan bahwa MX dari domain pnyet.web.id, IP 103.31.227.144 dan 103.31.227.145 diperbolehkan mengirimkan email dari domain pnyet.web.id (Pass), sedangkan dua 2 bagian terakhir menjelaskan bahwa A record (IP address) dari smtp1.namaisp.net.id akan dianggap neutral dan bagian terakhir “-all” mengindikasikan selain host-host tersebut maka dianggap fail.

Dibawah ini adalah beberapa tools yang dapat digunakan untuk memeriksa SPF record:

1. http://mxtoolbox.com/SuperTool.aspx?action=spf
2. http://www.kitterman.com/spf/validate.html?
3. http://tools.bevhost.com/spf/

Dibawah ini adalah contoh hasil lookup spf menggunakan mxtoolbox.com

SPF lookup

Leave a Reply

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


*