Exchange Server 2019’da Load-Balancer İçin Kerberos Yapılandırılması

Merhaba, bu yazımız da Exchange Server 2019 üzerinde Kerberos Kimlik Doğrulamasını aktif hale getireceğiz. Yapılandırma işlemlerine başlamadan önce Kerberos ne olduğu ve Kerberos Kimlik Doğrulaması kullanmanın ortamımız için ne gibi faydaları olur bunlara değinelim.

Kerberos Nedir?

Kerberos kimlik doğrulaması Microsoft Windows tarafından kullanılan yetkilendirme teknolojisidir, Kerberos uygulamaları Apples, FreeBSD, UNIX ve Linux üzerindede bulunmaktadır.

Microsoft, Kerberos sürümlerini Windows 2000’de tanıttı. Ayrıca, platformlar arasında web siteleri ve Single-Sign-On uygulamaları için bir standart haline geldi.

Kerberos, güçlü şifreleme ve üçüncü taraf yetkilendirmesi, zararlı yazılım üreticilerinin ağınıza sızmasını çok daha zorlaştırmaktadır. Tamamen kusursuz değildir, iyi yapılandırılmış bir ortamda NTLM teknolojisine göre daha iyi bir güvenlik sağlamaktadır.

Kerberos aşağıda ki nedenlerden dolayı NTLM’e göre daha güvenilirdir.

Modern Dağıtılmış Sistem Gereksinimlerini Desteklemektedir

Kerberos, modern dağıtılmış sistemlerin gereksinimlerini karşılar. Güvenli olmayan iletişim bağlantılarıyla açık ortamlarda güvenli kimlik doğrulaması sağlamaktadır.

Mimari Olarak Sağlamdır

Kerberos’un sağlam, iyi tasarlanmış mimari temelleri, diğer sistemlerle evrimleşmesine ve bütünleşmesine izin vermektedir.

Popüler İşletim Sistemlerine Entegre Edilmiştir

Kerberos zaten popüler işletim sistemlerine ve yazılım uygulamalarına entegre edilmiştir ve BT altyapısının kritik bir bileşeni haline gelmiştir. Microsoft Windows’daki varsayılan yetkilendirme teknolojisidir. Bilgisayar korsanlarının kurumsal bir ağa erişmesini zorlaştırmak için üçüncü taraf bilet yetkilendirmesi ve güçlü şifreleme kullanır. Kerberos ile kuruluşlar, güvenliklerinden ödün verme konusunda endişelenmelerine gerek kalmadan internete erişebilirler.

Kerberos Kimlik Doğrulamasının Yararları

Kerberos’u kimlik doğrulama hizmeti olarak kullanmanın bazı önemli avantajları bulunmaktadır.

Erişim Kontrolü

Kerberos kimlik doğrulama protokolü etkili erişim denetimi sağlar. Kullanıcılar, tüm girişleri ve güvenlik politikalarının uygulanmasını takip etmek için tek bir noktadan yararlanmaktadır.

Karşılıklı Kimlik Doğrulama

Kerberos kimlik doğrulaması, hizmet sistemlerinin ve kullanıcıların birbirlerinin kimliklerini doğrulamasına olanak tanır. İşlemin tüm adımları sırasında, kullanıcı ve sunucu, etkileşimde bulundukları için gelen karşılıkların gerçek olduğunu bilmektedir.

Sınırlı Bilet Ömrü

Kerberos’taki her biletin zaman damgaları ve yaşam boyu verileri vardır ve kimlik doğrulama süresi yöneticiler tarafından denetlenebilir.

Yeniden Kullanılabilir Kimlik Doğrulama

Kerberos kimlik doğrulaması dayanıklı ve yeniden kullanılabilir. Her kullanıcının sistem tarafından yalnızca bir kez doğrulanması gerekir. Ardından, biletin ömrü boyunca, kullanıcı kişisel bilgilerini yeniden girmeye gerek kalmadan kimlik doğrulaması yapabilir. (Kaynak tüketiminizde faydası bulunmaktadır)

Güvenlik

Birden çok gizli anahtar, üçüncü taraf yetkilendirmesi ve şifreleme, Kerberos’u güvenli bir doğrulama protokolü yapar. Parolalar ağlar üzerinden gönderilmez ve gizli anahtarlar şifrelenerek saldırganların kullanıcıların veya hizmetlerin kimliğe bürünmesi zorlaşır.

