Exchange Server Kerberos Yapılandırılması

Merhaba, bu yazıda Exchange Server 2019 üzerinde Kerberos kimlik doğrulamasını nasıl etkinleştireceğimizi ele alacağız. Ancak önce, Kerberos‘un ne olduğunu ve Kerberos kimlik doğrulamasının kullanılmasının faydalarını incelememiz gerekmektedir.

Kerberos Nedir?

Kerberos, Microsoft Windows’un yanı sıra Apple, FreeBSD, UNIX ve Linux gibi işletim sistemlerinde de bulunan bir yetkilendirme teknolojisidir. Microsoft, Kerberos’u ilk olarak Windows 2000 ile tanıttı ve bu teknoloji, web siteleri ve SSO uygulamaları için bir standart olarak kabul edildi.

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’un Avantajları

Kerberos, güçlü şifreleme ve üçüncü taraf yetkilendirme tekniklerini kullanarak zararlı yazılımların ağınıza sızmasını zorlaştırmaktadır. Ayrıca, Kerberos‘un sağlam mimarisi, diğer sistemlerle entegrasyonunu ve evrimini kolaylaştırır. Kerberos, özellikle şu avantajları sunar:

  • Erişim Kontrolü: Kerberos, etkili bir erişim kontrol mekanizması sağlar, böylece kullanıcılar tüm girişleri ve uygulanan güvenlik politikalarını tek bir yerden takip edebilir.
  • Karşılıklı Kimlik Doğrulama: Hem hizmet sistemleri hem de kullanıcılar, etkileşimde bulundukları diğer tarafların kimliklerini doğrulayabilir.
  • Sınırlı Bilet Ömrü: Kerberos biletlerinin sınırlı bir ömrü vardır, bu da güvenlik yöneticilerinin kimlik doğrulama sürelerini denetlemesine olanak tanır.
  • Yeniden Kullanılabilir Kimlik Doğrulama: Kullanıcılar, sisteme ilk kez başarılı bir şekilde giriş yaptıktan sonra, biletin geçerlilik süresi boyunca kimlik bilgilerini tekrar girmek zorunda kalmaz.
  • Güvenlik: Kerberos, çoklu gizli anahtarlar ve şifreleme kullanarak güvenli bir kimlik doğrulama protokolü sunar.

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.

Kerberos Kimlik Doğrulamasının Kurumsal Faydaları

Kerberos kimlik doğrulaması, özellikle büyük ölçekli dağıtımlarda, NTLM ile karşılaşılan ölçeklenebilirlik sorunlarını azaltabilir. Kerberos, kullanıcının zaten bir TGT‘ye (Ticket Granting Ticket) sahip olması nedeniyle, istemcinin her Outlook oturumu açılışında yeniden kimlik doğrulaması yapmasına gerek kalmadan, Exchange sunucuları ve Etki Alanı Denetleyicileri üzerindeki yükü önemli ölçüde azaltmaktadır.

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

Active Directory (AD) içinde, Exchange sunucuları için ASA hesabının oluşturulması önemli bir yönetim görevidir. ASA, genellikle bir bilgisayar hesabı olarak tanımlanır. Microsoft, bilgisayar hesaplarının etkileşimli oturum açmaya izin vermemesi ve kullanıcı hesaplarına göre daha basit güvenlik ilkelerine sahip olmaları nedeniyle, kullanıcı hesabı yerine bilgisayar hesabı kullanılmasını önermektedir. Bilgisayar hesapları için parolanın süresi dolmaz, ancak güvenlik best practices gereği düzenli olarak güncellenmelidir.

ASA Bilgisayar Hesabı Oluşturma

PowerShell kullanarak aşağıdaki komutu çalıştırarak bir bilgisayar hesabı oluşturabilirsiniz. Bu hesap için güçlü bir parola belirleyin ve hesap açıklamasını ekleyebilirsiniz.

New-ADComputer -Name CP-ASA \
-AccountPassword (Read-Host 'Enter Password' -AsSecureString) \
-Description 'ASA Account for Exchange Servers' \
-Enabled:$True \
-SamAccountName CP-ASA \
-Path "CN=Computers,DC=yourdomain,DC=com"
  1. Burada -Name parametresi hesabın AD içindeki adını, -SamAccountName ise hesabın SAM uyumlu adını belirtir. -Path parametresi, hesabın oluşturulacağı konumu belirtir.
  2. Kerberos için AES 256 Etkinleştirme: Kerberos kimlik doğrulaması için gerekli olan AES 256 şifrelemesini etkinleştirmek üzere oluşturulan bilgisayar hesabını aşağıdaki komut ile güncelleyebilirsiniz.
Set-ADComputer CP-ASA -Add @{"msDS-SupportedEncryptionTypes"="28"}

Bu komut, belirtilen bilgisayar hesabı için gerekli Kerberos şifreleme türlerini ekler.

Replikasyon : Oluşturulan ASA hesabının AD içindeki tüm denetleyicilere başarıyla çoğaltıldığını doğrulamak için, AD etki alanı denetleyicilerinizden birinde aşağıdaki komutu çalıştırmanız gerekiyor.

