Kısaca cevap
SPF, alan adınız adına hangi sunucuların e-posta gönderebileceğini listeler. DKIM, giden her e-postaya dijital bir imza ekler. DMARC ise bu iki kontrolün sonucunu gönderen adresle karşılaştırır ve doğrulamayı geçemeyen e-postalara ne yapılacağını alıcı sunucuya söyler. Üçü de alan adınızın DNS'ine eklenen kısa metin kayıtlarıdır. DMARC'a p=none ile başlayıp raporları inceledikten sonra sıkılaştırmak en güvenli yoldur.
Bu sayfada
Kâğıt bir mektubun zarfına istediğiniz gönderen adını yazabilirsiniz; postacı bunu kontrol etmez. E-posta da aslında böyle tasarlandı: "Kimden" satırına herhangi bir adres yazılabilir. Dolandırıcıların bankalar ve şirketler adına sahte e-posta gönderebilmesinin sebebi budur. SPF, DKIM ve DMARC, alıcı tarafın "bu e-posta gerçekten o alan adından mı geliyor?" sorusunu cevaplayabilmesi için sonradan eklenen üç katmandır.
Bu yazı, kendi alan adıyla (domain) e-posta kullanan küçük işletmeler ve site sahipleri için. Burada geçen DNS, TXT kaydı gibi terimlerin kısa açıklamalarını internet terimleri sözlüğümüzde bulabilirsiniz.
Üç kaydın görevi bir bakışta
| Kayıt | Cevapladığı soru | Nerede durur? |
|---|---|---|
| SPF | Bu e-postayı gönderen sunucu, bu alan adı adına göndermeye yetkili mi? | Alan adının kendisinde, v=spf1 ile başlayan bir TXT kaydı |
| DKIM | E-posta yolda değiştirilmeden, alan adının anahtarıyla imzalanmış olarak mı geldi? | seçici._domainkey adlı alt adda bir TXT (bazen CNAME) kaydı |
| DMARC | SPF veya DKIM geçti mi ve geçen alan adı "Kimden" satırındakiyle uyuşuyor mu? Uyuşmuyorsa ne yapılsın? | _dmarc alt adında, v=DMARC1 ile başlayan bir TXT kaydı |
TXT kaydı, DNS'te düz metin bilgi tutan kayıt türüdür. Diğer kayıt türlerinin ne işe yaradığını DNS sorgulama sayfamızda tablo halinde anlattık.
SPF: Yetkili gönderenlerin listesi
SPF (Sender Policy Framework), alan adınızın DNS'ine "benim adıma yalnızca şu sunucular e-posta gönderebilir" diye yazdığınız bir listedir. Alıcı sunucu, e-postayı getiren sunucunun IP adresini bu listeyle karşılaştırır.
Örnek bir SPF kaydı:
v=spf1 include:_spf.eposta-saglayiciniz.com ip4:203.0.113.25 ~all
include:Bir e-posta hizmetinin kendi listesini sizin listenize ekler. Hangi değeri yazacağınızı e-posta hizmet sağlayıcınız söyler.ip4:Belirli bir IP adresine (ör. kendi sunucunuza veya web sitenizin iletişim formunun gönderdiği sunucuya) izin verir.~allListede olmayan sunuculardan gelen e-postaların şüpheli sayılmasını ister.-allise bunların reddedilebileceğini söyler.
Dikkat edilecek iki kural var. Birincisi, bir alan adında yalnızca bir SPF kaydı olmalıdır; yeni bir hizmet eklediğinizde ikinci kayıt açmak yerine mevcut satıra ekleme yaparsınız. İkincisi, SPF en fazla 10 DNS sorgusu gerektiren kurala izin verir; çok sayıda include: eklemek bu sınırı aşabilir.
SPF'in zayıf noktası iletmedir (forward). Bir alıcı e-postanızı başka bir adrese otomatik ilettiğinde e-posta artık sizin listenizde olmayan bir sunucudan gelir ve SPF başarısız olur. DKIM imzası ise iletmede genellikle bozulmaz. İki yöntemin birlikte kullanılmasının bir sebebi budur.
DKIM: E-postaya atılan dijital imza
DKIM (DomainKeys Identified Mail), giden her e-postaya gizli bir anahtarla oluşturulmuş bir imza ekler. Bu imzayı doğrulayacak açık anahtar (herkesin görebildiği eş anahtar) alan adınızın DNS'inde yayımlanır. Alıcı sunucu imzayı bu anahtarla kontrol eder. İmza tutuyorsa e-postanın sizin sistemlerinizden çıktığı ve yolda değiştirilmediği anlaşılır.
DKIM kaydının adı, sağlayıcınızın belirlediği bir seçici (selector) içerir. Örnek:
secici1._domainkey.ornek.com adında bir TXT kaydı, değeri v=DKIM1; k=rsa; p=MIIBIjANBgkqh... (uzun bir anahtar)
Bu değeri siz üretmezsiniz; e-posta hizmet sağlayıcınızın yönetim panelinde DKIM'i etkinleştirdiğinizde size verilir. Bazı sağlayıcılar TXT yerine CNAME kaydı eklemenizi ister. Kaydı ekledikten sonra sağlayıcının panelinde imzalamayı ayrıca açmanız gerekebilir.
DMARC: Karar veren ve rapor isteyen kayıt
SPF ve DKIM tek başına bir açık bırakır: ikisi de "Kimden" satırında görünen adresi doğrudan kontrol etmez. Bir dolandırıcı kendi alan adında geçerli bir SPF kurup "Kimden" satırına sizin adresinizi yazabilir. DMARC (Domain-based Message Authentication, Reporting and Conformance) bu açığı kapatır.
DMARC'ın geçmesi için SPF veya DKIM'den en az birinin başarılı olması ve başarılı olan kontroldeki alan adının "Kimden" satırındaki alan adıyla uyuşması gerekir. Bu uyuşmaya hizalama (alignment) denir.
Örnek bir başlangıç kaydı (_dmarc.ornek.com adında TXT):
v=DMARC1; p=none; rua=mailto:[email protected]
p=Politika.noneyalnızca izler,quarantinedoğrulamayı geçemeyen e-postanın spam klasörüne gitmesini,rejectreddedilmesini ister.rua=Alıcı sunucuların size göndereceği toplu raporların adresi. Bu raporlar, alan adınız adına hangi sunuculardan e-posta gönderildiğini ve bunların doğrulamayı geçip geçmediğini gösterir.pct=(isteğe bağlı) Politikanın e-postaların yüzde kaçına uygulanacağı. Geçiş döneminde kademeli sıkılaştırma için kullanılır.
Üçü birlikte nasıl çalışır?
Alan adınızdan müşterinize bir e-posta gittiğinde alıcı sunucu kabaca şunları yapar:
- E-postayı getiren sunucunun IP adresine bakar ve SPF kaydınızla karşılaştırır.
- E-postadaki DKIM imzasını, DNS'inizdeki açık anahtarla doğrular.
- DMARC kaydınızı okur. SPF veya DKIM'den biri geçmiş ve alan adı "Kimden" ile uyuşuyorsa e-posta DMARC'ı geçer.
- Geçemezse DMARC politikanıza (none, quarantine, reject) göre davranır ve sonucu raporuna ekler.
Sonuç olarak sahte e-postalar ya spam klasörüne gider ya da hiç teslim edilmez; sizin gerçek e-postalarınız ise güvenilir görünür. Gmail ve Yahoo gibi büyük sağlayıcılar, özellikle çok sayıda e-posta gönderen alan adlarından bu kayıtların üçünü birden istemektedir.
Güvenli kurulum sırası
En sık yapılan hata, DMARC'ı ilk günden en sıkı ayarla açıp kendi e-postalarını da engellemektir. Şu sıra daha güvenlidir:
- Gönderenlerin listesini çıkarın. Kurumsal e-posta hizmetiniz, web sitenizin iletişim formu, bülten aracınız, fatura veya muhasebe yazılımınız, CRM gibi sizin adınıza e-posta gönderen her hizmeti yazın.
- Tek bir SPF kaydı oluşturun. Bu hizmetlerin her birinin istediği
include:veyaip4:değerini aynı satıra ekleyin; sonuna~allyazın. - Her hizmette DKIM'i açın. Her gönderen hizmetin verdiği DKIM kaydını ayrı seçici adıyla ekleyin. Mümkünse imzanın sizin alan adınızla atılmasını seçin; bu, DMARC hizalaması için önemlidir.
- DMARC'ı
p=noneile açın. Rapor adresini (rua) mutlaka yazın. Raporlar XML dosyası olarak gelir; okunabilir hale getirmek için DMARC rapor analiz hizmetlerinden yararlanabilirsiniz. - Birkaç hafta raporları izleyin. Doğrulamayı geçemeyen ama sizin olan bir kaynak görürseniz SPF veya DKIM'e ekleyin.
p=quarantine'e geçin, bir süre daha izleyin, sorun yoksap=rejectyapın.
Kayıtları değiştirdikten sonra değişikliğin yayılması biraz zaman alabilir. Kaydın herkese açık DNS sunucularına ulaşıp ulaşmadığını DNS yayılım kontrolü aracında TXT türünü seçerek izleyebilirsiniz.
Kayıtlarınızı kontrol edin
E-posta DNS kontrolü aracımız, alan adınızın MX, SPF ve DMARC kayıtlarını okuyup çift SPF, +all, eksik DMARC gibi yaygın hataları işaretler. DKIM kaydının adı seçiciye bağlı olduğu için araç onu otomatik bulamaz; secici._domainkey.ornek.com adını DNS sorgulama aracına tam olarak yazarak kontrol edebilirsiniz.
Uygulamada en güvenilir test, kendi alan adınızdan Gmail gibi büyük bir hizmetteki bir adrese e-posta göndermektir. Alıcı tarafta e-postanın özgün kaynağını açtığınızda SPF, DKIM ve DMARC için "PASS" (geçti) veya "FAIL" (başarısız) sonuçlarını görürsünüz.
Kayıtlar doğru olduğu halde e-postalarınız hâlâ istenmeyen klasörüne düşüyorsa sebep başka bir yerde olabilir: gönderen IP adresinin kara listede olması, ters DNS kaydının eksikliği veya e-postanın içeriği. Bunları e-postalar neden spama düşüyor yazımızda sırayla ele aldık.
Sık sorulan sorular
Bu üç kayıttan yalnızca birini kurmam yeterli mi?
Hayır. SPF ve DKIM doğrulamayı yapar, DMARC ise sonucun ne olacağını söyler. Büyük e-posta sağlayıcıları üçünü birlikte görmek ister; biri eksikse e-postalarınızın spam klasörüne düşme olasılığı artar.
Gmail veya Outlook adresi kullanıyorum, bu kayıtları ben mi kurmalıyım?
Hayır. gmail.com veya outlook.com gibi adresleri kullanıyorsanız kayıtlar o hizmetin sorumluluğundadır. Bu kayıtlar yalnızca kendi alan adınızla (ör. [email protected]) e-posta gönderiyorsanız sizi ilgilendirir.
Alan adımdan hiç e-posta göndermiyorum, yine de kayıt eklemeli miyim?
Evet, eklemeniz önerilir. v=spf1 -all şeklinde bir SPF kaydı ve p=reject politikalı bir DMARC kaydı, başkalarının alan adınızı sahte gönderen adresi olarak kullanmasını zorlaştırır.
DMARC'ı hemen p=reject yaparsam ne olur?
E-posta gönderen hizmetlerinizden biri SPF veya DKIM'e eklenmemişse o hizmetten giden meşru e-postalar da reddedilir. Bu yüzden önce p=none ile raporları izleyip bütün gönderenleri tanımlamak daha güvenlidir.
Kayıtları ekledim ama hemen çalışmıyor, neden?
DNS değişiklikleri önbelleklerdeki eski kaydın süresi dolana kadar her yerde görünmeyebilir. Genellikle dakikalar ile birkaç saat arasında düzelir. Kaydın yayılıp yayılmadığını DNS yayılım kontrolü aracıyla izleyebilirsiniz.



