SPN Nedir, Kerberos Nasıl Çalışır ve Duplicate SPN Neden Sorun Yaratır?
Elif Kartal
Active Directory Ortamında SPN Nedir?
SPN, belirli bir formata uygun olarak tanımlanan ve bir hizmeti benzersiz şekilde tanımlayan bir özniteliktir. Active Directory’de aynı etki alanı (domain) içinde her SPN benzersiz olacak şekilde yapılandırılmalıdır.SPN’ler; MSSQL, IIS, EXCHANGE, SAP gibi popüler uygulamaların yönetimi ve Kerberos protokolü çerçevesinde Service Ticket (Servis Bileti) oluşturma ve doğrulama işlemleri için kullanılır.SPN'ler genellikle bilgisayar objeleri, servis hesapları (gmsa) veya kullanıcılar tarafından alınabilir. Ancak dikkat edilmesi gereken bir husus, bu hesapların genellikle gereğinden fazla yetkiyle donatılmasıdır. Örneğin, bu hesaplar sık sık yetkili gruplara (Administrators veya Domain Admins gibi) dahil edilir ve bu durum güvenlik risklerini artırır.
SPN Neden Önemlidir?
Active Directory (AD) ortamlarında, Service Principal Name (SPN) kayıtları, hizmetlerin kimlik doğrulama süreçlerinde kritik bir rol oynar. SPN’ler, istemcilerin doğru hizmete erişimini sağlayan benzersiz tanımlayıcılardır ve bu tanımlayıcılar, Kerberos protokolü tarafından kimlik doğrulama için kullanılır. Ancak, SPN’lerin doğru yapılandırılmadığı veya çakışmaların olduğu durumlarda, kimlik doğrulama sistemlerinde ciddi problemler yaşanabilir. Peki, SPN tam olarak nedir ve nasıl kullanılır?
SPN ve Kerberos Protokolü
Kerberos, güvenli bir kimlik doğrulama protokolüdür ve büyük, dağıtık sistemlerde kullanılır. MIT tarafından geliştirilmiştir. Kerberos'un temeli, merkezi bir Kimlik Doğrulama Sunucusu (KDC) üzerinden çalışır. KDC'nin iki ana bileşeni vardır:
Authentication Server (AS): Kullanıcı kimlik doğrulamasını yapar.
Ticket Granting Server (TGS): Kullanıcıya erişmek istediği servise ait "bilet" (ticket) verir.
Öne Çıkan Özellikler
Güvenli Şifreleme: Tüm iletişim şifreli olup güçlü şifreleme algoritmaları kullanılır.
Bilet Tabanlı Sistem: Kullanıcı bir kez doğrulandıktan sonra tekrar kimlik doğrulama yapmaz.
Karşılıklı Kimlik Doğrulama: Hem istemci hem de sunucu birbirini doğrular.
Avantajları
Ağ üzerinden şifre gönderimini engeller.
Dağıtık sistemlerde ölçeklenebilir çözüm sunar.
Dezavantajları
Zaman Senkronizasyonu: Sunucuların ve istemcilerin saatlerinin uyumlu olması gerekir.
Kritik Rol: KDC’nin çalışmaması, tüm kimlik doğrulama sürecini engeller.
Kerberos Ticket ile Kimlik Doğrulama Süreci
Kerberos kimlik doğrulama süreci aşağıdaki adımlarla gerçekleşir:
İstemci, KDC'den kimlik doğrulama bileti (TGT) talep eder.
KDC, doğrulama yapar ve şifreli TGT ile birlikte bir oturum anahtarı gönderir.
İstemci, TGT'yi saklar ve süresi dolarsa yeni bir TGT talep eder.
İstemci, bir hizmete erişmek için TGT'yi TGS'ye iletir.
TGS, kullanıcının hizmete erişim yetkisini kontrol eder ve bir oturum anahtarı gönderir.
İstemci, bu oturum anahtarını hizmete ileterek kimliğini doğrular ve erişim sağlanır.
Duplicate SPN Nedir ve Nasıl Oluşur?
SPN’ler, Active Directory veri tabanında objelere ait öznitelikler olarak saklanır ve benzersiz olmalıdır. Eğer birden fazla hesapta aynı SPN tanımlanırsa (duplicate SPN), kimlik doğrulama sorunları ortaya çıkar. Bu nedenle duplicate SPN’lerin tespiti ve çözümü oldukça önemlidir.
Bu durumun başlıca sebepleri şunlardır:
Hizmet hesapları veya sunucular oluşturulurken aynı SPN’nin birden fazla hesap veya bilgisayar nesnesine atanması.
Bir hizmetin yeni bir sunucuya taşınması, ancak eski sunucudaki SPN’nin kaldırılmaması.
Hizmetlerin kopyalanması veya yedeklenmesi sırasında aynı SPN’nin tekrar tanımlanması.
SPN’lerin yanlışlıkla birden fazla hesap veya sunucuya elle atanması.
Duplicate SPN Kayıtlarının Zararları
Duplicate SPN’ler, Active Directory ortamında çeşitli problemlere yol açabilir. Özellikle Kerberos kimlik doğrulama süreçlerini etkileyerek sistem güvenliğini ve performansını olumsuz yönde etkileyebilir.
Kerberos protokolü, her SPN’nin yalnızca bir hesapta tanımlı olmasını bekler. Ancak duplicate SPN söz konusu olduğunda, istemciler doğru sunucuyu bulmakta zorlanır ve bu da oturum açma hatalarına ve hizmet kesintilerine neden olabilir.
Duplicate SPN’ler, istemcilerin yanlış sunuculara yönlendirilmesine sebep olabilir. Bu durum, kimlik bilgisi hırsızlığına yol açabilecek güvenlik açıkları yaratır. Özellikle "man-in-the-middle" (MITM) saldırılarına karşı sistem savunmasız hale gelebilir.
Duplicate SPN’ler, kimlik doğrulama gerektiren veritabanı veya web sunucusu gibi hizmetlere erişimde problemlere yol açabilir. Sonuç olarak, performans düşebilir veya hizmet tamamen erişilemez hale gelebilir.
Duplicate SPN hataları, Active Directory ve Kerberos günlüklerinde sıkça kimlik doğrulama hatalarına ve çakışma kayıtlarına neden olur.
SPN Nerelerde Kullanılır?
SPN’ler, birçok farklı senaryoda kritik bir rol oynar.
IIS (Internet Information Services)
IIS sunucuları, SPN’leri kullanarak web uygulamalarında güvenli bir şekilde Kerberos tabanlı kimlik doğrulama yapar. Özellikle intranet ortamlarında SPN’lerin doğru yapılandırılması hayati öneme sahiptir.
Microsoft SQL Server
SQL Server’da SPN kayıtları, veritabanı bağlantılarında kimlik doğrulama için kullanılır. SPN’ler yanlış yapılandırıldığında Kerberos kimlik doğrulaması başarısız olabilir ve daha az güvenli protokoller (örneğin NTLM) devreye girebilir.
Exchange Server
Exchange Server’daki hizmetler (örneğin Outlook Web App veya EWS), kullanıcıların güvenli kimlik doğrulaması için SPN kullanır.
Azure Active Directory
Hibrit kimlik doğrulama senaryolarında, SPN’ler Azure AD ile on-premise sistemler arasında Kerberos’un sorunsuz çalışmasını sağlar.
SharePoint
SPN’ler, SharePoint hizmetlerinde kullanıcıların kimlik bilgilerinin güvenli bir şekilde doğrulanmasını destekler ve Kerberos tabanlı yetkilendirme mekanizmasını mümkün kılar.
SPN’leri Yönetmek ve Yapılandırmak
SPN’ler, Active Directory ortamında setspn aracı kullanılarak yönetilir.
Yeni SPN Kaydı Ekleme
setspn -A MSSQLSvc/sunucuadi.domainadi.com:1433 domain\servisadi
Duplicate SPN Kontrolü
setspn -X
SPN Silme
setspn -x hizmet_hesabi /sunucuadi.domainadi.com
Mevcut SPN’leri Listeleme
setspn -L domain\hizmet_hesabi
Tüm SPN’leri Listeleme (PowerShell):
Get-ADObject -Filter {servicePrincipalName -like "*"} -Properties servicePrincipalName | Select-Object Name, servicePrincipalName
Active Directory ortamında SPN’ler, güvenli ve verimli kimlik doğrulama süreçleri için hayati bir role sahiptir. Ancak yanlış yapılandırılmış SPN’ler, güvenlik açıklarına ve operasyonel sorunlara neden olabilir. Bu nedenle, SPN’lerin doğru bir şekilde yönetilmesi, duplicate kayıtların tespiti ve kaldırılması gibi işlemler düzenli olarak gerçekleştirilmelidir.
Siz de SPN’lerinizi doğru yapılandırarak, Active Directory ortamınızın güvenliğini ve işleyişini optimize edebilirsiniz.
Last updated