Ücretsiz · hesap gerekmez

SPF ve DMARC kontrolü

Bir alan adının SPF, DMARC, MTA-STS ve CAA kayıtlarını online sorgula ve her birinin nasıl değerlendirildiğini gör. E-posta gönderdiğin alan adını gir; örneğin www.example.com yerine example.com.

Web sitenizin herkese açık ayarları ücretsiz kontrol edilir. Sitenizde değişiklik yapılmaz.

Kayıt gerekmez Zarar verici trafik yok Herkese açık web sitesi kontrolleri
Kayıt başvurusu

Her kayıt ne yapar ve nasıl değerlendirilir

Bu kontrol, bu kayıtları girdiğin ana makine adında okur. Eksik SPF, DMARC ve MTA-STS kayıtları yalnızca ana makinede MX kayıtları varsa işaretlenir, çünkü e-posta almayan bir ana makinenin bunlara aynı şekilde ihtiyacı yoktur.

KayıtNerede yayınlanırİyi bir ayarBu kontrol nasıl değerlendirir
MXAna makine adındaki MX kayıtları.E-posta kabul eden alan adlarında bulunur.Sayılır ve gösterilir; tek başına hiçbir zaman bulgu değildir.
SPFAna makine adında v=spf1 ile başlayan bir TXT kaydı.Alan adı adına e-posta gönderen her hizmeti listeleyen tam olarak bir SPF kaydı.Ana makinede MX kayıtları varken yoksa: orta. Kayıt metni gösterilir.
SPF all mekanizmasıSPF kaydının son terimi.-all veya ~all.+all: yüksek. ?all: düşük. -all ve ~all bulgu üretmez.
SPF DNS sorgularıKayıttaki include, a, mx, ptr, exists ve redirect terimleri.DNS sorgusu gerektiren en fazla on terim.Üst düzey kayıtta ondan fazlası: orta. include: hedefleri açılmaz, bu yüzden iç içe sorgular sayılmaz.
DMARCexample.com için _dmarc.example.com adresinde v=DMARC1 ile başlayan bir TXT kaydı.Raporlar tüm meşru e-postaların geçtiğini gösterdiğinde p=quarantine veya p=reject.Ana makinede MX kayıtları varken yoksa: orta. p=none: düşük. quarantine veya reject: geçti. sp, pct, rua ve hizalama değerlendirilmez. Bir alt alan adında alıcılar kurumsal alan adının DMARC politikasını da uygular; bu kontrol onu okumaz.
MTA-STS_mta-sts.example.com adresinde v=STSv1 ile başlayan bir TXT kaydı ve mta-sts ana makinesinde bir politika dosyası.Kayıt ve politika dosyası birlikte; test edildikten sonra enforce modunda.Ana makinede MX kayıtları varken kayıt yoksa: düşük. Yalnızca DNS kaydı kontrol edilir; politika dosyası alınmaz.
CAAAna makine adındaki CAA kayıtları.Yalnızca kullandığın sertifika otoritelerini belirten kayıtlar.Herhangi bir CAA kaydı: geçti. Hiç yoksa: düşük. İçerik sertifikanla karşılaştırılmaz. Bir alt alan adında sertifika otoriteleri üst alan adının CAA kayıtlarına da uyar; bu kontrol onları okumaz.
DKIMselector._domainkey.example.com adresindeki TXT kayıtları.E-postanı imzalayan her hizmet için bir anahtar.Kontrol edilmez: selector adları yalnızca DNS’ten bulunamaz.

TLS raporlama, DNSSEC ve BIMI kontrol edilmez.

Nasıl düzeltilir

Sık görülen SPF ve DMARC bulguları nasıl düzeltilir

Kayıtları birer birer değiştir ve yeniden kontrol etmeden önce DNS’in güncellenmesi için zaman tanı. Örneklerde example.com ve yer tutucu servisler kullanılır; bunları kendi alan adınla ve e-postanı gerçekten gönderen servislerle değiştir.

DMARC’ı izleme modunda yayınla

From adresindeki alan adında _dmarc altına tek bir TXT kaydı ekle. p=none teslimatı değiştirmez; rua ise alıcılardan, alan adın adına hangi sunucuların e-posta gönderdiğini ve bunların SPF veya DKIM’den hizalı olarak geçip geçmediğini gösteren toplu raporlar ister. Raporlar başka bir alan adına gidiyorsa o alan adı, raporları yetkilendiren bir kayıt yayınlamalıdır.

; DMARC record for example.com, monitoring only
_dmarc.example.com.  TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"

; Only if rua points to another domain, for example rua=mailto:reports@example.net,
; example.net publishes:
example.com._report._dmarc.example.net.  TXT  "v=DMARC1"

Önce quarantine’e, sonra reject’e geç

