«

»

Jun 16

Local Admin Parolalarının Group Policy ve Active Directory Kullanarak Merkezi Olarak Yönetimi

Merhaba,

GroupPolicy yardımıyla domain ortamımıza dahil olan bilgisayar ve sunucuları rahatlıkla yönetebilmekteyiz. Yakın zamana kadar GroupPolicy içerisinde bulunan özellik sayesinde (ComputerConfiguration–> Preferences–> Control Panel Settings altında bulunanLocalUsersandGroups) bilgisayarların localadministrator (ya da başka bir kullanıcı) parolalarını değiştirebilmekteydik. Ancak her ne kadar ayarı yaparken yazdığımız parola görüntülenmese de yayınlanan GroupPolicy içerisinden parolaya ulaşmak mümkün oluyordu. Microsoft bu güvenlik açığını KB2962486 numaralı güncelleme ile kapattı. İlgili KB sayfasına https://support.microsoft.com/kb/2962486adresinen ulaşabilirsiniz. Dolayısıyla artık bu özellik kullanılamaz durumda. Bunun üzerine ne yapılabilir şeklinde yaptığım araştırmada cevap yine Microsoft tarafından geldi. Çözüm ile ilgili sayfaya http://code.msdn.microsoft.com/windowsdesktop/Solution-for-management-of-ae44e789 adresinden ulaşabilirsiniz. Bu makalemde sizlere yukarıda ki linkte ki yapının kurulumunu anlatmaya çalışacağım.

Kuracağımız bu yapının faydalarını şöyle sıralayabiliriz,

  • Her bilgisayarın localadmin parolasının farklı olmasının sağlanması.
  • Her bilgisayarın localadmin parolasının sadece yetkili kullanıcı ya da grup tarafından görüntülenmesinin sağlanması.
  • Her bilgisayarın localadmin parolasının Active Directory üzerinde gizli bir alandatutulması nedeniyle yüksek güvenlik sağlanması.

Yapı temel olarak sunucu tarafı ve son kullanıcı tarafı olmak üzere iki bölümden oluşmakta. Bu makale kapsamında Active Directory ve GroupPolicy tarafında yapacağımız düzenlemelerin yanı sıra yapının düzgün çalışabilmesi için son kullanıcı bilgisayarına yüklenen bir bileşene ihtiyaç duyulmakta. Temel olarak bu bileşen bilgisayarın parolasının son değiştirilme tarihini kontrol etmekte ve zamanı geldiğinde yeni parolayı oluşturarak Active Directory sunucusunda saklanmasını sağlamaktadır. Yapı Active Directory ve GroupPolicy bileşenlerini kullandığı için localadministrator parolalarının yönetilmesi istenen bilgisayarların etki alanına katılmış olması gerekmektedir.

Parolalar Active Directory üzerinde gizli öznitelikler (attributes) içerisinde tutulmakta ve normal ACL (Access Control List) ler ile bu alan okunamamaktadır. Makalenin ilerleyen bölümlerinde bu alan için yapılan yetkilendirme çalışmasını görebilirsiniz. Parolalar Active Directory sunucusuna kerberos protokolü kullanılarak kriptolu bir şekilde iletildiğinden network sniffer tarzı uygulamalar ile network trafiğinin dinlemek fayda sağlamayacaktır. Bilgisayarların parolayı activedirectory üzerine sadece yazma yetkisi bulunmaktadır. Bu nedenle bilgisayar kötü niyetli bir kişi tarafından ele geçirilse dahi activedirectory üzerinde ki parolaları okuyamayacaktır. Parolalar Active Directory üzerinde her bir bilgisayarın ms-MCS-AdmPwd özniteliğinde (attribute) cleartext olarak saklanmaktadır. Ancak sadece yetkili kişiler tarafından burada ki veri okunabildiği ve activedirectory güvenli bir ortam sağladığı için uygulamayı geliştirenler ek bir kriptolama gereği görmemişler.

Yapı sayesinde bilgisayarlarda ki localadministrator parolaları ya da daha önceden oluşturulmuş olan farklı bir kullanıcı adının parolası yönetilebilmektedir. Bilgisayarlar üzerinde varsayılan olarak gelen administrator kullanıcısının adı değiştirilmiş dahi olsa sistem değiştirilen yeni kullanıcı adına ihtiyaç duymadan çalışabilmektedir.

Öncelikle sayfaya girdiğimizde aşağıda ki ekran görüntüsünde ki kırmızı kutu içerisinde olan Documentation.zip ve Installers.zip dosyalarını bilgisayarımıza indirelim.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_1

