Microsoft’un son nesil işletim sistemi Windows Server 2012 R2 ile active directory domain servislerinde gelen güvenlik yeniliklerinden biri de “Authentication Policy (Kimlik doğrulama politikaları) ve Authentication Policy Silo (Kimlik doğrulama politika depoları)” yapı taşlarıdır. Bu yapı taşları sayesinde hesapların tanımlanan kuralların dışında hareket etmesi engellenmektedir. Özellikle yüksek seviyede yetkiye sahip kullanıcı hesapları ile belirlenen sistemlerde ya da aygıtlarda kullanılabilmesi ya da bu aygıtlardan erişim yapılabilmesi gibi kısıtları sağlamaktadır. Silo tanımlamaları ve Authentication Policy yönetimi active directory içerisinde Active Directory Administrative Center yönetim konsolu ve Active Directory Windows PowerShell cmdlet’ler kullanılarak gerçekleştirilmektedir.
Öncelikle Authentication Policy Silo kavramını biraz açalım. Authentication Policy Silo, sistem yöneticileri tarafından kullanıcı hesabı, bilgisayar hesabu ya da servis hesaplarının atandığı konteynır ya da kap olarak işlev gören yapılardır. Böylece belli hesapların o konteynır ya da kaba uygulanan kimlik doğrulama politika kuralları ile yönetilmeleri ve bu kurallara uygun aksiyon göstermeleri sağlanmış olacaktır. Bu sayede sistem yöneticilerinin kullanıcı hesabı seviyesinde kaynaklara erişimi izleme gereksinimi de azalmış olacak, kötü niyetli kullanıcıların hesap bilgilerini çalarak kaynaklara erişimi de önlenecektir.
Windows Server 2012 R2 ile gelen yeteneklerle özellikle Enterprise Admins, Schema Admins, Domain Admins ve Administrators gibi yüksek seviyede yetkiye sahip kullanıcı hesaplarının authentication policy silo yapı taşları ile kontrol altına alınması ve yönetilmesi hedeflenmiştir. Böylece belirttiğimiz gruplara üye kullanıcı hesaplarının domain içerisinde kullanılabilecekleri alanlar, konumlar, sistemler ya da aygıtlar sınırlandırılmıştır. Authentication Policy Silo yapı taşlarına ilave olarak bu hesapları active directory domaininiz içerisindeki “Protected Users” grubuna da üye yaparak düşük seviyeli kimlik doğrulama protokolleri ve kriptolama algoritmalarının kullanıldığı ortamlardan erişim sağlanmamasını da garanti altına alarak daha güvenli bir ortam oluşturabilirsiniz. “Protected Users” grubunu ayrı bir makalede detaylarıyla ele alıyor olacağız.
Bir diğer bakış açısı ile domain seviyesinde uygulanan Default Domain Policy ayarlarından gelen 10 saat kullanım süresi olan TGT ya da Protected Users grubuna üye olduktan sonra 4 saat kullanım süresi olan TGT sizin ihtiyaçlarınızı karşılamıyorsa Authentication Policy size daha özel TGT ticket kullanım süreleri belirlemenize olanak sağlamaktadır.
Protected Users grubuna üye yapılması önerilmeyen yönetilen servis hesabı ya da bilgisayar hesapları için korumayı etkinleştirmek istiyorsanız Authentication Policy yapıları bu ihtiyacınızı karşılayacaktır.
Authentication Policy ve Silo yapıları ile yüksek değere sahip hesapların güvenlik ve yönetim anlamında sadece yüksek değere sahip sistemler ya da aygıtlar üzerinden erişimine izin vermiş olacaksınız. Örnek olarak oluşturacağınız, “Tam Yetkili Hesaplar Silo” yapı taşı ile Enterprise, Schema ve Domain Admins hesaplarını kontrol altına alabiliriz. Ve bu siloya uygulanacak kimlik doğrulama politikalarında da domain controller sunucuları ve domain administrator konsolları haricindeki erişim noktalarından şifre (password) ya da smart kart tabanlı kimlik doğrulama yöntemleri ile erişimi kapatabilirsiniz.
Authentication Policy Silo içerisinde hangi hesapların kısıtlanacağı ve bu silonun üyelerine uygulanacak kimlik doğrulama kuralları tanımlanır. Silolar organizasyon yapınızın ihtiyaçlarına göre tanımlanır ve oluşturulurlar. Aşağıdaki tabloda active directory schema içerisinde kullanıcılar, bilgisayarlar ve servisler için tanımlanmış silo listesini görmektesiniz:
Display Name (Görünen İsim) |
Tanımı |
Authentication Policy Silo |
Atanacak kullanıcı, bilgisayar ve servislere Authentication policy ve ilgili davranışlarını tanımlamak için oluşturulan nesne sınıfı (class). |
Authentication Policy Silos |
Authentication Policy Silo nesnelerini içeren kap. |
Authentication Policy Silo Enforced |
Authentication Policy Silo’nun zorla uygulanıp uygulanmayacağını belirler. Zorlanmadığı durumda varsayılan olarak policy denetim yani audit modunda çalışır. Başarılı ve başarısız olaylar kaydedilir, fakat sisteme koruma uygulanmaz. |
Assigned Authentication Policy Silo Backlink |
msDS-AssignedAuthNPolicySilo özniteliği (attribute) için back link tanımıdır. |
Authentication Policy Silo Members |
Authentication Policy Silo’ya atanan hesapları tanımlar. |
Authentication Policy Silo Members Backlink |
msDS-AuthNPolicySiloMembers özniteliği (attribute) için back link tanımıdır. |
Kimlik Doğrulama Politikaları (Authentication Policy):
Authentication Policy nesneleri Kerberos protokolü tarafından sağlanan ticket için (TGT – Ticket Granting Ticket) yaşam ömrü özellikleri ve hesap tipleri için erişim kontrol şartlarını tanımlamak için kullanılır. Authentication Policy ile yapılan kontroller:
Hesaba ait ticket için (TGT) yaşam ömrü yenilenemez olarak ayarlanabilir.
Aygıta oturum açmak için kriter olarak password ya da sertifika kriteri konulabilir.
Kullanıcı ve aygıtların servislere erişimi için kimlik doğrulama sürecine ait belli gereksinim kriterleri uygulanabilir.
Authentication Policy tanımlamalarında kullanılan hesap tipleri:
Kullanıcı Hesapları
Servis Hesapları
Bilgisayar Hesapları
Kullanıcı Hesapları : Koruma altına alınacak yüksek yetki seviyesine sahip kullanıcı hesaplarının mutlaka Protected Users grubuna üye yapılması önerilir. Böylece NTLM gibi zayıf kimlik doğrulama kullanımları kabul edilmeyecektir. Authentication Policy ile kullanıcılara atanan TGT ticket’ın kullanım süresi daha düşük değerlere ayarlanabilir, sadece belli aygıtlardan oturum açabilme ya da erişim yapabilmeye zorlanabilir. Bu temel senaryoların dışında özellikle kimlik doğrulama süreci için karmaşık kriterler de etkinleştirilebilir.
Servis Hesapları : Koruma altına alınacak yönetilen servis hesapları bu kategoriye girmektedir. Yönetilen servis hesapları ile ilgili olarak aşağıdaki makalelerden de detaylı bilgi alabilirsiniz:
Windows Server 2012 R2 İle Stand-Alone Yönetilen Servis
Hesapları
Windows Server 2012 R2 ile Group Managed Service Accounts-1
Windows Server 2012 R2 ile Group Managed Service
Accounts-2
Authentication Policy yapılarında kullanılan servis hesapları : stand-alone servis hesapları (MSA), group managed servis hesapları (Gmsa) ve bu iki tip servis hesabından türemiş özel hesaplar. Politikalarla bir aygıtın erişim kontrol şartları belirlenerek yönetilen servis hesabı bilgilerinin kullanımı sadece spesifik aygıtlarla sınırlandırılabilir. Servis hesaplarının kesinlikle Protected Users grubuna üye yapılması önerilmez, çünkü tüm gelen kimlik doğrulama istekleri başarısızlıkla sonuçlanacaktır.
Bilgsayar Hesapları : Koruma altına alınacak bilgisayar hesapları ya da bilgisayar hesabı nesnesinden türetilen özel hesap tipleri bu kapsama girer. Politikalarla erişim kontrol şartları belirlenerek, kullanıcının kimlik doğrulamasına kullanıcı ya da aygıtın özellikleri baz alınarak sınırlılıklar getirilebilir. Bilgisayar hesaplarının da kesinlikle Protected Users grubuna üye yapılması önerilmez, çünkü tüm gelen kimlik doğrulama istekleri başarısızlıkla sonuçlanacaktır. Varsayılan olarak NTLM kimlik doğrulama istekleri reddedilir. Diğer yandan bilgisayar hesapları için TGT ticket yaşam ömrü ya da geçerlilik süresi yapılandırılamaz.
ÖNEMLİ NOT: Authentication Policy sadece belli hesaplara uygulanacaksa bu durumda Silo kullanmadan doğrudan hesaba ilişkilendirilerek de etkinleştirilebilir.
Ortam Gereksinimleri:
Active Directory domain yapısı içerisindeki tüm domain controller sunucular Windows Server 2012 R2 versiyonunda çalışmalıdır.
Active Directory domain fonksiyonel seviyesi Windows Server 2012 R2 seviyesinde olmalıdır.
NOT: Active Directory forest fonksiyonel seviyesi için bir gereksinim zorunluluğu yoktur.
Domain Controller sunucular için Dynamic Access Control (DAC) desteği yapılandırılmalı ve ilgili ayarlar Domain Controllers OU’suna GPO olarak uygulanmalıdır. Bu amaçla aşağıdaki GPO ayarını Default Domain Controllers Policy içerisinden Computer ConfigurationàAdministrative TemplatesàSystemàKDC altından “KDC support for claims, compound authentication, and Kerberos armoring” ayarını etkinleştiriyoruz.
Yukarıdaki adımla Domain Controller sunucular için Dynamic Access Control(DAC) desteğini etkinleştirdikten sonra, domaine üye Windows 8, Windows 8.1, Windows Server 2012 ve Windows Server 2012 R2 sistemler için de Dynamic Access Control (DAC) desteği için Kerberos claim (device claim) yapılandırmasının da yine uygun GPO üzerinden aktifleştirilmesi gerekir. Bunun için de ben Default Domain Policy GPO’su içerisinden Computer ConfigurationàAdministrative TemplatesàSystemàKerberos altından “Kerberos client support for claims, compound authentication, and Kerberos armoring” ayarını etkinleştiriyorum. Siz bu ayarı sadece uygulamak istediğiniz Windows 8, Windows 8.1, Windows Server 2012 ve Windows Server 2012 R2 bilgisayar hesaplarının bulunduğu OU’ya da bağlayabilirsiniz.
Authentication Policy Yapılandırmaları:
Bu başlık altında da adım adım authentication policy ve authentication policy silo yapılarının oluşturulmasını ve uygulanmasını gerçekleştirerek admin yetkisine sahip hesapların sadece belli bilgisayardan sistemlere erişime zorlayarak kısıtlamış olacağız.
Authentication Policy ve Silo yapılandırmaları Active Directory Administrative Center (ADAC) yönetim konsolu üzerinden gerçekleştirilir.
Bunun için ilgili konsolu dsac.exe aracı ile açıyoruz.
ÖNEMLİ NOT : Authentication Policy ve Silo yapılandırmaları Active Directory Users and Computers konsolundan (dsa.msc) yönetilemez.
ADAC konsolunu açtıktan sonra ilk olarak authentication policy silo ve authentication policy oluşturuyoruz. Bu sayede hedeflediğimiz kapsamı tanımlıyor olacağız. Varsayılan durumda herhangi bir silo ya da policy tanımı bulunmamaktadır.
İlk olarak Authentication Policy tanımını yapıyoruz. Bunun için Authentication Policies altında iken Tasks panosundan ya da sağ tuş kısayolu ile Newà Authentication Polices tıklıyoruz.
Karşımıza Create Authentication Policy form ekranı gelecektir.
Burada Display Name kutusunu authentication policy için bir isim tanımlaması giriyoruz. Organizasyon isimlendirme standartlarınıza göre uygun bir görünen isim belirleyebilirsiniz.
Hemen sol bölümde gelen User kategorisine tıklayarak “Specify a Tciket Granting Ticket lifetime for user accounts” seçeneği ile 45 ile 2147483647 (231-1) aralığında dakika cinsinden TGT kullanım süresi belirleyebilirsiniz. Ben şu anda 120 dakikalık süre tanımlıyorum.
Bu ayardan sonra OK ile onaylıyoruz. “Admin Erisim Politikasi” isimli politikamız Authentication Policies altına geldi.
Şimdi de Authentication Policy Silo oluşturacağız. Bunun için de yine ADAC konsolu içerisinde Authentication Policy Silos altında iken Tasks panosundan ya da sağ tuş kısayolu ile Newà Authentication Policy Silo tıklıyoruz.
Yine öncelikle silo için bir görünen isim (Display Name) tanımı yapıyoruz. Bu senaryoda “Admin Silo” isimli tanımımı giriyorum. Ve Silo politikalarının uygulanmasına zorlamak için “Enforce silo policies” seçeneğini seçiyorum. Bu seçenek yerine “Only audit silo policies” seçilmesi durumunda koruma yerine sadece izleme modunda politikalar aktif olacaktır. Yine Permitted Accounts kategorisi altından admin yetkisine sahip kullanıcıların kullandığı bilgisayar hesaplarını ve admin yetkisine sahip kullanıcı hesaplarını listeye Add ile ekliyoruz.
Aynı ekranda Authentication Policy altından “Use a single policy for all principals that belong to this authentication policy silo” seçeneği seçili iken The authentication policy that applies to all accounts in this silo etiketinin yanında gelen liste kutusundan bu siloya uygulanacak authentication policy nesnesini gösteriyoruz. Aşağıdaki şekilde de görüldüğü gibi biz biraz önce oluşturduğumuz “Admin Erisim Politikasi” isimli authentication policy seçiyoruz.
OK ile onaylıyoruz. Authentication Policy Silo konsolda listelendi.
Şimdi de politikanın atanmasını gerçekleştireceğiz. Bu aşamaya kadar henüz authentication policy silo uygulanmış durumda değil. Policy Silo ataması bizim kontrolümüzde manuel olarak gerçekleştirilen bir süreçtir. Policy ataması için yine ADAC konsolu içerisinde oluşturduğumuz Admin Silo isimli Authentication Policy Silo üzerine çift tıklayarak karşımıza gelen Authentication Policy Silo form arayüzünden gerçekleştirilir. Bu ekranda Permitted Accounts altında politikayı etkinleştirmek istediğimiz hesap üzerine çift tıklayarak hesabın özelliklerine gidiyoruz.
Hesap özelliklerinde Silo sekmesine geçiyoruz. Authentication Policy Silo kategorisi altından Assign Authentication Policy Silo seçili iken bu hesabı ilişkilendirmek istediğimiz silo’yu liste kutusundan seçiyoruz.
OK ile onaylıyoruz.
Bu adımları Permitted Accounts listesinde bu politikalardan etkilenmesini istediğiniz tüm hesaplar için ayrı ayrı uygulayabilirsiniz. Bu uygulama ile aslında bu hesaplar için msDS-AssignedAuthNPolicySilo isimli özniteliği (attribute) yapılandırmış olduk.
ADAC konsolundan grafiksel arayüz ile bu atama her hesap için ayrı ayrı gerçekleştirilmesi gerekir. Toplu atamalar için Set-ADAccountAuthenticationPolicySilo isimli PowerShell cmdlet kullanılabilir.
Şimdi uyguladığımız Authentication Policy kuralının testini gerçekleştirelim.
Oturum açma sürecinden sonra KDC tarafından atanan kerberos ticket geçerlilik süresinin Authentication Policy içerisinde belirlediğimiz gibi 120 dakika yani 2 saat olarak geldiğini görüyoruz.
Öncelikle FullAdmin kullanıcısı ile Permitted Accounts listesine eklediğim Windows 8.1 işletim sisteminden oturum açmaya çalıştığımız başarıyla gerçekleştiğini, fakat policy silo kapsamı dışındaki sistemlerden ise oturum açmak istediğinizda aşağıdaki hata ile karşılaştığınızı göreceksiniz:
Windows PowerShell İle Authentication Policy Yapılandırmaları:
Authentication Policy ve Silo yönetimi için kullanılan cmdlet listesini aşağıdaki şekilde elde edebilirsiniz:
Öncelikle Domain Admins grubuna üye olan hesapları “Protected Users” grubuna da üye yaparak koruma altına alıyoruz. Bunun için aşağıdaki şekilde görülen cmdletleri sırayla çalışıtırıyoruz:
Aşağıdaki adımda da AuthenticationPolicy’ye “ad://ext/AuthenticationSilo” claim ID için silo eşleştirmesi gerçekleştirerek hangi aygıtlardan işlem yapılacağını belirledik.
Aşağıdaki cmdlet komutları ile de hem Authentication Policy hem de Authentication Policy Silo nesnelerini Enforce moduna aldık:
Bu adımdan sonra test ettiğimizde 2 saatlik TGT atamasının gerçekleştiğini görmüş olacağız. Bu ve benzeri çoğu senaryoyu ihtiyacınıza göre GUI ya da PowerShell cmdletler kullanılarak etkinleştirebilirsiniz.
ÖZETLE :
Microsoft’un son nesil işletim sistemi Windows Server 2012 R2 ile active directory domain servislerinde gelen güvenlik yeniliklerinden biri de “Authentication Policy (Kimlik doğrulama politikaları) ve Authentication Policy Silo (Kimlik doğrulama politika depoları)” yapı taşlarıdır. Bu makalemizde bu yapı taşlarını nasıl kullandığımızı uygulamalı olarak inceledik. Bir sonraki makalemizde görüşmek üzere.