Exchange Server 2019 Kerberos Yapılandırılması

Exchange Server için Load-Balancer ile Kerberos doğrulaması kullanabilmemiz için öncelikle ASA (Alternate Service Account) yapılandırmamız gerekmektedir.

Ortamınızda birden fazla Exchange sunucusu bulunuyorsa ve Namespace’ler ortak kullanılıyorsa kerberos kimlik doğrulaması varsayılan olarak gelmemektedir. Örneğin mail.cozumpark.com Namespace’si tek bir isim olarak kullanılıyorsa AD üzerinde bir ASA oluşturulması gerekiyor ve Exchange ortamınızı bu hesap ile bağlamanız gerekiyor.

Active Directory Üzerinde ASA Hesabı Oluşturma Adımları

ASA, Exchange sunucularının yüklü olduğu Active Directory ormanındaki bir bilgisayar hesabı veya kullanıcı objesi olarak tanımlanmaktadır.
Microsoft’un önerisine göre, bilgisayar hesabı etkileşimli oturum açmaya izin vermediğinden ve kullanıcı hesabından daha basit güvenlik ilkelerine sahip olabileceğinden, kullanıcı hesabı yerine bir bilgisayar hesabı oluşturmalısınız. Bir bilgisayar hesabı oluştururken, hesabın parolasının süresi dolmaz, ancak parola zaman zaman güncelleştirilmesi önerilir. (Parola resetleme işlemini kendi ortamınıza göre şekillendirebilirsiniz)
Bilgisayar hesabı adı belirli bir adla sınırlı değildir, ancak en fazla 15 karakter içinde olmalıdır.

ASA bilgisayar hesabını oluşturmak için PowerShell’den aşağıdaki komutu çalıştırıyoruz.

New-ADComputer -Name CP-ASA -AccountPassword (Read-Host ‘Parola Giriniz’ -AsSecureString) -Description ‘ASA Account’ -Enabled:$True -SamAccountName CP-ASA -Path “CN=Computers,DC=akkaya,DC=local

ASA için hesap oluşumu tamamlandıktan sonra Kerberos’u desteklemek için AES 256 etkinleştirmesini gerçekleştirmemiz gerekiyor.

Set-ADComputer CP-ASA -add @{“msDS-SupportedEncryptionTypes”=”28”}

Yeni oluşturulan ASA hesabının tüm AD etki alanı denetleyicilerine çoğaltıldığını doğrulamak için etki alanı denetleyicilerinizden birinden aşağıdaki komutu çalıştırın:

repadmin /syncall /ADPe

ASA ve SPN (Service Principle Name) İlişkilendirmesi

Şimdi, SPN’leri yeni oluşturduğumuz ASA ile ilişkilendirmemiz gerekiyor.
SPN’ler listesi aslında farklı Exchange hizmetleri için kullanılan URL’lerin listesidir:

SPN değerleri, tek tek sunucular yerine DNS ile eşleşmelidir.

Örneğin tüm Exchange sunucularının 2 ad alanına sahip tek bir AD sitesinde bulunduğu bir senaryoya dayandığını lütfen göz önünde bulundurun: mail.cozumpark.com Autodiscover.cozumpark.com
Birden çok AD ortamınız varsa ve Exchange hizmetleri için birden çok AD kullanıyorsanız, kullandığınız ad alanlarının geri kalanını ASA’ya eklemeniz gerekmektedir.
Örneğin, CY-Mail.cozumpark.com & NY-Autodiscover.cozumpark.com kullanıyorsanız, mail.cozumpark.com Autodiscover.cozumpark.com ad boşluklarına ek olarak SETSPN -S komutunu çalıştırırken bu ad boşluklarını da eklemelisiniz.

Mailbox Sunucularında ASA Kimlik Bilgilerini Yapılandırma Adımları

Exchange Server’da Kerberos doğrulamasına izin veren temel servis, mailbox sunucu üzerinde çalışan Microsoft Exchane Server Host hizmetidir. Exchange sunucularıyla kerberos kimlik doğrulaması için ASA kimlik bilgilerini yapılandırması destekleyen tek yol, her mailbox sunucuda bulunan RollAlternateServiceAcountPassword.ps1 aracıdır.

