
Gönderdiğiniz e-postalar spam klasörüne düşüyorsa veya alan adınız adına başkalarının sahte e-posta gönderdiğinden şüpheleniyorsanız, ilk kontrol etmeniz gereken üçlü SPF, DKIM ve DMARC kayıtlarıdır. Bu üç mekanizma, alıcı sunucuların bir e-postanın gerçekten sizin alan adınızdan gelip gelmediğini doğrulamasını sağlar. Bu yazıda her birinin nasıl çalıştığını, doğru DNS kaydı söz dizimini ve güvenli bir kurulum sırasını örneklerle anlatıyoruz.
Neden Bu Üç Kayda İhtiyaç Var?
E-postanın temel protokolü olan SMTP, gönderenin kimliğini doğrulamak üzere tasarlanmamıştır. Herhangi bir sunucu, "Kimden" alanına istediği adresi yazabilir. Oltalama (phishing) saldırıları ve sahte faturalar bu zayıflıktan yararlanır.
SPF, DKIM ve DMARC bu açığı katman katman kapatır:
- SPF: Bu alan adı adına hangi sunucular e-posta gönderebilir?
- DKIM: E-posta yolda değiştirilmedi mi ve gerçekten bu alan adının anahtarıyla imzalandı mı?
- DMARC: SPF veya DKIM doğrulaması başarısız olursa alıcı ne yapmalı ve sonuçlar kime raporlanmalı?
Büyük e-posta sağlayıcıları, özellikle yüksek hacimli gönderim yapanlardan bu üç kaydın eksiksiz olmasını beklemektedir. Toplu gönderim yapmasanız bile bu kayıtlar teslim edilebilirliğinizi doğrudan etkiler.
SPF Nedir, Nasıl Yazılır?
SPF (Sender Policy Framework), alan adınızın kökünde yayınlanan bir TXT kaydıdır. Alıcı sunucu, e-postayı getiren sunucunun IP adresini bu listeyle karşılaştırır. SPF kontrolü, görünen "Kimden" adresine değil, SMTP oturumundaki zarf göndereni (Return-Path) alan adına göre yapılır.
example.com. 3600 IN TXT "v=spf1 ip4:203.0.113.20 mx include:_spf.saglayici.example.net -all"
SPF mekanizmaları
ip4:veip6:— Belirli bir IP adresi veya blok (ör.ip4:203.0.113.0/28)a— Alan adının A kaydındaki IPmx— Alan adının MX sunucularının IP'leriinclude:— Başka bir alan adının SPF kaydını dahil eder (e-posta servis sağlayıcıları için)
Sondaki niteleyici
-all(hardfail): Listede olmayan sunucular yetkisizdir.~all(softfail): Listede olmayanlar şüphelidir, genellikle kabul edilip işaretlenir.?all(neutral): Hiçbir şey söylemez; koruma sağlamaz.+all: Herkese izin verir. Asla kullanmayın.
SPF'te sık yapılan hatalar
- Birden fazla SPF kaydı: Alan adında yalnızca bir
v=spf1kaydı olmalıdır. Yeni bir servis eklediğinizde mevcut kaydaincludeekleyin, ikinci kayıt oluşturmayın. - 10 DNS sorgusu sınırı:
include,a,mx,existsveredirectmekanizmaları DNS sorgusu gerektirir ve toplamı 10'u aşmamalıdır. Aşılırsa SPF "permerror" verir.ip4veip6sorgu sayısına dahil değildir. - Unutulan gönderim kaynakları: Web sitenizin iletişim formu, fatura yazılımınız veya bülten servisiniz de alan adınız adına e-posta gönderiyorsa SPF'e eklenmelidir.
DKIM Nedir, Nasıl Kurulur?
DKIM (DomainKeys Identified Mail), giden e-postaya kriptografik bir imza ekler. Gönderen sunucu özel anahtarla imzalar; alıcı sunucu açık anahtarı DNS'ten alarak imzayı doğrular. İmza, e-postanın başlıklarının ve gövdesinin yolda değiştirilmediğini kanıtlar.
Açık anahtar, bir seçici (selector) adı altında yayınlanır. Seçici, aynı alan adı için birden fazla anahtar kullanabilmenizi sağlar:
mail._domainkey.example.com. 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
Bu örnekte seçici mail'dir. E-posta başlığındaki DKIM-Signature alanında s=mail; d=example.com değerleri bulunur ve alıcı sunucu mail._domainkey.example.com adresini sorgular.
DKIM anahtarı oluşturma
cPanel, Plesk ve kurumsal e-posta hizmetleri DKIM anahtarını genellikle otomatik üretir; size yalnızca DNS kaydını eklemek kalır. Kendi Postfix sunucunuzda OpenDKIM kullanıyorsanız anahtarı şu şekilde oluşturabilirsiniz:
sudo mkdir -p /etc/opendkim/keys/example.com
sudo opendkim-genkey -b 2048 -d example.com -s mail -D /etc/opendkim/keys/example.com
sudo cat /etc/opendkim/keys/example.com/mail.txt
mail.txt dosyası DNS'e eklenecek kaydı içerir. 2048 bit RSA anahtar günümüzün önerilen değeridir. 2048 bitlik anahtar 255 karakteri aştığı için TXT kaydı birden fazla tırnaklı parçaya bölünebilir; çoğu DNS paneli bunu otomatik yapar.
DMARC Nedir, Nasıl Yazılır?
DMARC (Domain-based Message Authentication, Reporting and Conformance), SPF ve DKIM'in üzerine iki şey ekler: hizalama (alignment) ve politika.
Hizalama, doğrulanan alan adının kullanıcının gördüğü "Kimden" adresindeki alan adıyla eşleşmesi demektir. Bir e-postanın DMARC'tan geçmesi için SPF veya DKIM'den en az birinin hem başarılı hem de hizalı olması gerekir.
_dmarc.example.com. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:[email protected]; adkim=r; aspf=r"
DMARC etiketleri
| Etiket | Anlamı | Örnek |
|---|---|---|
v | Sürüm, her zaman ilk etiket | v=DMARC1 |
p | Politika: none, quarantine veya reject | p=quarantine |
rua | Toplu (aggregate) raporların gönderileceği adres | rua=mailto:[email protected] |
sp | Alt alan adları için ayrı politika | sp=reject |
adkim / aspf | Hizalama modu: r (gevşek) veya s (katı) | adkim=s |
pct | Politikanın uygulanacağı e-posta yüzdesi | pct=50 |
Politika değerleri
p=none: Yalnızca izleme. E-postalar etkilenmez, raporlar gelir.p=quarantine: Doğrulamayı geçemeyen e-postalar spam klasörüne yönlendirilir.p=reject: Doğrulamayı geçemeyen e-postalar reddedilir.
Örnek: Birden Fazla Servis Kullanan Bir Şirket
Teoriyi somutlaştırmak için şu senaryoyu düşünelim: example.com alan adına sahip bir şirket, çalışan e-postaları için kurumsal bir e-posta servisi, web sitesindeki iletişim formu için kendi sunucusu (203.0.113.20) ve bülten gönderimi için ayrı bir pazarlama servisi kullanıyor. Doğru yapılandırma şu şekilde olur:
; Tek SPF kaydı, tüm kaynaklar birlikte
example.com. IN TXT "v=spf1 ip4:203.0.113.20 include:_spf.eposta.example.net include:spf.bulten.example.org -all"
; Her servis kendi seçicisiyle DKIM yayınlar
kurumsal._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=..."
web._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=..."
bulten._domainkey.example.com. IN CNAME bulten.dkim.example.org.
; Tek DMARC kaydı
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"
Bazı servisler DKIM anahtarını doğrudan TXT yerine kendi alan adlarına işaret eden bir CNAME kaydıyla yayınlamanızı ister; böylece anahtar rotasyonunu servis kendisi yönetir. Hangi yöntemin kullanılacağını servisin kurulum ekranı belirtir. Kayıt türlerinin genel mantığını DNS kayıtları rehberimizde bulabilirsiniz.
Yönlendirme ve E-posta Listelerinde Ne Olur?
Bir e-posta otomatik yönlendirmeyle başka bir adrese iletildiğinde, son alıcı sunucu e-postayı yönlendiren sunucudan alır. Bu sunucu orijinal alan adının SPF listesinde olmadığı için SPF doğrulaması genellikle başarısız olur. DKIM imzası ise ileti değiştirilmediği sürece yönlendirmeden sağ çıkar. Bu nedenle DMARC'ın yönlendirilen e-postalarda sağlıklı çalışması büyük ölçüde DKIM'e bağlıdır; DKIM'i atlamamanızın en önemli nedenlerinden biri budur.
E-posta listeleri ise konu satırına etiket veya gövdeye alt bilgi ekleyerek DKIM imzasını bozabilir. Modern liste yazılımları bu sorunu "Kimden" adresini yeniden yazarak veya ARC (Authenticated Received Chain) başlıkları ekleyerek hafifletir.
Güvenli Kurulum Sırası
Doğrudan p=reject ile başlamak, unuttuğunuz meşru bir gönderim kaynağının (ör. fatura sistemi) tüm e-postalarının reddedilmesine yol açabilir. Önerilen sıra şudur:
- Gönderim kaynaklarını listeleyin: E-posta sunucunuz, web sitesi, CRM, bülten aracı, fatura yazılımı.
- SPF kaydını oluşturun ve tüm kaynakları tek kayıtta toplayın. Başlangıçta
~allkullanabilirsiniz. - DKIM'i her gönderim kaynağı için etkinleştirin ve DNS kayıtlarını ekleyin.
- DMARC'ı
p=noneile yayınlayın ve birkaç hafta raporları izleyin. - Raporlarda bilinmeyen meşru kaynak kalmadığında
p=quarantine'e, ardındanp=reject'e geçin. Geçişipctetiketiyle kademeli yapabilirsiniz.
DMARC raporları XML formatında ve sıkıştırılmış olarak gelir. Raporlar için ayrı bir posta kutusu kullanmanız ve bir rapor analiz aracıyla okumanız işinizi kolaylaştırır.
Kayıtları Doğrulamak
Kayıtları ekledikten sonra DNS'te doğru yayınlandığını komut satırından kontrol edin:
dig +short TXT example.com
dig +short TXT mail._domainkey.example.com
dig +short TXT _dmarc.example.com
Daha pratik bir yol olarak DNS sorgulama aracımız ile TXT kayıtlarını görüntüleyebilir, e-posta doğrulama aracımız ile alan adınızın e-posta yapılandırmasını kontrol edebilirsiniz.
Son adım gerçek bir test e-postasıdır. Kendinize, farklı bir e-posta sağlayıcısındaki bir adrese e-posta gönderip ileti başlıklarını (orijinali göster / ham ileti) açın. Authentication-Results başlığında şu satırları görmelisiniz:
spf=pass smtp.mailfrom=example.com
dkim=pass header.d=example.com
dmarc=pass header.from=example.com
SPF, DKIM ve DMARC Yetmiyorsa
Üç kayıt da doğru olduğu halde e-postalarınız spama düşüyorsa sorun başka katmanlardadır:
- Ters DNS (PTR): Gönderen IP'nin PTR kaydı sunucunun ana makine adını göstermeli ve bu ad aynı IP'ye çözülmelidir. Ayrıntılar için PTR kaydı yazımıza bakın.
- IP itibarı: Gönderen IP bir kara listedeyse doğrulama kayıtları tek başına yetmez.
- İçerik ve gönderim davranışı: Yalnızca görselden oluşan e-postalar, kısaltılmış bağlantılar ve izinsiz listelere toplu gönderim spam puanını artırır.
Kendi sunucunuzdan e-posta göndermeyi planlıyorsanız bu konuları VDS üzerinde mail sunucusu kurmadan önce bilmeniz gerekenler yazımızda ayrıntılı ele aldık.
Sık Sorulan Sorular
SPF'te -all mı ~all mı kullanmalıyım?
Tüm gönderim kaynaklarınızı listelediğinizden eminseniz -all daha net bir politikadır. Emin değilseniz ~all ile başlayıp DMARC raporlarını inceledikten sonra -all'a geçebilirsiniz.
DMARC kaydı olmadan DKIM işe yarar mı?
Evet, DKIM tek başına da imza doğrulaması sağlar ve itibar değerlendirmesinde kullanılır. Ancak doğrulama başarısız olduğunda ne yapılacağını belirten ve raporlama sağlayan DMARC'tır.
Hiç e-posta göndermeyen bir alan adı için ne yapmalıyım?
Sahte gönderimleri engellemek için v=spf1 -all SPF kaydı ve v=DMARC1; p=reject DMARC kaydı yayınlayın. Böylece alan adınız adına gönderilen e-postalar reddedilir.
Kayıtları ekledim, ne zaman etkili olur?
Kayıtlar, DNS TTL süresine bağlı olarak genellikle dakikalar ile birkaç saat içinde etkili olur. Yeni eklenen kayıtlar önbellekte eski bir değer olmadığı için çoğunlukla hızlı görünür.
Alt alan adları için ayrı kayıt gerekir mi?
Alt alan adından e-posta gönderiyorsanız o alt alan adı için ayrı SPF ve DKIM kaydı gerekir. DMARC'ta sp etiketiyle alt alan adlarına ayrı politika tanımlanabilir.
SPF, DKIM ve DMARC birlikte doğru kurulduğunda hem e-postalarınızın teslim oranı artar hem de alan adınız sahte gönderimlere karşı korunur. Bu kayıtları sizin yerinize hazır yapılandıran, doğrulama kayıtlarını kurulumla birlikte sunan bir çözüm istiyorsanız kurumsal e-posta hizmetimizi inceleyebilir, web siteniz ve e-postanız için kurumsal hosting paketlerini değerlendirebilirsiniz.
Hizmet Sözleşmemiz
Web Koruma
İade Politikamız
