Exchange Server’da Kabul Edilen Domain Ekleme

Yeni bir e-posta domain’i eklemek kulağa basit bir görev gibi görünebilir, ama Exchange ortamlarında bu işlemi yanlış yapmak, mail akışını tamamen durdurabileceği gibi güvenlik açıklarına da yol açabilir. Bu yazıda, Exchange Server’da kabul edilen domain (Accepted Domain) kavramını derinlemesiyle ele alacağız ve gerçek senaryolar üzerinden nasıl doğru yapılandırılacağını adım adım göstereceğiz.

Kabul Edilen Domain Nedir?

Exchange Server, kendisine gelen e-postaları kabul etmeden önce hedef domain adresinin kendi sorumluluğunda olup olmadığını kontrol eder. İşte bu sorumluluğu tanımlayan yapıya Accepted Domain yani “Kabul Edilen Domain” diyoruz.

Bir e-posta [email protected] adresine geldiğinde Exchange şunu sorar: “Bu domain benim mi?” Eğer sirket.com Accepted Domain listesinde yoksa Exchange bu maili reddeder ya da relay girişimi olarak değerlendirir. Bu yüzden yeni bir domain eklemeden önce tam olarak ne yapmak istediğinizi bilmeniz gerekiyor.

Exchange üç farklı tipte Accepted Domain destekler:

  • Authoritative Domain: Bu domain için tüm posta kutularının sizin sunucunuzda olduğunu belirtir. Eğer gelen mail için lokal bir kullanıcı bulunamazsa mail reddedilir. Şirket içi standart kullanım senaryosu bu tiptir.
  • Internal Relay Domain: Domain’in bir kısmı sizde, bir kısmı başka bir mail sistemindedir. Lokal kullanıcı bulunamazsa mail başka bir sisteme yönlendirilir. Hibrit geçiş dönemlerinde sıkça kullanılır.
  • External Relay Domain: Posta tamamen başka bir sisteme iletilir. Exchange burada sadece bir köprü görevi görür.

GUI ile Kabul Edilen Domain Ekleme

Exchange Admin Center (EAC) üzerinden domain eklemek, özellikle tek seferlik işlemler için oldukça pratiktir.

Exchange 2016/2019 için adımlar:

  • Tarayıcınızdan EAC’ye bağlanın: https://mailserver/ecp
  • Sol menüden Mail flow seçeneğine tıklayın
  • Accepted domains sekmesine geçin
  • Sağ üstteki + (artı) ikonuna tıklayın
  • Açılan pencerede domain adını, tip bilgisini girin ve kaydedin

Bu kadar basit görünse de burada dikkat edilmesi gereken ince bir nokta var: Domain’i ekledikten hemen sonra mail akışı başlamaz. E-posta politikalarını (Email Address Policy) güncellemeniz ve DNS kayıtlarınızın doğru yapılandırılmış olması gerekir.

PowerShell ile Kabul Edilen Domain Ekleme

Deneyimli sysadminlerin büyük çoğunluğu bu işlemi PowerShell üzerinden yapar. Hem daha hızlıdır, hem de otomasyon senaryolarına entegre edilebilir. Ben şahsen 10’dan fazla domain yönetilen ortamlarda GUI’ye hiç el sürmem.

Exchange Management Shell’i açın ve şu komutu çalıştırın:

New-AcceptedDomain -Name "Yeni Sirket Domain" -DomainName "yenisirket.com" -DomainType Authoritative

Internal Relay tipinde bir domain eklemek istiyorsanız:

New-AcceptedDomain -Name "Hibrit Domain" -DomainName "eskisistem.com" -DomainType InternalRelay

External Relay için:

New-AcceptedDomain -Name "Dis Relay Domain" -DomainName "partner.com" -DomainType ExternalRelay

Mevcut Accepted Domain’leri listelemek için:

Get-AcceptedDomain | Select-Object Name, DomainName, DomainType, Default

Bu komutun çıktısında hangi domain’in varsayılan (Default) domain olduğunu da görebilirsiniz. Varsayılan domain, yeni kullanıcı oluşturulduğunda otomatik olarak atanan domain’dir ve bunu değiştirirken dikkatli olmanız gerekir.

