SPF nedir ile başlayalım isterseniz.
SPF temel olarak mail sistemlerinin aldığı bir maili gerçekten doğru kişilerin gönderip göndermediğini kontrol etmesini sağlayan bir DNS kaydıdır.
Örneğin ben hakan olarak info@hakanuzuner.com mail adresimden info@cozumpark.com mail adresine mail gönderdiğim zaman cozumpark.com’ domaininin mail server’ ı ki bu bir Exchange Server olabilir, Office 365, G-Suite, Yandex, Mail Enable vs yani günün sonunda MTA dediğimi bir mail transfer agent tarafından bu mail karşılanır. Veya bir SMTP GW dediğimiz cihaz teslim alır. Teslim alan MTA veya cihaz ya da uygulama üzerinde SPF kontrolü açık ise eğer cihaz hakanuzuner.com için public DNS üzerinden SPF kaydı olup olmadığını kontrol eder ve bu kayıt içerisindeki ip adresi ile maili kendisine ileten mail sunucu ip adresi eşleşiyor ise maili kabul eder veya ayarlara göre reddeder. Tabiki bunu cozumpark.com domain için kullanılan mail sunucusu yöneticisi ayarlar. Yani isterse SPF kontrolünü açmayabilir, ancak bu durumda pek çok Spoof dediğimiz sahte mail ile karşı karşıya kalabilir.
Peki biz spam ya da Spoof mail alan taraftaysak ya da birileri bizim domain adına mailler yolluyor ise en azından kendi sistemimiz için hem SPF kontrolünü açabiliriz (her sistem için ayar farklı olmak ile beraber son derece basittir) hem de DNS üzerinde bir SPF kaydı oluşturarak domainimizi koruma altına alabiliriz.
SPF kaydı nasıl oluşturulur?
Öncelikle mail gönderimi yaptığınız ip adreslerini öğrenin. IP adresleri diyor olmamdaki sebep bazı müşterilerimde kendileri normal iletişim maillerini kendi sunucularından yollarken CRM, SAP veya toplu mailleri bir mail servis sağlayıcısından yollamayı tercih ediyor. Bu durumda servis sağlayıcı ip adresini de öğrenmek bu maillerin spam olarak algılanmamasında yardımcı olacaktır.
Örneğin benim mail gönderimi yaptığım adres 185.25.101.165 olsun.
İkinci olarak mail gönderimi yapacak domain isimlerini belirleyin. Örneğin hakanuzuner.com, cozumpark.com gibi.
Şimdi SPF kaydını oluşturmaya başlayalım.
Örnek bir SPF kaydı aşağıdaki gibidir;
v=spf1 a mx include: spf.protection.outlook.com -all
Bu bir örnek çünkü ufak tefek farklar görebilirsiniz. Bende zaten bu yazımda sizlere bu konuda bilgi vereceğim.
Öncelikle spf1 sürüm numarası ve spf kaydı olduğunu belirten bir etiket olup sabittir.
Sonrasında gelen “a” ise mail gönderen domain için DNS A kaydı karşılığındaki ip adresinden mail attığını gösterir. Örneğin maili hakanuzuner.com atıyor ise bu adrese ping attığınızda dönen ip adresi ile mail atan ip adresi aynı olmalı. Eğer aynı ise maili karşı sistem alır, değil ise ayarına göre maili alabilir veya almayabilir. Eğer böyle bir durum yoksa ki genelde görülmez “a” olmamalı.
İkinci kontrol noktası ise “mx”
Burada ise bu sefer mail atan hakanuzuner.com için A kaydı değil MX kaydı sorgulanır, MX kaydındaki IP adresi ile maili yollayan ip adresi aynı ise eşleşir ve karşı sistem maili kabul eder, eğer eşleşmez ise ayarlarına göre kabul etmez.
Belki ptr görmüş olabilirsiniz ancak artık bu kullanılmamaktadır. Zaten kısa bir araştırma yaparsanız RFC7208 Section 5.5 içerisinde artık bu parametrenin kullanılmaması gerektiğini görürsünüz.
Geriye include kalıyor.Include ise 3 parti mail göndericileri için kullandığımız bir kavramdır. Yani siz kendi mail alt yapınızdan mail gönderiyorsanız zaten MX yeterli bir kontroldür, ancak Office 365, G-Suite, Yandex ya da toplu mail gönderme programları gibi bir program için kullanılır.
Son bölümdeki işaretler ise Hard fail (-) ve Soft fail (~) anlamına gelir. Eğer -all kullanırsanız kayıt içerisindeki ip adresi dışında başka bir sunucudan mail gönderilmesi durumunda bu yetkisiz bir gönderim olarak kabul edilir ve mail ulaştırılmaz. Yani SPF kontrolünde başarısız olması durumunda yetkisiz kullanımı işaret etmiş oluyorsunuz. Eğer ~all kullanırsanız bu durumda bu domain için SPF kaydından tüm mail sunucularının olmadığını ifade etmiş olursunuz. Yani başka bir sunucudan mail gelmesi durumunda mail kabul edilip edilmeyeceğini mail alan sisteme bırakırsınız ki gelende spam olarak işaretlenebilir. Eğer mail sunucu ip adresiniz belirli ise bu durumda “-” kullanmanız önerilir.
Şimdi örnek bir sihirbaza bakacak olursak aslında yukarıdaki bilgiler ile çok rahatlıkla kendi SPF kaydınızı oluşturabilirsiniz
https://mxtoolbox.com/SPFRecordGenerator.aspx
Sorular aynı makalemde anlattığım gibi.
İlk olarak web siteniz üzerinden mail gönderimi yapıyor musunuz? Hayır
MX kaydı üzerinden siz mail gönderiyor olabilirsiniz ÇözümPark’ ın mail alt yapısı doğrudan bulutta olduğu için No dedim.
İkinci bölümü yine boş bıraktım çünkü bana ait bir mail server son, son bölümde ise benim yerime mail atan iki sistemin onlardan aldığım bakın burası önemli o şirketlerden aldığım dns isim bilgisini buraya ekledim ve sonuç ortaya çıktı.
Bu bilgiler ışığında sizlerde kolayca bir SPF kaydı oluşturabilirsiniz.
SPF kaydı DNS sistemlerde bir TXT kaydı olarak geçer, örneğin Microsoft DNS için aşağıdaki gibi bir tanım yapabilirsiniz.
Not: SPF public DNS üzerinde tanımlı olması gereken bir kayıt olduğu için eğer Name server bir Microsoft DNS değil ise muhtemel bu ekrana gerek duymayacaksınız. Çünkü çoğu public DNS hizmeti veren sistemler Linux üzerinde çalışıyor ve size bu kaydı açmanız için bir web ara yüzü sunuyor.
Diğer sistemlere örnek verelim;
Azure DNS paneli
Buda kaydın dolu hali;
Bu da bir ISP nın dns paneli
Umarım faydalı bir yazı olmuştur.