Not: Bu makale kapsamında yapılacak işlemler içerisinde Active Directory şemasının Extend edilmesi gerekmektedir. Active Directory şema extend işlemi geri alınamayacağı için adımlara başlamadan önce Active Directory sunucusunda Bare Metal Recovery (BMR) yedeğinin alınmasını öneriyorum.

Not:Active Directory SchemaExtend işleminde kullanılacak kullanıcının SchemaAdmins grubuna üye olması gerekmektedir.

Not: Sunucu ve client tarafına kurulacak olan uygulama .Net Framwork 4.0 üzerinde derlendiği için uygulamanın kurulacağı sistemler üzerinde .Net Framework 4.0 kurulu olmalıdır.

Uyarılarımızı yaptıktan ve gerekli olanları belirttikten sonra işlemlerimize başlayabiliriz.

Az önce indirmiş olduğumuz Installers.zip dosyasını açalım ve içerisinde bulunan AdmPwd_Adv.Setup.x64 isimli dosyayı Active Directory sunucumuza kopyalayıp çalıştıralım. Karşımıza çıkan welcome ekranını next ile geçelim. Bir sonraki ekran da sunucumuzaGroupPolicy eklentilerinin yüklenmesi için AdmPwd GPO Extension seçeneğini, Active Directory Schemaextend işlemi, GroupPolicy şablonu ve powershell komut eklentilerini yüklenmesi için Management Tools ve altında ki seçenekleri seçerekkuruluma hazır hale getirelim.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_3Yukarıda ki ekranda önce Next ardından karşımıza gelen ekranda da Installseçeneğine tıklayarak kurulumu tamamlayalım. Kurulumun tamamlanmasının ardından Active Directory sunucumuz üzerinde taskbar da bulunanPowershell ikonuna sağ tıklayıp Importsystemmodulesseçeneği ile çalıştıralım.

Not: Active Directory Schemaextend işlemini yapabilmek için işlemin yapılacağı kullanıcının SchemaAdmins grubuna üye olması gerekmektedir.

Not: Eğer Powershell komut satırını Importsystemmodules seçeneği ile açarken,

Import-Module : Could not load file orassembly ‘file:///C:\Windows\system32\WindowsPowerShell\v1.0\Modules\AdmPwd.ps\AdmPwd.PS.dll‘ orone of itsdependencies. Thisassembly is builtby a runtimenewerthenthecurrentlyloaded.

şeklinde bir hata alıyorsanız C:\Windows\System32\WindowsPowerShell\v1.0 içerisinde powershell.exe.config isimli bir metin dosyası oluşturalım ve içerisine aşağıda ki satırları yazıp kayıt edelim.

<?xmlversion=”1.0″?>

      <configuration>

         <startup useLegacyV2RuntimeActivationPolicy=”true”> 

           <supportedRuntimeversion=”v4.0.30319″/>

          <supportedRuntimeversion=”v2.0.50727″/> 

         </startup> 

      </configuration>

Tekrar Powershell komut satırını Importsystemmodules seçeneği ile açtığımızda yukarıda ki hata ile karşılaşmayacağız.

Active Directory SchemaExtend işlemi için Poweshell komut satırında Update-AdmPwdADSchema komutunu çalıştıralım. Ekran çıktısı aşağıda ki gibi olacaktır.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_4Active Directory şemasını extend işlemini tamamladıktan sonra yeni oluşturulan attributeların özelliklerinde düzenleme yapmamız gerekmekte. Bu işlem için Active Directory sunucumuz üzerinde ADSI EditTool u açalım ve açılan konsolda ADSI Edit ifadesine sağ tıklayıp açılan menüden Connect to… seçeneğini seçelim. Açılan Connection Settings ekranında Connection Point bölümüne gelelim ve “Select wellknownNamingContext” seçeneğine tıklayıp açılan menüden “Defaultnamingcontext” ifadesini seçelim ve ardından OK diyerek bağlantıyı oluşturalım.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_9Karşımıza gelen Defaultnamingcontext bölümünde bilgisayar hesaplarımızın bulunduğu OU ya (benim sistemimde ManagedComputers) sağ tıklayıpProperties diyoruz ve açılan ekranda Security sekmesine geçip bu sekmede Advanced a tıklayalım.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_10Not: Burada hem Windows Server 2012 hem de Windows Server 2008 R2 ortamları için ekran görüntülerini bulabilirsiniz.

Windows Server 2012 için

Açılan advanced penceresinde Grouporusernames bölümünde SYSTEM ifadesine tıklayalım ve ardından Edit e tıklayalım açılan pencere “Allextendedrights” ifadesinde ki işareti kaldıralım.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_11Benzer şekilde aynı işlemi Domain Admins için tekrarlayalım.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_12Son olarak açık olan tüm pencereleri OK e tıklayarak kapatalım.

