Zextras Carbonio Community Edition (CE) : Panduan Konfigurasi Sender Policy Framework (SPF)

Posted by

SPF merupakan salah satu metode improvement pada email server untuk mengamankan domain kita dari email spoofing. Pada SPF records, terdapat informasi server mana saja atau IP mana saja yang dapat mengirimkan email atas nama domain yang dikelola. Dengan kata lain, SPF record menginformasikan pada seluruh email server yang ada di dunia bahwa hanya IP tertentu saja yang boleh mengaku atas nama domain kita. Selain IP yang tertulis pada record SPF, maka email tersebut spoofing (mengaku-ngaku).

Berikut adalah contoh SPF records yang biasa ditambahkan pada DNS public

imanudin.web.id.     IN     TXT     "v=spf1 ip4:192.46.225.50 -all"

Keterangan :
v=spf1 – record ini menginformasikan bahwa ini adalah record SPF
ip4:192.46.225.50 – IP public ini diperbolehkan mengirimkan email atas nama domain yang dikelola
-all – record ini menginformasikan bahwa selain record yang tertulis sebelumnya, dan apabila ada yang mengirimkan email dari domain yang dikelola, maka email tersebut adalah spoofing dengan policy hard fail.

Jika memiliki lebih dari IP public untuk mengirimkan email, bisa ditulis seperti berikut

imanudin.web.id. IN TXT "v=spf1 ip4:192.46.225.50 ip4:192.46.225.51 -all"

Contoh di atas membolehkan IP public 192.46.225.50 dan 192.46.225.51 mengirimkan email dari domain yang dikelola.

Jika memiliki IP public yang sedikit untuk mengirimkan email, sebaiknya langsung definisikan IP publicnya dengan record ip4:ip-public. Jika memiliki IP public yang banyak seperti domain google.com, bisa dibuatkan records khusus untuk menampung IP public yang banyak tersebut. Berikut contoh record SPF pada domain google.com

Domain google.com memiliki SPF dengan isian include:_spf.google.com. Artinya, domain google.com boleh dikirimkan dari record yang ada pada _spf.google.com. Coba kita buka record tersebut

Ternyata di dalam record _spf.google.com terdapat include yang lainnya. Artinya, domain google.com boleh dikirimkan dari record yang ada pada _netblocks.google.com, _netblocks2.google.com dan _netblocks3.google.com. Coba kita buka salah satu record tersebut

Pada record _netblocks.google.com terdapat banyak network IP public. Artinya, domain google.com boleh dikirimkan dari IP network tersebut.

SPF record yang dimaksud pada artikel ini adalah SPF untuk kebutuhan improvement outgoing email.

Bagaimana jika SPF record ini tidak ditambahkan pada DNS public? apa impactnya?

Konfigurasi SPF record ini sangat simple. Namun banyak sysadmin email server yang lupa menambahkannya pada DNS public. Impact jika tidak ditambahkan adalah email yang dikirimkan tidak cukup trusted, memiliki reputasi yang kurang bahkan bisa langsung ditolak oleh email server penerima.

Berikut adalah contoh ketika saya mengirimkan email pada gmail.com yang langsung ditolak oleh Gmail karena tidak memiliki SPF

May 21 18:53:20 mail postfix/smtp[394125]: 91C5E1259CE: to=<email-di-google@gmail.com>, relay=gmail-smtp-in.l.google.com[172.217.194.26]:25, delay=3.1, delays=0/0.01/1.8/1.3, dsn=5.7.26, status=bounced (host gmail-smtp-in.l.google.com[172.217.194.26] said: 550-5.7.26 This mail is unauthenticated, which poses a security risk to the 550-5.7.26 sender and Gmail users, and has been blocked. The sender must 550-5.7.26 authenticate with at least one of SPF or DKIM. For this message, 550-5.7.26 DKIM checks did not pass and SPF check for [imanudin.web.id] did not 550-5.7.26 pass with ip: [192.46.225.50]. The sender should visit 550-5.7.26  https://support.google.com/mail/answer/81126#authentication for 550 5.7.26 instructions on setting up authentication. a3-20020a17090a8c0300b0022915b6dd7asi3066427pjo.145 - gsmtp (in reply to end of DATA command))

# Konfigurasi SPF

Untuk konfigurasi SPF, dapat dilakukan pada DNS public. Di sini saya menggunakan Hurricane Electric sebagai DNS manajemen domain imanudin.web.id. Silakan disesuaikan dengan manajemen DNS yang digunakan

Cek propagasi melalui mxtoolbox

Perlu diingat :

  • SPF record hanya boleh 1 record saja pada DNS public. Jika lebih dari 1, dapat mengakibatkan ketidak-konsistenan dalam melakukan proses lookup. Misalnya seperti berikut
imanudin.web.id. IN TXT "v=spf1 ip4:192.46.225.50 ip4:192.46.225.51 -all"
imanudin.web.id. IN TXT "v=spf1 include:_spf.infokreasindo.net -all"

Ada kemungkinan, email server penerima akan melakukan pengecekan pada spf record pertama. Jika ternyata IP yang digunakan untuk mengirimkan email ada pada record kedua, maka email yang dikirim dapat mengalami bounce. Kedua SPF record diatas dapat digabungkan sehingga menjadi seperti berikut

imanudin.web.id. IN TXT "v=spf1 ip4:192.46.225.50 ip4:192.46.225.51 include:_spf.infokreasindo.net -all"
  • Meskipun sudah dilengkapi dengan SPF, server penerima harus memiliki pengecekan SPF. Jika tidak ada pengecekan, maka kemungkinan spoofing tetap ada. Contohnya seperti uang dan alat pendeteksi uang. Ketika berbelanja di sebuah toko, penjaga toko akan memeriksa apakah uang cash yang diberikan asli atau palsu. Jika palsu, maka uang tersebut ditolak. Jika asli, maka uang tersebut diterima. Namun jika  tidak ada alat pendeteksi uang, maka sulit untuk membedakan uang asli dan uang palsu.

Berikut adalah contoh email yang dikirimkan ke Gmail ketika sudah dilengkapi dengan SPF. Email yang dikirim sudah tidak ditolak oleh Gmail

Email yang dikirim masuk pada folder Inbox Gmail
Email yang dikirim dari IP yang terdapat pada SPF record, ditandai dengan mailed-by
Status SPF Pass dilihat dari Show Original

Jika membutuhkan informasi terkait solusi Zextras (Instalasi dan Implementasi), dapat menghubungi Team Aktiva melalui form: https://www.aktiva.co.id/kontak/ atau email ke sales@aktiva.co.id

Silakan dicoba dan semoga bermanfaat 🙂

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.