İlgili script, ASA kimlik bilgilerini güncelleştirir ve sunuculara dağıtır.

Öncelikle komut dosyasını ilk Mailbox sunucumuzda çalıştıracağız.

Komut dosyasını ilk Posta Kutusu sunucusunda çalıştırmak için, Exchange Yönetim Kabuğu’nu (EMS) açın.
Server 2019 veya Server 2022 Core Server’da çalıştırıyorsanız(Son güncelleme ile Exchange Server 2019, Server 2022 için desteklenmeye başlandı), CMD’den LaunchEMS yazmanız yeterli olacaktır.
EMS üzerinde aşağıdaki komutları takip edebilirsiniz.

cd $exscripts

Şimdi Scripti ilk Mailbox sunucusunun adıyla (örneğimizdeki EXCSERVER) ve daha önce oluşturduğumuz gibi domain\ASA$ bilgisayar hesabının adıyla çalıştırın:

\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer EXCSERVER.akkaya.local -GenerateNewPassword AKKAYA\CP-ASA$

Script başarılı bir şekilde çalıştı ve ASA kimlik bilgilerini güncelledi.

Ortamınız da birden fazla Exchange sunucusu bulunuyorsa eğer bu ilgili Scripti çalıştırırken kullandığımız komutlar farklılık göstermektedir. Çünkü, komutu ilk Posta Kutusu sunucusunda çalıştırmak, ASA bilgisayar hesabının parolasını oluşturacak veya değiştirecektir.
Diğer tüm sunucular, komut dosyası kullanılarak önceden ayarlanmış olan parolayı kullanmaya gitmesi gerekiyor, yapılandırmayı ilk Posta Kutusu sunucusundan kopyalaması gerekiyor, bu nedenle komutlar değişkenlik gösterecek.

.\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer EXCSERVER2.cozumpark.com -CopyFrom EXCSERVER.cozumpark.com

Bu komutla ilgili scripti çalıştırdıktan sonra ilgili adımlar bir öncekinde olduğu gibidir. Diğer sunucularınızda da bu komutla çalıştırabilirsiniz.

Exchange Üzerinde ASA Kimlik Bilgilerini Doğrulama

Exchange sunucularınızın, ASA kimlik bilgileriyle doğru yapılandırıldığını doğrulamak için, aşağıdaki komutu çalıştıralım ve AlternateServiceAccountConfiguration’ın ASA bilgisayar hesabıyla güncelleştirildiğini doğruyalım.

Get-ClientAccessService EXCSERVER -IncludeAlternateServiceAccountCredentialStatus | fl Name, AlternateServiceAccountConfiguration

ASA kimlik bilgilerini tüm sunucularda doğrulamak isterseniz aşağıdaki komutu çalıştırmanız yeterli olacaktır.

Get-ClientAccessService -IncludeAlternateServiceAccountCredentialStatus | fl Name, AlternateServiceAccountConfiguration

SPN’leri ASA ile İlişkilendirme

Sunucuların yalnızca bir kısmının Kerberos kimlik doğrulamasıyla yapılandırılması durumunda, posta kutusuna bağlanmaya çalışırken veya Autodiscover servisine erişirken Parolal POP-UP’ları gelmeye devam edecektir. Bunun için tüm sunucularınızda RollAlternateServiceAcountPassword.ps1 scriptini çalıştırdığınızdan emin olmanız gerekmektedir.

Öncelikle ASA hesabımızın herhangi bir SPN ile ilişkisi var mı kontrol edelim.

Setspn -F -Q http/mail.cozumpark.com

No Such SPN Found, cevabını almanız gerekiyor. Şimdi Exchange Servislerimizde kullandığımız SPN’leri ASA ile ilişkilendirmeye başlayabiliriz.

Setspn -S http/mail.cozumpark.com AKKAYA\CP-ASA$

Setspn -S http/autodiscover.cozumpark.com AKKAYA\CP-ASA$

Ortamınız da kullanmış olduğunuz başka SPN AD’ları var ise onlarıda ilişkilendirmeniz gerekmektedir. SPN adlarını tanımlamanız yeterli olacaktır. Biz bu örneğimizde Outlook Anywhere ve Autodiscover için kullanacağız sadece.

SPN ilişkilendirme adımını tamamladık, şimdi yaptığımız işlemi doğrulayalım.