Wildcard Domain Ekleme

Bazı senaryolarda bir ana domain’in tüm alt domain’lerini de kabul etmeniz gerekebilir. Örneğin bolge1.sirket.com, bolge2.sirket.com gibi onlarca alt domain varsa her birini tek tek eklemek yerine wildcard kullanabilirsiniz.

New-AcceptedDomain -Name "Sirket Alt Domainleri" -DomainName "*.sirket.com" -DomainType Authoritative

Ancak burada önemli bir uyarı: Wildcard domain kullanımında dikkatli olun. Bu yapılandırma, *.sirket.com kalıbına uyan tüm subdomainlerden gelen mailleri kabul eder. Eğer DNS’te bu subdomainler için MX kaydı yoksa sorun yaşamazsınız, ama genel bir güvenlik pratiği olarak wildcard kullanımını minimize etmeye çalışın.

Var Olan Domain’i Düzenleme

Diyelim ki bir domain’i yanlışlıkla InternalRelay olarak eklediniz ve Authoritative yapmanız gerekiyor. Set-AcceptedDomain komutu tam size göre:

Set-AcceptedDomain -Identity "yenisirket.com" -DomainType Authoritative

Domain ismini değiştirmek isterseniz (buradaki “isim” Exchange’in görüntülediği etiket, domain adı değil):

Set-AcceptedDomain -Identity "Yeni Sirket Domain" -Name "Sirket Ana Domain"

Bir domain’i varsayılan olarak ayarlamak için:

Set-AcceptedDomain -Identity "sirket.com" -MakeDefault $true

Bu komuttan sonra eski varsayılan domain otomatik olarak varsayılan statüsünü kaybeder. Bu değişiklik, yeni oluşturulacak kullanıcıları etkiler; mevcut kullanıcıların e-posta adresleri değişmez.

Email Address Policy ile Entegrasyon

Domain’i Exchange’e eklemek yeterli değil. Kullanıcılarınızın bu yeni domain üzerinden e-posta gönderebilmesi için Email Address Policy’yi güncellemeniz gerekiyor. Pek çok sysadmin bu adımı atlıyor ve sonra “domain ekledim ama kullanıcılara neden atanmıyor?” diye soruyor.

Mevcut politikaları kontrol edin:

Get-EmailAddressPolicy | Select-Object Name, EnabledEmailAddressTemplates, Priority

Yeni bir politika oluşturmak yerine mevcut politikayı güncelleyebilirsiniz. Örneğin tüm kullanıcılara yeni domain’i ikincil adres olarak eklemek için:

Set-EmailAddressPolicy -Identity "Default Policy" -EnabledEmailAddressTemplates "SMTP:%[email protected]","smtp:%[email protected]"

Burada büyük harfli SMTP: birincil (primary) adresi, küçük harfli smtp: ise ikincil adresi temsil eder.

Politikayı güncelledikten sonra değişiklikleri mevcut alıcılara uygulamak için:

Update-EmailAddressPolicy -Identity "Default Policy"

Bu komut tüm alıcıları tarar ve politikaya uygun e-posta adreslerini günceller. Büyük ortamlarda bu işlem biraz zaman alabilir, sabırlı olun.

Gerçek Dünya Senaryosu: Şirket Birleşmesi

Geçen yıl bir holding yapısında çalışırken şöyle bir durumla karşılaştım: İki şirket birleşiyordu ve yeni kurulan şirketin kendi domain’i vardı. Eski çalışanlar hem eski hem yeni domain üzerinden mail alabilmeliydi. Bu klasik bir “geçiş dönemi” senaryosudur.

Önce yeni domain’i Authoritative olarak ekledik:

New-AcceptedDomain -Name "Yeni Holding Maili" -DomainName "holding.com.tr" -DomainType Authoritative

Eski domain zaten sistemde vardı. Sonra Email Address Policy’yi her iki domain’i kapsayacak şekilde güncelledik:

Set-EmailAddressPolicy -Identity "Default Policy" -EnabledEmailAddressTemplates "SMTP:%[email protected]","smtp:%[email protected]"

