DMARC nedir?
DMARC (Domain-based Message Authentication, Reporting & Conformance), SPF veya DKIM ile kimliği doğrulanmış bir alan adının bir iletinin From adresindeki alan adıyla hizalanıp hizalanmadığını kontrol eden bir e-posta kimlik doğrulama protokolüdür. Alan adı sahibi, DMARC doğrulamasından geçemeyen iletiler için istenen işleme tercihini yayımlayabilir ve toplu ya da iletiye özgü hata raporları isteyebilir.
DMARC neden gereklidir?
SPF ve DKIM, gönderim tanımlayıcılarının kimliğini doğrular. Tek başlarına, kimliği doğrulanmış bir tanımlayıcının From adresindeki alan adıyla hizalanıp hizalanmadığını kontrol etmez veya başarısız iletiler için alan adı sahibinin işleme tercihini belirtmezler.
DMARC bunu şu yollarla çözer:
- İşleme tercihini belirtme: DMARC'tan geçemeyen iletiler için none, quarantine veya reject
- Hizalamayı kontrol etme: Kimliği doğrulanmış en az bir SPF veya DKIM tanımlayıcısı From alan adıyla hizalanmalıdır
- Rapor isteme: Toplu ve iletiye özgü hata raporları, gözlemlenen kimlik doğrulama sonuçları hakkında bilgi sağlar
DMARC nasıl çalışır?
1. Gönderen yayımlar: DMARC politikasını DNS'te (_dmarc.domain.com adresindeki TXT kaydında)
2. E-posta gönderilir: From: [email protected] ile
3. Alıcı denetler: SPF ve DKIM'i
4. Alıcı hizalamayı denetler: Kimliği doğrulanmış alan adı From üstbilgisiyle eşleşiyor mu?
5. İşleme kararı: Alıcı, istenen politikayı ve diğer sinyalleri değerlendirir
6. Raporlar gönderilebilir: Katılan alıcılar, istenen toplu veya iletiye özgü hata raporlarını gönderebilir
DMARC hizalaması
DMARC'ta hizalama gerekir: From üstbilgisindeki alan adı, kaydın gevşek veya katı moduna göre kimliği doğrulanmış en az bir tanımlayıcıyla hizalanmalıdır:
- SPF hizalaması: SPF ile doğrulanmış MAIL FROM alan adı veya MAIL FROM null olduğunda HELO alan adı
- DKIM hizalaması: Geçerli bir DKIM imzasındaki d= alan adı
Hizalama olmadığında SPF veya DKIM başarılı olurken DMARC başarısız olabilir. DMARC, tam From alan adını kullanan belirli sahtecilik biçimlerini doğrudan ele alır. Görsel olarak benzer alan adlarını veya gönderenin görünen adının kötüye kullanımını tespit etmez.
DMARC kayıt biçimi
DMARC kayıtları _dmarc.yourdomain.com adresindeki TXT kayıtlarıdır:
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:[email protected]"
DMARC etiketleri
| Etiket | Gerekli | Açıklama | Örnek |
|---|---|---|---|
| v | Evet | Sürüm | v=DMARC1 |
| p | Önerilir (isteğe bağlı) | DMARC doğrulamasından geçemeyen postalar için istenen işleme tercihi | p=none/quarantine/reject |
| rua | Hayır | Toplu rapor URI'si | rua=mailto:[email protected] |
| ruf | Hayır | İletiye özgü hata raporu URI'si | ruf=mailto:[email protected] |
| t | Hayır | Politika test modu | t=y veya t=n |
| sp | Hayır | Mevcut alt alan adları için istenen politika | sp=reject |
| np | Hayır | Mevcut olmayan alt alan adları için istenen politika | np=reject |
| adkim | Hayır | DKIM hizalama modu | adkim=s (strict) veya adkim=r (relaxed) |
| aspf | Hayır | SPF hizalama modu | aspf=s veya aspf=r |
pct etiketi tarihsel niteliktedir. Güncel DMARC standardı, başarısız iletilerin bir yüzdesine politika uygulamak için artık bu etiketi kullanmaz. p etiketi önerilir ancak isteğe bağlıdır; aksi durumda geçerli bir kayıt, p=none olarak değerlendirilir.
DMARC politikaları
p=none: Başarısız iletiler için herhangi bir işleme tercihi belirtmez. Alan adı sahipleri, raporları incelerken bunu yaygın olarak kullanır.v=DMARC1; p=none; rua=mailto:[email protected]
p=quarantine: Alıcıların DMARC'tan geçemeyen iletileri şüpheli olarak değerlendirmesini ister.
v=DMARC1; p=quarantine; rua=mailto:[email protected]
p=reject: Alıcıların DMARC'tan geçemeyen iletileri reddetmesini ister. Alıcılar bu tercihi diğer sinyallerle birlikte değerlendirir; bu nedenle reddedilmeyi garanti etmez.
v=DMARC1; p=reject; rua=mailto:[email protected]
DMARC uygulama yolu
1. Aşama: İzleme (p=none)
E-posta ekosisteminizi anlamak için izlemeyle başlayın:
v=DMARC1; p=none; rua=mailto:[email protected]
Şunları belirlemek için raporları analiz edin:
- SPF/DKIM eksik olan meşru gönderim hizmetleri
- Yetkisiz gönderenler (spoofing)
- Hizalama sorunları
2. Aşama: Karantinaya alma (p=quarantine)
Meşru kaynakların kimliği doğrulandıktan sonra:
v=DMARC1; p=quarantine; rua=mailto:[email protected]
Daha katı bir politika seçmeden önce raporları inceleyin ve meşru postaların kimliğinin doğrulandığını onaylayın. Güncel DMARC standardı yüzdelik bir dağıtım tanımlamaz.
3. Aşama: Reddetme (p=reject)
DMARC'tan geçemeyen iletilerin reddedilmesini isteyin:
v=DMARC1; p=reject; rua=mailto:[email protected]
DMARC raporları
Toplu raporlar (rua)
Alıcıların toplu XML raporlarını günlük veya daha sık göndermesi önerilir. Raporlar gözlemlenen ileti akışlarını özetler; bu nedenle kullanılabilirlik ve kapsam, rapor gönderen alıcılara bağlıdır:
- E-posta hacmi
- SPF, DKIM ve DMARC için başarılı/başarısız oranları
- Gönderim IP adresleri
- Alıcı kuruluşlar
Hata raporları (ruf)
İletiye özgü raporlar, ileti başlıklarını veya içeriğini içerebilir. Gizlilik endişeleri nedeniyle tüm alıcılar bunları göndermez:
- Kimlik doğrulama hatası ayrıntıları
Rapor işleme
Toplu DMARC raporları XML biçimindedir ve okunmaları zor olabilir. Şu tür hizmetleri kullanın:
- DMARC Analyzer
- Dmarcian
- Valimail
- Postmark DMARC
DMARC'ı kontrol etme
Kimliği doğrulanmış DomScan E-posta Kimlik Doğrulama API'si, alan adı başına 3 krediye mal olur ve DMARC kaydını ve ayrıştırılmış etiketleri döndürür.
dig _dmarc.example.com TXT
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/email-auth?domain=example.com"
# Check dmarc.record and dmarc.tags in the JSON response
Yaygın DMARC sorunları
Rapor alınmıyor: rua adresinin büyük e-postaları alabileceğinden emin olun; bazı sağlayıcılar bunları filtreler. Meşru e-postalar başarısız oluyor: Tüm gönderim hizmetlerinin SPF/DKIM yapılandırmasını kontrol edin; hizalamayı doğrulayın. Üçüncü taraf hizmetler başarısız oluyor: Birçok hizmet, DMARC hizalaması için özel DKIM yapılandırması gerektirir.DMARC, SPF ve DKIM'e hizalama denetimi, istenen işleme tercihi ve raporlama ekler. Daha katı bir işleme talep etmeden önce gönderim kaynaklarınızı ve raporlarınızı inceleyin.