Raporlar tüm meşru kaynakların geçtiğini gösterdiğinde p=quarantine’e geç, raporları yeniden izle, ardından p=reject’e geç. RFC 7489, politikayı başarısız e-postaların bir kısmına uygulamak için pct sunuyordu. Onun yerini alan RFC 9989, kısmi değerler tutarsız uygulandığı için pct’yi kaldırır ve alıcılardan yayınlanan politikanın bir alt seviyesini uygulamalarını isteyen t=y’yi ekler. RFC 7489’u izleyen alıcılar t=y’yi yok sayar; bu yüzden test sırasında pct=0 da ekle; bu, onlardan aynı şekilde bir alt seviyeyi uygulamalarını ister. Politikayı tam uygulamak için iki etiketi de kaldır.

; Publish one version at a time, in this order, after p=none
; 1. Quarantine in test mode (t=y, plus pct=0 for RFC 7489 receivers), then in full
_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; t=y; pct=0; rua=mailto:dmarc-reports@example.com"
_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com"
; 2. Reject in test mode, then in full
_dmarc.example.com.  TXT  "v=DMARC1; p=reject; t=y; pct=0; rua=mailto:dmarc-reports@example.com"
_dmarc.example.com.  TXT  "v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com"

Her alan adında tek SPF kaydı tut

Bir ad, v=spf1 ile başlayan yalnızca bir TXT kaydı taşıyabilir; iki kayıt SPF’nin kalıcı hatayla başarısız olmasına yol açar. Tüm göndericileri tek kayıtta birleştir. include: bir sağlayıcının kendi kaydını kontrol eder, redirect= ise tüm politikayı başka bir alan adına devreder; bu, birkaç alan adı aynı politikayı paylaştığında işe yarar. Kayıtta bir all terimi de varsa redirect= yok sayılır.

; Before: two SPF records on one name (permerror)
example.com.  TXT  "v=spf1 include:_spf.mailhost.example ~all"
example.com.  TXT  "v=spf1 include:spf.newsletter.example ~all"

; After: one record
example.com.  TXT  "v=spf1 include:_spf.mailhost.example include:spf.newsletter.example ~all"

; Another domain that uses the same policy
example.org.  TXT  "v=spf1 redirect=example.com"

On DNS sorgusu sınırında kal

SPF, DNS sorgusu gerektiren en fazla on terime izin verir ve iç içe her include bu sayıya dahildir: include, a, mx, ptr, exists ve redirect. Bir fazlası SPF’nin kalıcı hatayla başarısız olmasına yol açar. Artık kullanmadığın servislerin include’larını kaldır, a ve mx yerine kontrol ettiğin ip4 veya ip6 aralıklarını yaz, ptr’yi çıkar ve toplu gönderim yapan bir servisi kendi SPF kaydı olan bir alt alan adına taşı. Bir sağlayıcının adreslerini kaydına kopyalamak da sorgu tasarrufu sağlar, ancak sağlayıcı adreslerini değiştirdiğinde kopya eskir. Bu kontrol yalnızca üst düzey terimleri sayar.

; One lookup each: include, a, mx, ptr, exists, redirect (plus every lookup inside an include)
; No lookup: ip4, ip6, all

; Before: 4 lookups in the top-level record alone
example.com.       TXT  "v=spf1 a mx include:_spf.mailhost.example include:spf.oldtool.example ~all"

; After: fixed address, unused service removed, bulk mail on its own subdomain
example.com.       TXT  "v=spf1 ip4:192.0.2.10 include:_spf.mailhost.example ~all"
news.example.com.  TXT  "v=spf1 include:spf.newsletter.example ~all"

~all ile -all arasında dikkatle seç

Kaydı ~all (softfail) veya -all (fail) ile bitir; herhangi bir sunucunun geçmesine izin veren +all ile asla bitirme. -all daha katı bir sinyaldir, ancak SPF’yi erken kontrol eden bir alıcı bu durumda iletilmiş bir e-postayı, DMARC geçerli DKIM imzasını görmeden reddedebilir. Uygulanan bir DMARC politikası varken ~all kararı DMARC’a bırakır. Hiç e-posta göndermeyen bir alan adı v=spf1 -all yayınlayabilir.

; Choose one ending for example.com, not both
example.com.  TXT  "v=spf1 include:_spf.mailhost.example ~all"
example.com.  TXT  "v=spf1 include:_spf.mailhost.example -all"

; A domain that sends no mail
example.net.  TXT  "v=spf1 -all"

DKIM’i From alan adınla hizala

DMARC, SPF veya DKIM From adresiyle hizalı bir alan adı için geçtiğinde geçer. Birçok servis varsayılan olarak kendi alan adıyla imzalar; bu DKIM’den geçer ama hizalamadan geçmez. Her serviste kendi alan adınla imzalamayı aç, böylece imza d=example.com taşır, ve servisin verdiği anahtarı veya CNAME’i seçicisinin altında yayınla. Varsayılan olan gevşek hizalama, aynı kurumsal alan adının her alt alan adını kabul eder; adkim=s ve aspf=s birebir eşleşme ister.