Eski domain’den gelen maillerin hala kabul edilmesi için eski domain Accepted Domain listesinde kalmaya devam etti. Böylece kimsenin önemli bir maili kaçırması engellendi. 6 ay sonra geçiş tamamlandığında eski domain’i Accepted Domain listesinden kaldırdık.

Domain Silme İşlemi

Artık kullanılmayan bir domain’i listeden kaldırmak için Remove-AcceptedDomain komutunu kullanırız:

Remove-AcceptedDomain -Identity "eskisirket.com"

Bu komutu çalıştırmadan önce şunları kontrol etmenizi şiddetle tavsiye ederim:

  • Bu domain üzerinde aktif posta kutusu var mı?
  • Bu domain’e gelen aktif mail akışı var mı?
  • Send Connector ya da Receive Connector’larda bu domain referans alınıyor mu?

Silmeden önce o domain’e ait e-posta adresi olan kullanıcıları listeleyebilirsiniz:

Get-Mailbox | Where-Object {$_.EmailAddresses -like "*@eskisirket.com"} | Select-Object DisplayName, EmailAddresses

Eğer bu sorgu sonuç döndürüyorsa önce ilgili kullanıcıların e-posta adreslerini güncelleyin, ardından domain’i silin. Sırayı karıştırırsanız kullanıcıların proxy adresleri kafası karışık bir hale gelebilir.

Hibrit Ortamlarda Dikkat Edilmesi Gerekenler

Exchange Online ile hibrit yapı kurduysanız, Accepted Domain yönetimi biraz daha karmaşık bir hal alır. Microsoft 365 tarafında da aynı domain’in “Verified Domain” olarak eklenmiş olması gerekir.

Exchange on-premises tarafında yaptığınız Accepted Domain değişikliklerini Azure AD Connect otomatik olarak Microsoft 365’e senkronize etmez. Bu iki platform ayrı ayrı yönetilir. Bu yüzden hibrit ortamlarda her değişikliği iki tarafta da doğrulamanız gerekiyor.

Hibrit yapıda domain ekleme sonrasında mail akışını test etmek için:

Test-Mailflow -TargetEmailAddress "[email protected]"

Bu komut, Exchange’in belirtilen adrese başarılı şekilde mail gönderip gönderemediğini test eder ve detaylı sonuç döndürür.

DNS Yapılandırması ve Doğrulama

Domain eklemek tek başına yeterli değil; DNS tarafının da doğru yapılandırılmış olması şart. Yeni domain için en azından şu kayıtların mevcut olması gerekiyor:

  • MX kaydı: yenidomain.com MX 10 mail.sirket.com – Gelen mailleri Exchange sunucunuza yönlendirir
  • SPF kaydı: yenidomain.com TXT "v=spf1 ip4:X.X.X.X include:sirket.com -all" – Giden maillerin spoof edilmesini önler
  • Autodiscover CNAME: autodiscover.yenidomain.com CNAME autodiscover.sirket.com – Outlook istemcilerinin otomatik yapılandırması için

DNS değişikliklerinin dünya genelinde yayılması 24-48 saat sürebilir. Bu süre içinde mail akışında aksaklıklar yaşanabilir, bunu önceden kullanıcılara bildirin.

DNS yayılımını kontrol etmek için Exchange Management Shell’den:

Resolve-DnsName -Name "yenidomain.com" -Type MX

Sorun Giderme

En sık karşılaşılan sorunlardan biri, domain eklenmiş olmasına rağmen gelen maillerin reddedilmesidir. Bu durumda önce Accepted Domain listesini kontrol edin:

Get-AcceptedDomain | Where-Object {$_.DomainName -like "*yenidomain*"}

Eğer domain listede varsa ve hala sorun yaşıyorsanız, Receive Connector yapılandırmasını kontrol edin. Özellikle custom Receive Connector oluşturduysa bazı sysadminler domain kısıtlaması yapıyor olabilir.

Mail akışı loglarını incelemek için:

Get-MessageTrackingLog -EventId RECEIVE -Start (Get-Date).AddHours(-1) -Sender "[email protected]" -Recipients "[email protected]"