Setspn -L AKKAYA\CP-ASA$

Doğrulama işleminden sonra SPN’leri burda görebiliyoruz.

ASA ve SPN ilişkilendirme adımlarını tamamladık, şimdi İstemciler için Kerberos etkinleştirmesini gerçekleştireceğiz.

Kerberos kimlik doğrulamasını etkinleştirmenin son adımı, HTTPS ve Outlook Anywhere Üzerinden MAPI (HTTPS / OA Üzerinden RPC) ile Outlook bağlantısı için kimlik doğrulama yöntemleridir.

Kerberos kimlik doğrulaması için Outlook Anywhere desteğini ayarlamak üzere her Exchange sunucusu için aşağıdaki komutu çalıştırmanız yeterli olacak.

Get-OutlookAnywhere -Server EXCSERVER | Set-OutlookAnywhere -InternalClientAuthenticationMethod Negotiate

OutlookAnywhere | Set-OutlookAnywhere -InternalClientAuthenticationMethod Negotiate

Kerberos kimlik doğrulaması için HTTPS üzerinden MAPI desteğini ayarlamak üzere her Exchange sunucusu için aşağıdaki komutu kullabilirsiniz

Get-MapiVirtualDirectory -Server EXCSERVER | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm,Negotiate

Get-MapiVirtualDirectory | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm,Negotiate

İstemcileri Kerberos kimlik doğrulamasıyla sınama

ASA ve Kerberos için gerekli tüm adımları tamamladık, şimdi Test işlemi gerçekleştirebiliriz.
Outlook Anywhere ve HTTPS üzerinden MAPI için kimlik doğrulama ayarlarının değiştirdik, bu ayarların en kısa sürede Outlook istemcilerine güncelleştirilmesi gerekmektedir.
Ayrıca, Exchange sunucularında Kerberos kimlik doğrulamasından sorumlu olan en önemli hizmet, varsayılan olarak başlatılan MSExchangeServiceHost hizmetidir.
Bu hizmet durdurulursa, Kerberos kimlik doğrulaması çalışmaz.

Outlook’un yeni kimlik doğrulama ayarlarıyla güncelleneceği zamanı hızlandırmak için, tüm mailbox sunucularında yapmamız gereken 2 adım bulunmakta;

Tüm Posta Kutusu sunucularında MSExchangeAutodiscoverAppPool uygulama havuzunu yeniden başlatmak için, Exchange sunucularından birinde Exchange Yönetim Kabuğu’ndan (EMS) aşağıdaki komutları kullanmanız yeterli olacaktır.

$cas=Get-ClientAccessService

cas.name | $ % {Invoke-Command -ComputerName $_ -ScriptBlock {Restart-WebAppPool -Name MSExchangeAutodiscoverAppPool}}

Tüm posta kutusu sunucularında MSExchangeServiceHost hizmetini yeniden başlatmak için aşağıdaki komutları çalıştırın:

$cas=Get-ClientAccessService

cas.name | $ % {Invoke-Command -ComputerName $_ -ScriptBlock {Restart-Service MSExchangeServiceHost -Force}}

MSExchangeServiceHost hizmetinin tüm Posta Kutusu sunucularında Çalışıyor durumda olduğunu doğrulamak için sonraki komutu çalıştırın:

cas.name | $ % {Get-Service MSExchangeServiceHost}

Outlook’un Kerberos kimlik doğrulaması kullanılarak bağlandığını doğrulamanın birkaç yolu vardır.
İlk adım olarak, şu anda önbelleğe alınmış Kerberos biletlerinin bir listesini görüntüleyen Klist’i kullanabiliriz.
CMD veya PowerShell’den Klist komutunu çalıştırın:

klist

ASA bilgisayar hesabıyla ilişkilendirilmiş her SPN için bir tane olmak üzere 2 bilet olduğunu görebiliriz:

klist test işleminin aslında sadece bir parçası, ilgili SPN’leri burda görmeniz İstemcilerin Kerberos ile bağlandığını doğrulamamakta. İstemcilerin Kerberos ile bağlandığını doğrulamak için C:\Program files\Microsoft\Exchange Server\V15\Logging\HttpProxy altında bulunan LOG’lara bakmamız gerekiyor. LOG dosyaları içerisinde Negotiate/TRUE görmeniz yeterli olacaktır.

Exit mobile version