Home » Exchange Server ve Exchange Online’da Dağıtım Grubu Kaosunu Engellemek: 3 Kritik OrganizationConfig Parametresi
Posted in

Exchange Server ve Exchange Online’da Dağıtım Grubu Kaosunu Engellemek: 3 Kritik OrganizationConfig Parametresi

Merhaba,

Mevcut bir altyapıyı korumak, yönetmek ve canlı tutmak; sıfırrdan yeni bir sistem kurmaktan her zaman daha zordur. Özellikle binlerce çalışanın yer aldığı kurumsal ölçekli yapılarda (Enterprise), kullanıcı self-service yetkileri kontrol altına alınmadığında Exchange mimarisi kısa sürede bir “dağıtım grubu çöplüğüne” dönüşebilier.

Sahada sıklıkla karşılaştığımız senaryo şudur: Şirket içinde self-service dağıtım grubu oluşturma yetkisi açık bırakılmiştır. Birkaç ay sonra Global Address List (GAL) içinde CEO, IK-Duyuru, Yonetim-Kurulu veya Yemekhane gibi yetkisiz, kurumsal standarda uymayan ve kimin açtığı belirsiz yüzlerce grup türetilmiştir. Üstelik bu grupların hepsi Active Driectory üzerindeki varsayılan CN=Users container’ı altına rastgele yazılmıştır.

Exchange Server ve Exchange Online tarafında bu kaosun önüne geçen, organizasyon genelinde merkezi standart sağlayan üç kritik Get-OrganizationConfig parametresi bulunur:

  • DistributionGroupDefaultOU

  • DistributionGroupNameBlockedWordsList

  • DistributionGroupNamingPolicy

Bu üç parametrenin sahadaki karşılığını, mimari avantajlarını ve kurumsal ölçekteki uygulama yöntemlerini incelemeye başlayaylım. Ama öncesinde ayarlarımız nasıl gözüküyor ona bir bakalım.

Get-OrganizationConfig | select Distribution*

komutu ile hazli hazırdaki yapılandırmanızı görebilirsiniz.

POC uygulamasını, parametreleri izah ettikten sonra toplu şekilde devreyet aldıktan sonra görebileceksiniz.

1. DistributionGroupDefaultOU: Active Directory Düzenini Korumak

Sahadan Senaryo

Sahada binlerce nesne içeren bir Active Directory yapısında en sık yapılan mimari hatalardan biri, Exchange üzerinden oluşturulan grupların varsayılan CN=Users,DC=domain,DC=local altında birikmesidir. Users kapsayıcısı (container) bir OU (Organizational Unit) olmadığı için üzerine Group Policy Object (GPO) bağlanamaz, delegasyon sınırları çizilemez ve yetkilendirme modelleri uygulanamaz.

Exchange Admin Center (EAC) veya PowerShell üzerinden hedef OU belirtilmeden açılan her grup varsayılan konuma düşer.

Sahada Nasıl Uygulanır?

Grup yönetimi ve AD delegasyonunu sorunsuz yürütmek için dağıtım gruplarını doğrudan bu işe ayrılmış özel bir OU altında toplamak gerekir.

Set-OrganizationConfig -DistributionGroupDefaultOU "OU=Distribution Groups,OU=Tier 2 End-User Groups,DC=meridian,DC=corp,DC=test"

Saha Kazanımı:

  • Sistem yöneticileri veya Helpdesk ekipleri yeni bir grup oluştururken OU seçmeyi unutsalar dahi nesne otomatik olarak belirlenen hedef OU’ya yazılır.

  • İlgili OU üzerine uygulanan AD delegasyonları (örneğin sadece Mail Admin grubunun bu OU’daki nesneleri silme/düzenleme yetkisi) anında yeni gruba miras kalır.

2. DistributionGroupNameBlockedWordsList: Yetkisiz ve Yanıltıcı İsimlerin Önüne Geçmek

Sahadan Senaryo

Self-service yetkileri açık olan veya Helpdesk tarafında yeterli onay mekanizması işletilmeyen yapılarda ciddi bir güvenlik ve itibar riski mevcuttur.

Bir çalışan yetkisi olmadığı halde IK-Duyuru, Finans-Odemeler veya CEO-Office ismiyle bir dağıtım grubu oluşturabilir. İlgili gruba tüm çalışanları ekleyip kurum içi sosyal mühendislik (phishing) veya yetkisiz duyurular için bu adresi kullanabilir.