Bu komut son 1 saat içinde belirtilen göndericiden belirtilen alıcıya gelen maillerin izini sürer. Sonuç boşsa mail hiç gelmemiş demektir ve sorun DNS/MX kayıtlarındadır. Sonuç varsa ama mail ulaşmadıysa Exchange içinde bir yönlendirme sorunu var demektir.

Bir diğer yaygın sorun da yeni domain’e sahip kullanıcıların dış dünyaya bu domain’den mail gönderememesidir. Bu durumda Send Connector yapılandırmasını inceleyin:

Get-SendConnector | Select-Object Name, AddressSpaces, SourceTransportServers

Send Connector’ınızın * (tüm domain’ler) için yapılandırılmış olduğundan emin olun. Belirli domain’lere kısıtlıysa yeni domain’i de oraya eklemeniz gerekir.

Toplu Domain Ekleme – Otomasyon Senaryosu

Büyük ölçekli ortamlarda, özellikle hosting şirketlerinde veya çok şubeli yapılarda onlarca domain’i tek tek eklemek yerine bir CSV dosyasından toplu olarak ekleyebilirsiniz.

Örnek CSV içeriği (domains.csv):

Name,DomainName,DomainType
"Sube Istanbul","istanbul.sirket.com","Authoritative"
"Sube Ankara","ankara.sirket.com","Authoritative"
"Eski Partner","partner.com","InternalRelay"

Bu CSV’yi okuyup toplu domain ekleme scripti:

$domains = Import-Csv -Path "C:Scriptsdomains.csv"
foreach ($domain in $domains) {
    $existing = Get-AcceptedDomain | Where-Object {$_.DomainName -eq $domain.DomainName}
    if ($null -eq $existing) {
        New-AcceptedDomain -Name $domain.Name -DomainName $domain.DomainName -DomainType $domain.DomainType
        Write-Host "Eklendi: $($domain.DomainName)" -ForegroundColor Green
    } else {
        Write-Host "Zaten mevcut: $($domain.DomainName)" -ForegroundColor Yellow
    }
}

Bu script, önce domain’in zaten eklenip eklenmediğini kontrol eder. Böylece aynı scripti birden fazla kez çalıştırsanız da hata almaz ve mevcut kayıtlar bozulmaz. Idempotent bir yaklaşım, otomasyon scriptlerinde her zaman tercih edilmesi gereken bir özelliktir.

Exchange Online (Microsoft 365) ile Karşılaştırma

Bu aşamada bir not düşmek istiyorum: Eğer Exchange Online kullanıyorsanız, Accepted Domain yönetimi Microsoft 365 Admin Center veya Exchange Online PowerShell üzerinden yapılır ve süreç biraz farklıdır. Microsoft 365’te önce domain doğrulaması yapmanız (DNS TXT kaydı aracılığıyla) sonrasında Exchange Online’a eklemeniz gerekir. On-premises Exchange’deki doğrudan ekleme mantığı burada geçerli değildir.

Sonuç

Exchange Server’da Accepted Domain yönetimi, göründüğünden biraz daha fazla katman içeren bir yapılandırma sürecidir. Domain’i eklemek sadece başlangıç; DNS kayıtları, Email Address Policy güncellemesi, Send/Receive Connector kontrolü ve kullanıcı adreslerinin güncellenmesi bu sürecin ayrılmaz parçalarıdır.

Özellikle şu üç noktayı aklınızda tutun: Domain tipini doğru seçin çünkü Authoritative ile InternalRelay arasındaki fark, yanlış teslim edilen ya da tamamen kaybolan mailler anlamına gelebilir. DNS değişikliklerini önceden yapın ve yayılımı bekleyin. Email Address Policy’yi güncellemeyi unutmayın çünkü domain eklemek kullanıcılara otomatik olarak yeni adres atanacağı anlamına gelmez.

PowerShell’i merkeze alan bir yönetim alışkanlığı edinin. GUI işlemleri hız kazandırıyor gibi görünse de uzun vadede scripte dökülebilir, tekrarlanabilir ve denetlenebilir bir süreç çok daha değerlidir. Bu yazıdaki komutları bir şablon olarak saklayın, ihtiyaç duyduğunuzda güvenle kullanın.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir