MTA-STS Nedir, Nasıl Kurulur? TLS-RPT ile Adım Adım
MTA-STS nedir, alan adınıza gelen e-postada TLS'i nasıl zorunlu kılar? TXT kaydı, politika dosyası, TLS-RPT raporları ve testing'den enforce'a geçiş sırası.
Yayınlanma: · 7 dk okuma
MTA-STS (RFC 8461), bir alan adının gönderen posta sunucularına şunu söylemesini sağlar: "Bana gelen postayı yalnızca TLS üzerinden, yalnızca geçerli bir sertifikayla ve yalnızca şu MX sunucularına teslim et." Bu olmadan posta sunucuları arasındaki şifreleme fırsatçıdır (opportunistic) ve yol üzerindeki herhangi biri tarafından devre dışı bırakılabilir. Kurulum bir TXT kaydı, HTTPS üzerinden sunulan küçük bir metin dosyası ve tercihen ikinci bir TXT kaydından (TLS-RPT, RFC 8460) oluşur; bu ikincisi, gönderenlerin ne yaşadığını gösteren günlük raporları size ulaştırır. Postanız büyük bir sağlayıcıda barınıyorsa maliyeti bir öğleden sonradır; e-postayla hassas içerik alıyorsanız buna değer.
Sorun: STARTTLS fırsatçıdır
Sunucular arası SMTP düz metin olarak başlar. Alıcı sunucu STARTTLS desteğini duyurur, gönderen bağlantıyı yükseltir, gerisi şifreli akar. Tasarımda iki zayıflık vardır:
- Düşürme (downgrade). Yol üzerindeki bir saldırgan, sunucunun yanıtından
STARTTLSsatırını silebilir. Gönderen TLS sunulmadığı sonucuna varır ve postayı açık metin olarak teslim eder. - Kimlik doğrulama yok. Gönderenler kendilerine gösterilen sertifikayı genellikle doğrulamaz; çünkü posta sunucularının önemli bir kısmı yıllarca kendinden imzalı ya da adı uyuşmayan sertifikalarla çalıştı. MX sorgunuzun yanıtını taklit edebilen ya da bağlantının arasına girebilen saldırgan, dilediği sertifikayı sunabilir.
MTA-STS, destekleyen gönderenler için ikisini de kapatır.
Üç parça
1. _mta-sts TXT kaydı
$ dig +short TXT _mta-sts.example.com
"v=STSv1; id=20260921000000"
id, en fazla 32 harf ve rakamdan oluşan herhangi bir dizgidir. Tek görevi, politika her değiştiğinde değişmektir; gönderenler dosyayı yeniden çekmeleri gerektiğini buradan anlar. Zaman damgası kullanmak yaygındır.
2. Politika dosyası
Sabit mta-sts ana bilgisayar adı üzerinde, sabit bir adreste sunulur:
$ curl https://mta-sts.example.com/.well-known/mta-sts.txt
version: STSv1
mode: testing
mx: mx1.mail.example.net
mx: mx2.mail.example.net
max_age: 86400
| Alan | Anlamı |
|---|---|
version |
Her zaman STSv1 |
mode |
enforce, testing ya da none |
mx |
İzin verilen her MX sunucusu için bir satır. *.mail.example.net gibi joker kullanılabilir; yalnızca en soldaki tek etiketi karşılar |
max_age |
Gönderenlerin politikayı önbellekte tutabileceği süre, saniye cinsinden. Üst sınır 31557600 (yaklaşık bir yıl) |
HTTPS sunucusu, mta-sts.example.com için geçerli ve genel olarak güvenilen bir sertifika sunmalıdır. Gönderenler politikayı çekerken HTTP yönlendirmelerini izlemez; dosya tam olarak bu adreste durmalıdır. Özel alan adı ve sertifika tanımlamaya izin veren herhangi bir statik barındırma yeterlidir.
3. Denetimden geçen MX sunucuları
Listelenen her sunucu STARTTLS sunmalı; sertifikası süresi dolmamış, gönderenin güvendiği bir sertifika otoritesine zincirlenen ve MX sunucu adıyla eşleşen bir sertifika olmalıdır. Kendinden imzalı ya da başka bir ada düzenlenmiş sertifika denetimden kalır.
$ openssl s_client -starttls smtp -connect mail.example.com:25 \
-servername mail.example.com </dev/null 2>/dev/null \
| openssl x509 -noout -subject -enddate -ext subjectAltName
Kendi MX sunucunuzun sertifikasının süresi dolmuşsa önce onu çözün: yenileme tarafı SSL sertifikası süresi doldu: ne yapmalı yazısında.
Gönderen sunucu politikayı nasıl kullanır
example.comadresine teslimden önce_mta-sts.example.comkaydına bakar.- Önbelleğinde politika yoksa ya da
idönbellektekinden farklıysa politika dosyasını HTTPS ile çeker. - Politikayı
max_agesaniye boyunca önbellekte tutar. - MX kayıtlarını her zamanki gibi çözümler, hiçbir
mx:satırıyla eşleşmeyen sunucuları eler ve kalanlarda geçerli TLS arar.
Başarısızlıkta ne olacağı moda bağlıdır:
| Mod | TLS ya da MX uyuşmazlığında |
|---|---|
testing |
İleti yine de teslim edilir; başarısızlık TLS-RPT ile raporlanır |
enforce |
Gönderen, denetimden kalan sunucuya teslim etmez. Hiçbir sunucu geçmezse ileti kuyrukta bekletilip yeniden denenir, sonunda geri döner |
none |
Alan adı etkin bir politikası olmadığını bildirir. Geri çekmek için kullanılır |
MTA-STS'e gücünü veren önbellektir. TXT sorgusunu ya da HTTPS isteğini bugün engelleyen saldırgan, gönderene geçen hafta önbelleğe aldığı politikayı unutturamaz. Zayıf an, henüz hiçbir şeyin önbellekte olmadığı ilk çekimdir.
TLS-RPT: gönderenlerin ne gördüğünü öğrenin
$ dig +short TXT _smtp._tls.example.com
"v=TLSRPTv1; rua=mailto:tlsrpt@example.com"
rua alanı bir mailto: adresi ya da https: adresi alır. Destekleyen gönderenler günde bir toplu JSON raporu yollar: alan adınıza kaç oturum başarıyla kuruldu, kaçı başarısız oldu ve neden (süresi dolmuş sertifika, ad uyuşmazlığı, STARTTLS sunulmaması, politikada olmayan MX). Raporlar hem MTA-STS'i hem DANE'i kapsar. Onlar olmadan testing modu hiçbir şeyi test etmez; çünkü sonucu size kimse bildirmez.
MTA-STS kurulumu: geçiş sırası
- Her MX sunucusunda geçerli, adı eşleşen, genel olarak güvenilen bir sertifika olduğunu doğrulayın (yukarıdaki komut).
- Önce TLS-RPT kaydını yayınlayın, raporlar gelmeye başlasın.
- Politika dosyasını
mode: testingve86400gibi kısa birmax_ageile yayına alın. -
_mta-stsTXT kaydını ekleyin. - Birkaç hafta rapor okuyun. Meşru gönderenlerden gelen başarısızlıklara ve politikada eksik kalan MX sunucularına bakın.
-
mode: enforceyapın,iddeğerini değiştirin, ilk günlerdemax_agekısa kalsın. - Ortalık sakinleşince
max_agedeğerini haftalar düzeyine çıkarın. -
mta-stssertifikasını ve MX sertifikalarını bitiş tarihi izlemesine alın.
Bir alan adının yayınladığı _mta-sts kaydına ve politikasına MTA-STS sorgulama ile, raporlama kaydına TLS-RPT sorgulama ile bakabilirsiniz.
Barındırılan e-posta
MX kayıtlarınız bir e-posta sağlayıcısını gösteriyorsa sertifikalar sağlayıcının işidir ve büyük sağlayıcılarda düzgündür. Size kalan:
- Sağlayıcının MX adlarını politikaya MX kayıtlarınızda göründüğü biçimiyle, birebir yazmak ya da sağlayıcının belgelediği joker biçimini kullanmak.
- Politika dosyasını
mta-sts.example.comüzerinde kendiniz barındırmak. Sağlayıcı postanızı işletir, bu ana bilgisayar adını değil. Statik sayfa barındırma yeter.
E-posta sağlayıcısı değiştirirken
enforce modundaysanız sıra önemlidir. Gönderenlerin önbelleğinde yalnızca eski MX sunucularını sayan bir politika durur. Önce MX kayıtlarını değiştirirseniz bu gönderenler politikanın izin vermediği yeni sunucular görür ve teslim etmez.
- Yeni sağlayıcının MX adlarını politika dosyasına ekleyin (eskileri silmeyin) ve
iddeğerini değiştirin. - Gönderenlerin yeni
iddeğerini fark edip politikayı yeniden çekmesi için zaman tanıyın; birkaç gün temkinli bir paydır. - MX kayıtlarını değiştirin.
- Sonrasında eski adları politikadan çıkarın ve
iddeğerini yeniden değiştirin.
Bu, DNS TTL değerleri söz konusu olduğunda bıraktığınız geçiş payının posta tarafındaki karşılığıdır; ilk günden bir yıllık max_age vermemenin nedeni de budur.
Politikayı geri çekmek
TXT kaydını ve dosyayı silmek geri çekmek değildir. Önbelleğinde enforce politikası bulunan gönderenler, önbellek süresi dolana kadar uygulamaya devam eder. Temiz yol: yeni bir id ile mode: none yayınlayın, kaydı ve dosyayı önceki max_age süresi tümüyle dolana kadar yerinde tutun, sonra kaldırın.
MTA-STS ve DANE
SMTP için DANE (RFC 7672) aynı sorunu başka yoldan çözer: MX sunucusunun sertifikası ya da anahtarı bir TLSA kaydına sabitlenir ve zone DNSSEC ile imzalı olduğu için bu kayda güvenilir.
| MTA-STS | SMTP için DANE | |
|---|---|---|
| Güven dayanağı | Web PKI (genel sertifika otoriteleri) ve HTTPS | DNSSEC zinciri |
| DNSSEC gerekir mi | Hayır | Evet: MX sunucularının TLSA kayıtları imzalı bir zone'da olmalı |
| İlk temas zayıflığı | Var, politika önbelleğe alınana kadar | Yok |
| Ek altyapı | Bir HTTPS sunucusu | İmzalı zone, sertifika yenilemede TLSA bakımı |
İkisi birlikte çalışabilir; TLS-RPT her ikisi için rapor verir. Barındırılan e-postada DANE, sağlayıcınızın MX zone'unu imzalayıp imzalamadığına bağlıdır; MTA-STS ise sizin elinizdedir. Zone'unuzu zaten imzalamayı düşünüyorsanız önce DNSSEC nedir, nasıl açılır yazısını okuyun.
MTA-STS neyi yapmaz
- Yalnızca alan adınıza gelen postayı korur. Giden postanızı, gönderen sunucunuz MTA-STS uyguluyorsa alıcıların politikaları korur.
- Yalnızca MTA-STS uygulayan gönderenlerle çalışır. Diğerleri fırsatçı teslimata devam eder.
- Duraktan durağa taşıma şifrelemesidir, uçtan uca değil. Posta, geçtiği her sunucuda okunabilir durumdadır.
- Spam, sahtecilik ya da gönderen doğrulaması hakkında hiçbir şey söylemez. O iş SPF, DKIM ve DMARC'ındır: MX, SPF, DKIM ve DMARC.
Gerekli mi?
- Büyük bir sağlayıcıda barınan alan adı: düşük maliyet, düşük risk. Sertifikaların bakımını sağlayıcı yapar; siz iki TXT kaydı ve bir statik dosya eklersiniz.
- Hassas posta alan alan adı (sözleşme, sağlık, finans, hesap sıfırlama iletileri): MX sunucusunu kendiniz işletseniz de değer; yeter ki sertifikaları izleyin.
- Karar veremediyseniz:
testingmodu ile TLS-RPT teslimat riski taşımaz veenforcemodunun zarar verip vermeyeceğini gösterir. - Hiç posta almayan alan adı: gerek yok. Onun yerine null MX yayınlayın.
Sık yapılan hatalar
- TLS-RPT olmadan doğrudan
enforcemoduna geçip başarısızlıkları postası geri dönen kişilerden öğrenmek. - Politika dosyasını düzenleyip
iddeğerine dokunmamak. Gönderenlermax_agedolana kadar eski politikayı kullanır. mx:satırına MX sunucu adları yerine alan adını (example.com) yazmak.- Yalnızca yönlendirmeyle erişilen ya da sertifikası
mta-sts.example.comadını kapsamayan bir politika dosyası. mta-stssunucusunun sertifikasının süresini doldurmak. Yeni gönderenler politikayı çekemez; önbelleğinde olanlar süre bitene kadar sürdürür, sonra koruma sessizce sona erer.- MX kaydındaki ad için değil, sunucunun iç adı için geçerli bir MX sertifikası.
- Politikayı güncellemeden MX kayıtlarını değiştirmek.
- İlk günden bir yıllık
max_age. - "Kapatmak" için her şeyi bir anda silmek.
OrbitProbe ile kontrol edin
İşe OrbitProbe MX sorgulama ile başlayın: bir alan adının MX sunucularını öncelikleriyle, SPF ve DMARC kayıtlarıyla birlikte listeler. Gösterdiği sunucu adları, mx: satırlarınızın harfi harfine eşleşmesi gereken adlardır; bu yüzden aracı politikayı yazmadan önce ve her e-posta sağlayıcısı değişikliğinden sonra çalıştırın. DNS sorgusu o anda yayınlanmış olanı gösterir; gönderenlerin TLS'i gerçekten kurup kuramadığını TLS-RPT raporları söyler, enforce moduna geçtikten sonra da okumayı sürdürün.