Windows Server 2008 R2 için

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_13Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_14Bu işlemlerin ardından ilgili OU üzerinde (Benim yapımda ManagedComputers) ms-MCS-AdmPwdExpriationTime vems-MCS-AdmPwdattributelarınaSELF için write izni vermemiz gerekmekte. Bunun için daha önce ImportSystemModules seçeneği ile açmış olduğumuz Powershell komut satırında Set-AdmPwdComputerSelfPermission -OrgUnit ” Bilgisayarların bulunduğu OU adı” komutunu çalıştıralım. Ekran görüntüsü aşağıda ki gibi olacaktır.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_15Yukarıdaki işlemin ardından sıra ms-MCS-AdmPwdattribute u üzerinde CONTROL_ACCESS yetkisi olacak olan (ki bu kullanıcı ya da grup clientlarınlocaladministrator parolalarını görüntüleyebilme yetkisi sahip olacaklar) kullanıcı ya da grubu yetkilendirmeye geldi. Benim tavsiyem burada grup kullanmanız. Böylece parolaları okumasını istediğiniz ya da istemediğiniz kullanıcıları gruba ekleyip çıkararak erişim denetimini çok daha rahat sağlayabilirsiniz. Bu işlem için Powershell komut satırında Set-AdmPwdReadPasswordPermission -OrgUnit “bilgisayar hesaplarının bulunduğu OU nun adı” -AllowedPrincipalsGrubunAdıkomutunu çalıştırmamız yeterli olacaktır. Ekran görüntüsü aşağıda ki gibidir.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_16Yetkilendirme işlemlerinde son olarak ms-MCS-AdmPwdExpritaionTimeattributena parolaları resetleme yetkisi olacak olan kullanıcı ya da grubu belirlememiz gerekiyor. Bunun için Powershell komut satırında Set-AdmPwdResetPasswordPermission -OrgUnit “bilgisayar hesaplarının bulunduğu OU nun adı” -AllowedPrincipalsGrubunAdıkomutunu çalıştırmamız yeterli olacaktır. Ekran görüntüsü aşağıda ki gibidir.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_17Yetkilendirme işlemlerinin ardından bilgisayar hesaplarının parolalarını değiştirebilmek için ManagedComputers OU su üzerinde “LocalAdminPassword” isimli bir grouppolicy oluşturalım. Oluşturduğumuz grouppolicyyiedit diyerek açalım ve ComputerConfiguration–> Policies–> Administrative Templates–> AdmPwd bölümüne gelelim. Sağ tarafta bulunan iki ayardan PasswordSettings seçeneğini çift tıklayarak açalım. Bu bölümde localadmin parolalarının PasswordComplexity , PasswordLength ve Password Age ayarlarını yapabiliriz. Ben kendi ortamımdaPasswordComplexity bölümünü “Largeletters + smallletters + numbers + specials” olarak bıraktım. PasswordLength bölümü varsayılan olarak 12 ile gelmekte ve daha azı ayarlanamamakta. Bu bölümü 12 olarak bıraktım. Son olarak Password Age bölümünü de 30 gün olarak belirleyip Ok diyerek ayar penceresini kapatalım. Ekran görüntüsü aşağıda ki gibidir.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_18Diğer bir ayar olan Administrator account name seçeneğini de çift tıklayarak açalım ve Enable ettikten sonra “Administrator account name” bölümüne bilgisayarlarda kullanılan localadmin hesabının adını yazalım. Ben bu bölümü Administrator olarak belirledim ancak sizin sistemlerinizde farklı bir localadmin hesabı mevcut ise onun ismini kullanabilirsiniz. Ekran görüntüsü aşağıda ki gibidir.