repadmin /syncall /ADPe
Bu komut, AD objelerinin etki alanındaki tüm denetleyiciler arasında senkronize edilmesini sağlar ve -ADPe parametresi, çoğaltma sırasında hataların ve uyarıların gösterilmesini sağlar.
  • Bilgisayar hesabı oluştururken, adlandırma ve yol bilgilerini kuruluşunuzun standartlarına uygun şekilde ayarlayın.
  • Güvenlik nedeniyle, belirlediğiniz parolanın kuruluşunuzun parola politikalarına uygun olduğundan emin olun.
  • ADSIEdit veya diğer ileri düzey AD yönetim araçlarını kullanırken yapacağınız değişikliklerin geri alınamayacağını unutmayın.

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

SPN’ler (Service Principal Names), farklı Exchange hizmetleri tarafından kullanılan ve özgül URL’lerle ilişkili kimlik bilgileridir. Şimdi, yeni oluşturulan ASA ile bu SPN‘leri ilişkilendirmemiz gerekiyor.

SPN Listesi

SPN’ler, aşağıdaki gibi Exchange hizmetleri için kullanılan URL’leri kapsar:

  • Outlook, HTTP üzerinden MAPI, Exchange Web Hizmetleri ve Çevrimdışı Adres Defteri için:
    • mail.cengizyilmaz.net
  • Autodiscover Servisi için:
    • autodiscover.cengizyilmaz.net

SPN Değerlerinin Ayarlanması

SPN değerlerinin DNS adları ile doğru bir şekilde eşleştirilmesi gerekir. Bu işlem, sunucular yerine alan adları üzerinden yapılmaktadır. Örneğin, tüm Exchange sunucuları tek bir Active Directory (AD) sitesinde ve mail.cengizyilmaz.net ve autodiscover.cengizyilmaz.net gibi iki ad alanında bulunuyorsa, SPN’ler bu URL’lerle ilişkilendirilmelidir.

Eğer birden fazla AD ortamınız varsa ve bu ortamlarda Exchange hizmetleri yürütülüyorsa, kullanılan her ad alanı için ayrı ayrı SPN ayarlamaları yapılması gerekebilir. Örneğin, CY-Mail.cengizyilmaz.net ve NY-Autodiscover.cengizyilmaz.net gibi ek ad alanlarınız varsa, bu ad alanları için de SPN ayarlarını gerçekleştirmelisiniz.

Exchange Server ASA Kimlik Yapılandırılması

Exchange Server’da Kerberos kimlik doğrulamasının temel bileşeni, mailbox sunucularında çalışan Microsoft Exchange Server Host hizmetidir. Kerberos kimlik doğrulaması için gerekli olan ASA (Alternate Service Account) kimlik bilgilerinin yönetimi, her mailbox sunucu için sunulan RollAlternateServiceAccountPassword.ps1 scripti ile yapılmaktadır.

İlk olarak, bu scripti ana Mailbox sunucusunda çalıştırmanız gerekmektedir. Yapılacak işlemler şu şekildedir:

  • Exchange Yönetim Kabuğu’nun Açılması (EMS):
    • Server 2019 veya Server 2022 Core Server kullanıyorsanız, CMD üzerinden LaunchEMS komutunu girerek EMS’i başlatın.
  • Scriptin Çalıştırılması:
    • EMS üzerinden komutumuzu çalıştırıyoruz.
cd $exscripts
  • Scripti, ASA bilgisayar hesabı adıyla birlikte çalıştırmamız gerekmektedir.
.\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer EXCSERVER.akkaya.local -GenerateNewPassword AKKAYA\CP-ASA$

Gerekli onaylar istendiğinde, “Y” tuşuna basarak işlemleri onaylayın ve devam edin.

Eğer birden fazla Exchange sunucusu bulunuyorsa, ilgili scriptin diğer sunucularda kullanımı sırasında farklı komutlar kullanılmalıdır. Bu, özellikle ASA bilgisayar hesabının parolasının oluşturulduğu veya değiştirildiği durumlar için geçerlidir.

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

Bu adımlar sonucunda, ilk Mailbox sunucusunda yapılan yapılandırmalar diğer sunuculara uygulanacak ve ASA kimlik bilgileri güncellenmiş olacaktır. Her sunucuda bu işlemi tekrarlamanız, sistem genelinde tutarlı bir yapılandırma sağlayacaktır.

  • AD’de ASA şifresinin değiştirilmesi, sunucular arasındaki güvenlik ve iletişimi artırır.
  • Ortamınızda birden fazla Exchange sunucusu varsa, her birinde bu scripti çalıştırarak kimlik bilgilerinin güncellendiğinden emin olun.

Exchange Server ASA Kimlik Bilgileri Doğrulama

Kerberos kimlik doğrulamasını aktif hale getirdiğiniz Exchange sunucularınızın doğru şekilde yapılandırıldığını doğrulamak için, aşağıdaki adımları takip etmeniz yeterlidir;

  • Belirli bir Sunucu için ASA Kimlik Bilgilerini Kontrol Etme
