SPF (Sender Policy Framework) kaydı, belirli bir alandan e-posta gönderme yetkisi olan tüm sunucuları listeleyen bir DNS TXT türüdür. DNS TXT kaydı, domain yöneticisinin rasgele metin girmesine olanak tanıyan bir kayıt türüdür. TXT başlangıçta alan adı ile ilgili önemli bildirimleri dahil etmek amacıyla oluşturulmuştu, ilk oluşum amacından sonra geliştirilerek başka hizmetler için de kullanılmaya başlandı.
SPF kayıtları ilk zamanlar e-posta için kullanılan standart protokol olan (Simple Mail Transfer Protocol) gönderen adresinin kimliğinin gerçek olup olmadığını doğrulamak için oluşturuldu. SPF veya diğer kimlik doğrulama kayıtları olmadan, bir saldırganın kolayca bir gönderenin kimliğine bürünebileceği ve alıcı kişiyi sahte e-postalar ile kandırabileceği anlamına gelmektedir.
SPF kayıtlarını bir kapı görevlisi tarafından yönetilen bir misafir listesi gibi düşünebilirsiniz. Bir kişi o listede yer almıyorsa, kapı görevlisi onu içeri almayacaktır. SPF kaydıda bu mantıkta çalışmaktadır, listesinde gönderenin IP adresi veya etki alanı yoksa, alıcı sunucu bu e-postayı teslim etmeyebilir veya spam olarak işaretleyebilir.
SPF kayıtları, e-posta sunucularının bir e-postanın güvenilir bir kaynaktan gelip gelmediğini doğrulamasına yardımcı olacak birçok DNS tabanlı mekanizmadan yalnızca bir tanesi. Alan Tabanlı İleti Kimlik Doğrulaması Raporlama (DMARC – Domain-based Message Authentication Reporting and Conformance) ve DomainKeys Identified Mail (DKIM), e-posta kimlik doğrulaması için kullanılan diğer iki mekanizma olarak geçmektedir.
Not: SPF kayıtları RFC 4408‘de tanımlanmış ve RFC 7208 tarafından net bir şekilde açıklanmıştır.
RFC Nedir?
RFC tanımını kısaca yapmak gerekirse eğer; Internet protokolü, mekanizması için bu protokolleri ve mekanizmasını tanımlayan bir global bir kuruluş olarak tanımlayabiliriz.
SPF Kayıtlar Neden Kullanılır?
SPF kayıtlarının kullanılmasının bir çok nedeni vardır. Bu nedenler ise aşağıdaki gibidir;
- Saldırıları önleme: E-postaların kimliği doğrulanmazsa, şirketler ve e-posta alıcıları Phishing saldırılara, spam e-postalara ve e-posta sahteciliğine maruz kalabilir. SPF kayıtlarıyla, saldırganların bir alanı taklit etmesi daha zordur ve bu saldırıların olasılığını büyük ölçüde azaltır.
- E-posta teslim edilebilirliğini artırma: Yayınlanmış bir SPF kaydı olmayan alanların e-postaları mail sunucusu üzerinde, spam gateway üzerinden geri dönebilir veya spam olarak işaretlenebilir. Zamanla, geri dönen e-postalar veya spam olarak işaretlenmiş e-postalar, diğer kuruluşlarla iletişime geçmekte zorluklar çıkarabilmektedir.
- DMARC uyumluluğu: DMARC, e-postaların yalnızca yetkili kullanıcılar tarafından gönderilmesini sağlamaya yardımcı olan bir e-posta doğrulama sistemidir. DMARC politikaları, sunucuların SPF ve DKIM kontrollerinde başarısız olan e-postalarla ne yapması gerektiğini belirler. DMARC politika talimatlarına göre, bu e-postalar spam olarak işaretlenir, reddedilir veya normal şekilde teslim edilir. Etki alanı yöneticileri, politikalarında düzenlemeler yapmalarına yardımcı olan e-posta etkinlikleri hakkında raporlar alabilmektedir.
SPF Kaydı Nasıl Oluşturulur? SPF Kaydı Nasıl Görünür?
SPF kayıtları, sunucunun içeriğini nasıl yorumlayacağını anlayabilmesi için belirli standartlarda olmalıdır. Aşağıda, bir SPF kaydı oluşturulurken kullanılması gereken temel bileşenlere örnek olarak kayıt gösteriyorum.
v=spf1 ip4=192.1.1.1 ip4=191.0.1.1
include:mail.cozumpark.com -allip6:2305:d018:r3:8f00:bb72:deb8:8b84:123e
Yukarıda vermiş olduğum örnek, sunucunun bunun ne tür bir kayıt olduğunu bilmesini sağlaması için yeterli, bu etki alanı için onaylanan IP adreslerini ve bir üçüncü tarafı belirtir ve sunucuya uyumlu olmayan e-postalarla ne yapması gerektiğini söyler. Tek tek bileşenlerin bunu nasıl başardığını inceleyelim:
Aşağıda ise başka bir SPF kaydı örneği paylaşıyorum;
v=spf1 mx a a:mail.cozumpark.com ip4:192.1.1.1
ip6:2305:d018:r3:8f00:bb72:deb8:8b84:123e
-all
Yukarıda vermiş olduğum örnek, gelen mail’in MX kaydını ve mail sunucusunun IP adresini belirtmektedir.
v=spf1
sunucuya bunun bir SPF kaydı içerdiğini bildirir. Her SPF kaydı bu dizeyle başlamaktadır. İlk zamanlar SPF (SenderID olarak adlandırılıyordu), ancak RFC standartları değişti ve “v=spf1” olarak adlandırılmaya başlandı.- Ardından, SPF kaydının “misafir listesi” dediğimiz bölüm gelir veya yetkili IP adresleri listesi gelir. Bu örnekte, SPF kaydı sunucuya alan adına e-posta gönderdiğini ve bu e-posta gönderme yetkisine sahip olduğunu bildirmektedir.
ip4=192.1.1.1 ip4=191.0.1.1
ip6:2305:d018:r3:8f00:bb72:deb8:8b84:123e
- MX Kayıtı içerisinde belirtmiş olduğunuz cozumpark.com için mx kaydı sorgulanır ve mx kaydının çözdüğü IP adresi ile mail gönderen sunucunun IP adresini eşleştirir. IP adresi ve MX kaydı eşleşirse mail sunucuya teslim edilir.
- A Kayıtı ise mx bileşeni ile aynı çalışmaktadır, cozumpark.com için DNS A kaydını sorgular ve çözmüş olduğu IP adresini eşleştirmeye çalışır, eşleşme başarılı olursa mail sunucuya iletilir.
include:cozumpark.com
, sunucuya hangi üçüncü taraf kuruluşların alan adına e-posta gönderme yetkisine sahip olduğunu söyleyen include etiketine ait bir örnek. Bu etiket, dahil edilen alan adı (cozumpark.com) için SPF kaydının içeriğinin kontrol edilmesi ve içerdiği IP adreslerinin de yetkili olarak kabul edilmesi gerektiğini belirtiyor. Bir SPF kaydına birden fazla alan eklenebilir, ancak bu etiket yalnızca geçerli olan alanlar için çalışmaktadır.- Include Kavramına değinmişken bu konuyu biraz daha uzatabiliriz; Cloud teknolojisinin gelişmesi ile On-Premis yapılarımız da kullanmış olduğumuz Mail sunucuları yerine M365, G-Suite veya Hosted Exchange Servisleri kullanılmaya başlandı. Bu servisleri kullanırken SPF adresimiz de Include bileşeni kullanılmaktadır, çünkü Include bileşeni merkezi bir yönetim sağlamaktadır. Bu kayıt sorgulanırken Servis sağlayıcınızın DNS Panelinde oluşturmuş olduğu “_sfp.domain.com” kaydı sorgulanmaktadır.
- Kaydı ~all veya -all etiketiyle sonlandırmanız gerekmektedir. -all etiketi, yetkisiz bir sunucu alanınız adına e-posta gönderim işlemi yaparsa DMARC kaydınızda yayınlanan politikaya göre işlem yapar. Bu etiketler arasındaki fark nedir?
- -all Hard fail – SPF kaydında listelenmeyen sunuculardan gelen e-postaları teslim edilmez.
- ~all Soft fail – SPF kaydında tüm sunucuların olmadığını belirtmiş olursunuz, bu durumda mailin teslim edilip/edilmeyeceğine mail sunucusuna/gatewaye bırakmış olursunuz.
Forwarding Mekanizması
Eğer birden fazla alan adı yönetiyorsanız ve hepsi sizin kurumunuza ait bir DNS Server üzerinde barınıyorsa bunları Forwarding Mekanizması ile merkezi bir şekilde yönetebilirsiniz.
DNS server üzerinde oluşturmuş olduğunuz “_sfp.domain.com” kaydında SPF politikanızı belirledikten sonra, diğer kuruluşlarınızın SPF alanına aşağıdaki kaydı girmeniz yeterli.
v=spf1 redirect=_spf.domain.com
- Bir alanla ilişkilendirilmiş birden fazla SPF kaydı olamaz.
- Kayıt, bileşenle bitmeli veya en az bir bileşen içermelidir.
- SPF kaydı büyük harfli karakterler içermemesi gerekmektedir.