Not: Eğer localadministrator kullanıcısının adı değiştirilmiş ise burada yeni adın girilmesine gerek yoktur. Sistem kendisi kullanıcıyı tespit edecektir.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_19GroupPolicy öğemizi oluşturduktan sonra bu öğenin client tarafında ki uygulamayıtetiklemesi için register işleminin yapılması gerekmekte aksi halde parola oluşturduğumuz grouppolicy çalışmayacaktır. Bu işlem için Powershell komut satırındaRegister-AdmPwdWithGPO -GPOIdentity:GPOnun adı komutunu yazıp çalıştırmamız yeterli olacaktır. Ekran görüntüsü aşağıda ki gibidir.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_20Son olarak kullanıcı bilgisayarlarında ki localadmin parolalarına kim erişmiş kayıtlarını tutmak için auditing in açılmasıfaydalı olacaktır. Bunun için Powershell komut satırında Set-AdmPwdAuditing -OrgUnit:”Auditing yapılacak OU nun adı” -AuditedPrincipals:”Audit edilecek kullanıcı ya da grup” komutunu çalıştırmamız yeterli olacaktır. Ekran görüntüsü aşağıdadır.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_21Sunucu tarafında ki işlemi bitirdikten sonra son kullanıcı bilgisayarı tarafında ilgili grouppolicynin çalışabilmesi için gerekli olan ve işletim sistemi yapısına göre değişen  AdmPwd_Adv_Setup.x86.msi ya da AdmPwd_Adv_Setup.x64.msi uygulamalarının sadece AdmPwd GPO Extensions seçeneği ile kurulması gerekmektedir. Kurulum elle yapılabileceği gibi ortamınızda var ise SCCM üzerinden de uygulamadağıtılabilir. Kurulum sırasında ki ekran görüntüsü aşağıda ki gibi olacaktır.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_22Benzer şekilde bilgisayar parolalarını görecek kullanıcıların bilgisayarlarına da tam kurulum yapmamız gerekmektedir. İlgili ekran görüntüsü aşağıda ki gibidir.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_3Kurulumun ardından bir bilgisayarın localadmin parolasını görüntülemek için tam kurulum yapılmış bir bilgisayarda “AdminPassword Management UI” uygulamasını açalım veComputername bölümüne localadministrator parolasını öğrenmek istediğimiz bilgisayarın adını yazıpSearch seçeneğine tıklayalım. Bu işlemin ardından Password  bölümünde ilgili bilgisayarın localadministrator parolasını ve Passwordexpires bölümünde ise parolanın süresinin ne zaman dolacağını ve değiştirileceği tarihi görebiliriz. Eğer bilgisayarın localadministrator parolasının hemen değiştirilmesini istiyorsak New expiration bölümünü BOŞ bırakıpSet seçeneğine tıklamamız yeterli olacaktır. Bir sonra ki grouppolicy güncellemesinde bilgisayarın localadministrator parolası değiştirilecek ve yenisi Active Directory üzerine kayıt edilecektir. Ekran görüntüsü aşağıda ki gibidir.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_23Herhangi bir bilgisayar hesabı için sorgu yapıldığında Active Directory sunucusu üzerinde Security Eventleri arasına bu erişimin kaydı Directory Service Access kategorisi altında kayıt edilecektir. Böylece hangi kullanıcının hangi bilgisayarın localadministrator parolası için sorgu yaptığı kayıt altında tutulabilir. Ekran görüntüsü aşağıda ki gibidir.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_25Eğer uygulamayı kullanan kullanıcı kurulum sırasında belirlenmiş olan gruba üye değil ise uygulamayı çalıştırıp herhangi bir bilgisayar adını kullanarak search işlemini gerçekleştirdiğindePassword bölümü boş gelecektir. Ekran görüntüsü aşağıda ki gibidir.

Local Admin Parolalarının Group Policy ve Active Directory İle Merkezi Olarak Yönetimi_24Bu makalemde sizlere Localadministrator parolalarının grouppolicy ve activedirectory kullanarak merkezi olarak yönetilmesini anlatmaya çalıştım.

Faydalı olması dileğimle…

Permanent link to this article: http://www.mhakancan.com/local-admin-parolalarinin-group-policy-ve-active-directory-kullanarak-merkezi-olarak-yonetimi/

3 comments

1 ping

  1. İsmail Dere

    Merhaba Hakan Bey,

    1. Server 2012R2 de “bilgisayar hesaplarımızın bulunduğu OU ya (benim sistemimde ManagedComputers” dediğiniz userların bulunduğu ve benim manuel oluşturduğum OU dan mı bahsediyoruz. Çünkü Computers diye container var ve orayada söylemiş olduğunuz izinlerle alakalı işlem yapamıyorum.
    2. Register-AdmPwdWithGPO -GPOIdentity:GPOnun adı komutunu çalıştıramıyorum. Böyle bir komut bulamıyor.
    Register-AdmPwdWithGPO : The term ‘Register-AdmPwdWithGPO’ is not recognized as the name of a cmdlet, function, script
    file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct
    nd try again.
    At line:1 char:1
    hatası vermekte.

    1. M. Hakan CAN

      Merhaba İsmail Bey,

      İlk sorunuzun cevabı kullanıcılarınızın değil bilgisayar hesaplarınızın bulunduğu OU için bu işlemleri yapmamız gerekiyor. Benim yapımda varsayılan olan Computers kabından farklı bir OU olarak Managed Computers isimli bir OU bulunmakta. Eğer bilgisayar hesaplarınız ile kullanıcı hesaplarınız aynı ou da ise bunları ayrı ayrı ou lara taşımanızı öneririm.

      İkinci sorunuzda ise komutu çalıştırdığınız powershell komut satırını Run As Administrator ile açtınız değil mi?

  2. Niyazi Aygün

    Teşekkürler Hakan hocam:)

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>