Get-ClientAccessService EXCSERVER -IncludeAlternateServiceAccountCredentialStatus | fl Name, AlternateServiceAccountConfiguration
  • Tüm Sunucularda ASA Kimlik Bilgilerini Kontrol Etme
Get-ClientAccessService -IncludeAlternateServiceAccountCredentialStatus | fl Name, AlternateServiceAccountConfiguration

ASA SPN İlişkilendirilmesi

Sunuculardan sadece bir kısmının Kerberos ile yapılandırılması durumunda, kullanıcılar posta kutusuna bağlanırken veya Autodiscover hizmetine erişirken parola istemleri ile karşılaşabilir. Bu durumu önlemek için, aşağıdaki SPN ilişkilendirme adımlarını uygulayın:

  • Mevcut SPN’leri Kontrol Etme
setspn -F -Q http/mail.cozumpark.com

Eğer “No Such SPN Found” cevabını alırsanız, ilişkilendirme yapmanız gerekmektedir.

  • SPN’leri ASA ile İlişkilendirme
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 İlişkilendirmesinin Doğrulanması
setspn -L AKKAYA\CP-ASA$

İstemciler İçin Kerberos Kimlik Doğrulamasının Etkinleştirilmesi

Son adım olarak, Kerberos kimlik doğrulamasını Outlook bağlantıları için etkinleştirmeniz gerekmektedir

Outlook Anywhere İçin Kerberos Kimlik Doğrulamasını Ayarlama

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

Tüm Exchange Server sunucuların da aynı anda çalıştırmak için

Get-OutlookAnywhere | Set-OutlookAnywhere -InternalClientAuthenticationMethod Negotiate

HTTPS Üzerinden MAPI İçin Kerberos Kimlik Doğrulamasını Ayarlama

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

Tüm sunucularda aynı anda çalıştırmak için:

Get-MapiVirtualDirectory | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm, Negotiate
 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.

İstemcileri Kerberos Kimlik Doğrulaması ile Sınama

Kerberos ayarlarınızı tamamladıktan sonra, istemcilerin bu yeni yapılandırmayla uyumlu olduğundan emin olmak için aşağıdaki adımları izleyerek test işlemi gerçekleştirebilirsiniz.

Yapılandırmaların Güncellenmesi

Outlook Anywhere ve HTTPS üzerinden MAPI için kimlik doğrulama ayarlarını güncelledik. Bu değişikliklerin Outlook istemcilerine hızlı bir şekilde uygulanması için, aşağıdaki servisleri yeniden başlatmanız gerekmektedir:

MSExchangeAutodiscoverAppPool Uygulama Havuzunu Yeniden Başlatma

Exchange Yönetim Kabuğu’nda (EMS) aşağıdaki komutlarla uygulama havuzunu yeniden başlatabilirsiniz

$cas = Get-ClientAccessService
$cas.name | ForEach-Object {Invoke-Command -ComputerName $_ -ScriptBlock {Restart-WebAppPool -Name MSExchangeAutodiscoverAppPool}}

MSExchangeServiceHost Servisini Yeniden Başlatma

Tüm posta kutusu sunucularında MSExchangeServiceHost hizmetini yeniden başlatmak için

$cas = Get-ClientAccessService
$cas.name | ForEach-Object {Invoke-Command -ComputerName $_ -ScriptBlock {Restart-Service MSExchangeServiceHost -Force}}

MSExchangeServiceHost hizmetinin durumunu kontrol etmek için

$cas.name | ForEach-Object {Get-Service -Name MSExchangeServiceHost -ComputerName $_}

Kerberos Kimlik Doğrulamasını Doğrulama

Outlook’un Kerberos kullanarak bağlandığını doğrulamanın birkaç yolu bulunmaktadır:

Klist ile Önbelleğe Alınmış Kerberos Biletlerini Kontrol Etme

Komut istemcisinden veya PowerShell’den klist komutunu çalıştırarak Kerberos biletlerini görüntüleyin:

    klist
    1. ASA bilgisayar hesabıyla ilişkilendirilmiş SPN’ler için biletleri görmelisiniz:
      • http/mail.cozumpark.com
      • http/autodiscover.cozumpark.com
    2. HTTP Proxy Log Dosyalarını Kontrol Etme: Outlook istemcilerinin Kerberos ile bağlandığını doğrulamak için Exchange sunucusunda bulunan HTTP Proxy log dosyalarını inceleyebilirsiniz
    C:\Program Files\Microsoft\Exchange Server\V15\Logging\HttpProxy
    
    1. Log dosyalarında Negotiate/TRUE ifadesini arayın.

    Bu adımların tamamlanması, Exchange ortamınızın Kerberos kimlik doğrulamasını başarıyla kullandığını ve güvenli bir şekilde yapılandırıldığını gösterir. Kerberos kimlik doğrulamasının etkinleştirilmesi, hem güvenlik hem de kullanıcı deneyimi açısından önemli iyileştirmeler sağlamaktadır.

    Yorum yapın