; Key for a sending service, selector s1: a CNAME or a TXT record, as the service says
s1._domainkey.example.com.  CNAME  s1.dkim.mailhost.example.
s1._domainkey.example.com.  TXT    "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOC..."

; Aligned signature in a delivered message: d= matches the From domain
From: news@example.com
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=s1; ...

Bir DNS değişikliğinin her çözümleyiciye ulaşması eski kaydın TTL süresi kadar sürebilir. Ardından kontrolü From adresindeki alan adı için yeniden çalıştır, çünkü kontrol girdiğin ana makine adının tam kendisini okur.

Sonucu okumak

Her durum nasıl okunur.

  1. 01GeçtiKayıt bulundu ve kontrolü karşılıyor.
  2. 02Düşük · Orta · YüksekBir kayıt eksik ya da bu kontrolün işaretlediği bir şekilde ayarlanmış. Seviye, tam snapshot’ın kullandığıyla aynıdır.
  3. 03GözlendiBir kayıt gözlendi, ancak kontrol ne geçti ne de bulgu üretti.
  4. 04GözlenmediKontrol çalıştı ama gösterilecek bir kayıt bulamadı.
  5. 05UygulanmazKontrol uygulanmaz; örneğin ana makinede MX kayıtları yokken SPF veya DMARC.
  6. 06ÖlçülmediDNS sorgusu başarısız oldu, bu yüzden kontrol geçti sayılmaz.
Kapsam

Bu kontrolün yapmadıkları.

  1. 01Kayıtları girdiğin ana makine adının tam kendisinde okur. www.example.com için example.com’u değil, www.example.com ve _dmarc.www.example.com adreslerini sorgular.
  2. 02Ana makine adının bir adrese çözümlenmesi gerekir. A veya AAAA kaydı olmayan, yalnızca e-posta için kullanılan bir alan adı burada sonuç almaz.
  3. 03DKIM, TLS raporlama veya DNSSEC kontrol etmez ve SPF include: terimlerini açmaz.
  4. 04E-posta kayıtları yalnızca herkese açık DNS’ten okunur ve e-posta gönderilmez. Aynı çalıştırma, diğer yedi kontrol için ana sayfaya birkaç sıradan istek de gönderir. Teslim edilebilirlik testi, zafiyet taraması veya pentest değildir.
  5. 05Sonuç anlık bir görüntüdür; DNS değişikliklerinin her çözümleyiciye ulaşması zaman alabilir.
SSS

SPF ve DMARC kontrolü hakkında sorular.

www.example.com neden SPF kaydı göstermiyor?

Kontrol, ana makine adının tam kendisini okur. E-posta kayıtları genellikle e-posta gönderdiğin alan adında bulunur, bu yüzden doğrudan example.com’u gir.

p=none yanlış mı?

p=none izleme modudur. DMARC raporlarını okurken normal bir ilk adımdır, bu yüzden düşük olarak değerlendirilir. Tüm meşru e-postalar geçtiğinde quarantine veya reject’e geç.

DKIM neden kontrol edilmiyor?

DKIM anahtarları yalnızca gönderen hizmetlerin bildiği selector adları altında yayınlanır, bu yüzden yalnızca DNS’ten bulunamaz. Bunları e-postanı gönderen her hizmetin ayarlarından kontrol et.

Bu, e-postamın gelen kutusuna ulaşıp ulaşmadığını test ediyor mu?

Hayır. E-posta kayıtları yalnızca herkese açık DNS’ten okunur ve e-posta gönderilmez; aynı çalıştırma diğer kontroller için ana sayfaya birkaç sıradan istek de gönderir. Zafiyet taraması veya pentest değildir. Gelen kutusuna ulaşmak ayrıca gönderen hizmete, onun itibarına ve her bir mesaja bağlıdır.

Bir alan adının iki SPF kaydı olabilir mi?

Hayır. Bir adda v=spf1 ile başlayan birden fazla TXT kaydı varsa SPF her e-posta için kalıcı hata döndürür. Mekanizmaları tek kayıtta birleştir; uzun bir kayıt aynı kaydın içinde birkaç tırnaklı dizeye bölünebilir ve alıcılar bu dizeleri araya boşluk eklemeden birleştirir.

SPF geçtiği hâlde DMARC neden başarısız oluyor?

SPF, From adresindeki alan adını değil zarf göndericisini kontrol eder; bu çoğu zaman e-posta servisine ait bir geri dönüş (bounce) alan adıdır. Bu geçiş, ancak iki alan adı hizalı olduğunda DMARC için sayılır. Her serviste kendi alan adınla DKIM imzalamayı veya alt alan adlarından birinde özel bir zarf göndericisini ayarla.

p=none’da ne kadar kalmalıyım?

Toplu raporlar, faturalar gibi ayda bir giden e-postalar dahil tüm meşru kaynakların hizalı bir alan adıyla geçtiğini gösterene kadar. Kullanıcıları e-posta listelerine yazan alan adları için RFC 9989 reject önermez; yine de seçersen önce en az bir ay none’da ve bir o kadar quarantine’de kal.