Sahada Nasıl Uygulanır?

Kurumsal hiyerarşiyi, departman isimlerini, kritik unvanları ve güvenlik açısından hassas kelimeleri engellenenler listesine almak gerekir.

# Mevcut bir liste varsa üzerine yazmamak için önce listeyi alıp ekleme yapmak sahadaki güvenli yöntemdir:
$currentBlocked = (Get-OrganizationConfig).DistributionGroupNameBlockedWordsList
$currentBlocked += @("CEO", "HR", "IK", "Payroll", "Finance", "Finans", "Admin", "Executive", "Yonetim", "Destek")

Set-OrganizationConfig -DistributionGroupNameBlockedWordsList $currentBlocked

Saha Kazanımı: Bir kullanıcı veya junior admin OWA, EAC veya PowerShell üzerinden IK-Duyuru adıyla grup oluşturmaya çalıştığında Exchange işlemi reddeder ve DistributionGroupNameBlockedWordsList ihlali uyarısı verir.

3. DistributionGroupNamingPolicy: Standart ve Sorumluluk Sahibi İsimlendirme

Sahadan Senaryo

Binlerce kullanıcının bulunduğu kurumsal yapılarda en büyük problemlerden biri de “sahipsiz” veya ne işe yaradığı belli olmayan gruplardır. Proje1, Test, SahaEkibi gibi belirsiz grup isimleri Global Address List’i (GAL) kirletir. Ayrıca hangi projenin, hangi departmanın veya kimin sorumluluğunda oluşturulduğu zamanla unutulur.

Sahada Nasıl Uygulanır?

DistributionGroupNamingPolicy parametresi, grubun başına/sonuna sabit ön ekler (prefix) veya grubu oluşturan kişinin Active Directory özniteliklerini (attribute) otomatik olarak ekler.

Kullanılabilecek başlıca öznitelikler:

  • [Department]

  • [Company]

  • [Office]

  • [StateOrProvince]

Kurumsal Ölçekli Örnek: Tüm dağıtım gruplarının başına DL_ eklenmesini, grubun isminin gelmesini ve en sonuna grubu açan kişinin Department bilgisinin otomatik yazılmasını sağlayalım:

Set-OrganizationConfig -DistributionGroupNamingPolicy "DL_<GroupName>_<Department>"

Dikkat : Burada user attirbute olduğunu belirtmek için attribute ismini <> üçgen parantezler içine yazdım.

Nasıl Çalışır? Yazılım departmanında çalışan bir kullanıcı OWA üzerinden SaaS-Gelistirme adında bir grup açmak istediğinde:

  • Kullanıcının AD üzerindeki Department bilgisi: Software

  • Exchange’in otomatik oluşturacağı nihai grup adı ve Mail Nickname: DL_SaaS-Gelistirme_Software

Saha Kazanımı:

  • GAL üzerinde bir arama yapıldığında DL_ ile başlayan tüm nesneler doğrudan gruplandırılabilir.

  • Grubun ismine bakan herhangi bir sistem yöneticisi, grubun hangi departman tarafından türetildiğini anında anlar.

Tüm Yapılandırmayı Birlikte Devreye Alma (Production Script)

Canlı ortamda bu üç parametreyi birlikte devreye alırken izlenecek bütünsel PowerShell adımları:

# 1. AD OU Yolunu Tanımlayın
$targetOU = "OU=Distribution Groups,OU=Tier 2 End-User Groups,DC=meridian,DC=corp,DC=test"

# 2. Yasaklı Kelime Listesini Hazırlayın
$blockedWords = @("CEO", "HR", "IK", "Finans", "Finance", "Payroll", "Baskanlik", "Admin", "Executive")

# 3. Naming Policy Formatını Belirleyin (Örn: DL_GrupAdi_Departman)
$namingPolicy = "DL_<GroupName>_<Department>"

