MTA-STS Nedir? E-posta Trafiğinde TLS Zorunluluğu
MTA-STS (SMTP MTA Strict Transport Security), bir alan adının kendisine gelen e-postaların yalnızca şifreli ve sertifikası doğrulanmış bağlantılarla teslim edilmesini talep etmesini sağlayan standarttır. Alan adı sahibi, HTTPS üzerinden yayımladığı bir politika dosyası ve _mta-sts TXT kaydıyla hangi MX sunucularının geçerli olduğunu ve TLS'in zorunlu olup olmadığını duyurur. RFC 8461 ile tanımlanan MTA-STS, özellikle STARTTLS düşürme saldırılarına karşı koruma sağlar.
STARTTLS neden tek başına yetmez?
SMTP başlangıçta şifresiz tasarlanmıştır. Sunucular arası şifreleme, RFC 3207 ile tanımlanan STARTTLS komutuyla isteğe bağlı olarak eklenir: Alıcı sunucu EHLO yanıtında STARTTLS desteğini ilan eder, gönderen de bağlantıyı TLS'e yükseltir. Bu fırsatçı yaklaşımın üç zayıf noktası vardır:
- Düşürme (downgrade) saldırısı: Araya giren bir saldırgan EHLO yanıtındaki STARTTLS satırını silerse gönderen sunucu iletiyi şifresiz gönderir.
- Doğrulanmayan sertifika: Fırsatçı TLS'te gönderenler çoğu zaman alıcının sertifikasını doğrulamaz ve sahte sertifikalı bir sunucuya da bağlanabilir.
- MX yanıltması: DNS yanıtları sahteleştirilirse posta, saldırganın kontrol ettiği bir sunucuya yönlenebilir.
MTA-STS, gönderen sunucuya "bu alan adına yalnızca şu MX sunucularına, geçerli sertifikayla ve TLS üzerinden teslim et" talimatını güvenli bir kanaldan iletir. Konunun genel çerçevesi için e-posta şifreleme ve TLS yazımıza bakabilirsiniz.
MTA-STS nasıl çalışır?
- Gönderen sunucu, alıcı alan adının
_mta-stsTXT kaydını sorgular. - Kayıt varsa politika dosyasını
https://mta-sts.example.com.tr/.well-known/mta-sts.txtadresinden HTTPS ile indirir; bu web sunucusunun sertifikası geçerli olmalıdır. - Politikayı
max_agesüresince önbelleğe alır. - Teslimat sırasında MX sunucusunun adının politikadaki
mxsatırlarından biriyle eşleştiğini ve sunucunun geçerli, adla uyumlu bir sertifika sunduğunu doğrular. - Politika
enforcemodundaysa ve doğrulama başarısız olursa iletiyi o sunucuya teslim etmez; iletiyi kuyrukta tutar ve sorun sürerse sonunda geri döndürür.
Önbellekleme kritik bir ayrıntıdır: Saldırgan sonradan DNS yanıtlarını engellese bile gönderen sunucu, süresi dolmamış politikayı uygulamaya devam eder.
MTA-STS kurulumu adım adım
Kurulum dört bölümden oluşur ve her biri ayrı bir kontrol gerektirir.
MX sunucularını hazırlayın
Tüm MX sunucularınız STARTTLS desteklemeli ve MX kaydındaki adla eşleşen, güvenilir bir sertifika otoritesinden alınmış geçerli bir sertifika sunmalıdır. Kendinden imzalı sertifikalar MTA-STS ile çalışmaz. MX kayıtlarınızın doğru olduğundan emin olmak için MX kaydı rehberimize göz atabilirsiniz.
Politika dosyasını yayımlayın
mta-sts.example.com.tr adında, geçerli HTTPS sertifikasına sahip bir web adresi oluşturun ve aşağıdaki içeriği /.well-known/mta-sts.txt yolunda düz metin olarak yayımlayın:
version: STSv1
mode: testing
mx: mx1.example.com.tr
mx: mx2.example.com.tr
max_age: 86400
mx satırları *.example.com.tr gibi en soldaki etikette joker karakter içerebilir. max_age saniye cinsindendir ve en fazla 31557600 (yaklaşık bir yıl) olabilir. Gönderenler HTTP yönlendirmelerini izlemediği için dosya doğrudan bu adreste sunulmalıdır.
Politika dosyası için ayrı bir uygulama sunucusu gerekmez; statik dosya sunabilen herhangi bir web sunucusu yeterlidir. Önemli olan, mta-sts.example.com.tr adının bu ada uygun, geçerli bir sertifikayla yanıt vermesi ve dosyanın düz metin olarak sunulmasıdır. İsterseniz bu adı, politika barındırma hizmeti sunan bir sağlayıcıya CNAME kaydıyla da yönlendirebilirsiniz.
MTA-STS TXT kaydını ekleyin
_mta-sts.example.com.tr. 3600 IN TXT "v=STSv1; id=2026101101"
id değeri 1 ile 32 karakter arasında harf ve rakamlardan oluşur. Politika dosyasını her değiştirdiğinizde bu değeri de değiştirmelisiniz; gönderenler yeni politikayı indirmeleri gerektiğini buradan anlar.
TLS-RPT raporlamasını açın
_smtp._tls.example.com.tr. 3600 IN TXT "v=TLSRPTv1; rua=mailto:[email protected]"
Bu kayıt, gönderen sunucuların TLS bağlantı sonuçlarını günlük raporlar halinde size iletmesini sağlar.
Testing ve enforce modları arasındaki fark nedir?
| Mod | Gönderenin davranışı | Ne zaman kullanılır? |
|---|---|---|
none | Politika uygulanmaz | Politikayı kaldırırken |
testing | Doğrulama başarısız olsa da iletiyi teslim eder, sorunu TLS-RPT ile raporlar | İlk kurulumda, birkaç hafta boyunca |
enforce | Doğrulama başarısızsa iletiyi teslim etmez | Raporlar temiz olduğunda |
Güvenli bir geçiş için şu sırayı izleyebilirsiniz:
- TLS-RPT kaydını ilk iş olarak yayımlayın; böylece politika devreye girmeden önce bile bazı gönderenlerden TLS bağlantı sonuçları almaya başlayabilirsiniz.
- Politikayı
testingmodunda ve bir gün gibi kısa birmax_agedeğeriyle yayımlayın. - İki ila dört hafta boyunca raporları izleyin; görülen hataları sertifika veya MX düzeltmeleriyle giderin.
- Politikayı
enforcemoduna alın ve TXT kaydındakiiddeğerini değiştirin. - Birkaç hafta sorunsuz geçtikten sonra
max_agedeğerini artırın; RFC 8461 de bu değerin tipik olarak haftalar veya daha uzun süreler mertebesinde olmasını bekler.
Bu kademeli yaklaşım, DMARC politikasını none değerinden reject değerine taşırken izlenen mantığa benzer.
TLS-RPT raporları ne anlatır?
RFC 8460 ile tanımlanan TLS-RPT raporları JSON biçimindedir ve her politika için başarılı ve başarısız oturum sayılarını içerir. Kısaltılmış bir örnek:
{
"organization-name": "Örnek Posta Sağlayıcı",
"date-range": {
"start-datetime": "2026-10-10T00:00:00Z",
"end-datetime": "2026-10-10T23:59:59Z"
},
"policies": [{
"policy": { "policy-type": "sts", "policy-domain": "example.com.tr" },
"summary": {
"total-successful-session-count": 512,
"total-failure-session-count": 3
},
"failure-details": [{
"result-type": "certificate-expired",
"receiving-mx-hostname": "mx2.example.com.tr",
"failed-session-count": 3
}]
}]
}
Raporlarda sık karşılaşılan hata türleri şunlardır:
certificate-expired: MX sunucusunun sertifikasının süresi dolmuş.certificate-host-mismatch: Sertifikadaki ad, MX sunucusunun adıyla eşleşmiyor.starttls-not-supported: MX sunucusu STARTTLS sunmuyor.sts-policy-fetch-error: Politika dosyası indirilemedi.validation-failure: Genel bir doğrulama hatası oluştu.
MTA-STS ile DANE arasındaki fark nedir?
| Özellik | MTA-STS | DANE (RFC 7672) |
|---|---|---|
| Güven kaynağı | Web PKI (HTTPS sertifikaları) | DNSSEC ile imzalı TLSA kayıtları |
| DNSSEC gereksinimi | Yok | Zorunlu |
| İlk bağlantı koruması | Politika ilk kez indirilene kadar sınırlı | DNSSEC sayesinde ilk bağlantıdan itibaren |
| Kurulum bileşenleri | Web sunucusu, TXT kaydı ve politika dosyası | DNSSEC ve TLSA kayıtları |
İki yöntem birbirini dışlamaz ve birlikte kullanılabilir. DNS sağlayıcısı DNSSEC desteklemeyen kuruluşlar için MTA-STS daha kolay uygulanabilir bir başlangıçtır.
MTA-STS neyi korumaz?
MTA-STS yalnızca sunucular arasındaki aktarımı korur; iletinin posta kutusunda nasıl saklandığına veya uçtan uca şifrelenip şifrelenmediğine karışmaz. Ayrıca politika ilk kez indirilene kadar koruma sınırlıdır: Gönderen sunucu alan adınızla ilk kez karşılaşıyorsa ve o anda bir saldırgan DNS yanıtlarını engelliyorsa politika hiç öğrenilmeyebilir. Bu nedenle MTA-STS'yi, iletinin içeriğini koruyan uçtan uca şifrelemenin yerine değil, aktarım güvenliğinin bir parçası olarak düşünün.
Sık yapılan hatalar
- Politika dosyasını değiştirip TXT kaydındaki
iddeğerini güncellememek. mxsatırlarına MX kayıtlarında kullanılmayan adlar yazmak ya da bir sunucuyu listeye eklemeyi unutmak.mta-stsalt alan adındaki HTTPS sertifikasının yenilenme tarihini takip etmemek.- Doğrudan
enforcemodu ve uzun birmax_ageile başlamak. - MX sunucularında süresi dolmuş ya da adla eşleşmeyen sertifika kullanmak.
MX kayıtlarınız MXZilla gibi bir filtreleme ağ geçidini gösteriyorsa, politika dosyasındaki mx satırlarının ağ geçidinin sunucu adlarını içermesi gerekir. Ağ geçidine geçerken MX kayıtlarıyla birlikte politika dosyasını ve id değerini de aynı planın parçası olarak güncelleyin.
MTA-STS'yi kurmadan önce MX, SPF, DKIM ve DMARC kayıtlarınızın sağlam olduğundan emin olun; ücretsiz güvenlik kontrolü bu kayıtları hızlıca denetler. Gelen posta trafiğinizi filtreleyen bir ağ geçidi arıyorsanız paketlerimizi inceleyebilirsiniz.
Sık sorulan sorular
MTA-STS gelen e-postayı mı giden e-postayı mı korur?
MTA-STS, politikayı yayımlayan alan adına gelen e-postaları korur. Politika, size posta gönderen sunuculara nasıl bağlanmaları gerektiğini söyler. Kendi giden postanızın korunması ise sizin gönderen sunucunuzun karşı tarafın MTA-STS politikasını desteklemesine bağlıdır.
MTA-STS için DNSSEC gerekir mi?
Gerekmez. MTA-STS güvenini HTTPS sertifikalarından alır ve politika dosyası geçerli bir sertifikayla sunulan bir web adresinden indirilir. DNSSEC gerektiren yöntem DANE'dir ve iki yöntem birlikte de kullanılabilir.
MTA-STS politikası değişince ne yapmalıyım?
Politika dosyasını güncelledikten sonra _mta-sts TXT kaydındaki id değerini mutlaka değiştirin, çünkü gönderen sunucular yeni politikayı ancak bu değişikliği fark ettiklerinde indirir. Politikayı tamamen kaldırmak istiyorsanız önce mode: none içeren bir politika yayımlayıp eski önbelleklerin süresinin dolmasını bekleyin.
TLS-RPT olmadan MTA-STS kullanılabilir mi?
Kullanılabilir, ancak önerilmez. TLS-RPT olmadan testing modundaki sorunları göremez ve enforce moduna geçtiğinizde teslim edilemeyen iletilerden habersiz kalabilirsiniz. Raporlama tek bir TXT kaydıyla açıldığı için eklemesi zahmetsizdir.
Hangi sağlayıcılar MTA-STS'yi destekler?
Gmail ve Microsoft 365 gibi büyük posta sağlayıcıları, e-posta gönderirken alıcı alan adının MTA-STS politikasını dikkate alır; Microsoft, Exchange Online'da bu doğrulamanın varsayılan olarak açık olduğunu belgelerinde belirtir. Postfix gibi açık kaynak sunucularda ise destek ek bileşenlerle sağlanabilir. Destek kapsamı zamanla değiştiği için kullandığınız sağlayıcının güncel belgelerini kontrol etmek en doğrusudur.