# 4. Organizasyon Genelinde Yapılandırmayı Uygulayın
Set-OrganizationConfig `
    -DistributionGroupDefaultOU $targetOU `
    -DistributionGroupNameBlockedWordsList $blockedWords `
    -DistributionGroupNamingPolicy $namingPolicy

# 5. Yapılandırmayı Doğrulayın
Get-OrganizationConfig | Select-Object DistributionGroupDefaultOU, DistributionGroupNameBlockedWordsList, DistributionGroupNamingPolicy | Format-List

Sahadan Tavsiyeler ve Dikkat Edilmesi Gerekenler

  1. Self-Service Açık İse Bu Ayarlar Zorunluluktur: Eğer kullanıcıların kendi gruplarını yönetmesine (OWA/Outlook üzerinden) izin veriyorsanız, bu üç ayarı yapılandırmadan canlı ortama geçmeyin.

  2. Naming Policy Test Edilmelidir: Naming policy aktif edildikten sonra kullanıcıların AD üzerindeki Department veya Company gibi özniteliklerinin boş olmaması gerekir. Eğer kullanıcının departman bilgisi boşsa grup oluşturma esnasında hata alabilir. Yapıyı devreye almadan önce kullanıcı özniteliklerinin eksiksiz doldurulduğundan emin olun.

  3. Mevcut Gruplar Etkilenmez: Bu parametreler yalnızca yeni oluşturulacak gruplar için geçerlidir. Geçmişte oluşturulmuş düzensiz grupları temizlemek için ayrı bir envanter çalışması yapılması gerekir.

POC (UYGULAMA)

Sunucum üzerinde yukarıdaki production script komutları ile yapılanmamı tamamlıyorum.

Şimdi OWA üzerinden user01 kullanıcısı ile yeni bir group oluşturmaya çalışıyorm.

Create Distribution List with Banned Words

Görüldüğü üzere yasaklı kelimelerden birini (Baskanlik) kullandığımdam dolayı hata aldım ve dağıtım grubunu oluşturmama izin vermedi.

Şimdi de yasaklı olmayan kelimeler ile bir dağıtım listesi oluşturmaya çalışıyorum.

Create Distribution List Group with Policy

Save butonuna bastığımda ekranda bir bilgi notu olarak oluşturulan group adını belirtmekte.

OWA ‘dan kontrol sağladığımmda ise, eğosta dağıtım grubunun oluştuğu görülmektedir.

Grup isminde DL_ ve _Denetleme şeklinde bir ibare girmememe rağmen, $namingPolicy = "DL_<GroupName>_<Department>" şekinde tanımladığımız politikamız gereği grup ismini DL_KaliteKontrol_Denetleme görünen adına sahip bir group oluşmuş durumdadır. Buradan da anlaşıldığı üzere kullanıcımızın Department attirbute özelliğinin değeri Denetleme olmalıdır ki, sorguladığımızda öyle olduğunu görebilmekteyiz.

Get-ADUser user01 -properties Department

Peki ilgili grup gerçekten belirtiğimiz OU’ da mı oluşturuldu? Belirttğimiz OU içerisini kontrol ettiğimizde grup objesinin bu OU altında oluştuğunu görebiliriz.

  • NOT : Yalnız burada bir noktayı açıklamamız gerekiyor. Exchange ilk kurulduğu sırada Schema ve AD Prep komutlarında root AD üzerinde kendine ilgili ve gerekli yetkilendirmelerini yapar. Users conteiner, security özelliklerini yukardan inheritance olarak aldığından, eğer siz OU belirtmeden grup oluşturmak isteseniz herhangi bir hata almadan Users container içinde bir grup listelenecektir. OU değişikliğini yaptığınızda belirtilen OU üzerinde Exchange Trusted Subsystem grubunun grup oluşturma yetkilerinin olması gerekmektedir. Yukarıdan inheritance aldığınız bir OU var ise sorun olmayacaktır ama benim kullandığım gibi Tier yapılı ve yukarıdan inheritance özelliği kapalı olan OU üzeirnde çalışırsanız ilgili izinleri/delegasyonları eklemeniz gerekmektedir.

Politika belirlemeden önce oluşutrduğum grup ise görüldüğü üzere hem Users container altında, hem de isimlendirme politikasından etkilenmemiş durumda. Yaptığımız ayarların önceki gruplar için işlemediğini de teyit etmiş olduk.

Kullanıcılarınızın bu şekilde (Self-Service) grup oluşturmasını istemiyor iseniz, kullanıcı rollerinden Dağıtım grubu yetkilendirmelerini almanız (uncheck yapmanız) gerekmektedir.

Dilerseniz burada farklı bir politika yaparak müdür ve üstü yöneticileriniz ya da dağıtım grubu oluşturmasını istediğini kullanıcılara o politikayı atayabilirsiniz.

Faydalı olması dileğiyle…

Aşağıdaki linkler de ilginizi çekebilir.

Kaynakça

  1. Microsoft Learn : Create Group Naming Policy

Leave a Reply

Your email address will not be published. Required fields are marked *