Windows Server 2012 Ortamında ADMT ile Kullanıcı ve Grupların Farklı Forestlar Arasında SIDHistory ile Beraber Taşınması

Makalemizin bu bölümünde sizlere hali hazırda sahip olduğumuz bir trust yapısı üzerinden kullanıcı ve grup taşımayı anlatacağım.

Malum bundan önceki bölümlerde trust nedir, trust tipleri, teknik detaylar, forest trust ve external trust oluşturulması ve daha pek çok konuda bilgi paylaşımında bulunmuştum. Bu bölümlere aşağıdaki linklerden ulaşabilirsiniz.

Bu bölüm ise diğer bölümlerden tamamen bağımsız bir bölüm olup ADMT aracı ile iki forest arasında kullanıcı ve grup taşımayı anlatacağım.

Aslında bu konu Hakan hocam tarafından iki bölüm halinde çok detaylı incelenmiştir.

Tavsiyem mutlaka bu makaleleri okumanızdır.

https://www.cozumpark.com/blogs/windows_server/archive/2011/09/25/active-directory-migrartion-toolkit-le-kullan-c-ve-bilgisayar-ta-ma-giri.aspx

 

https://www.cozumpark.com/blogs/windows_server/archive/2011/10/23/active-directory-migrartion-toolkit-le-kullan-c-ve-bilgisayar-ta-ma-kullan-m.aspx

Ben ise malum Server 2012’ nin piyasaya çıkması ile bu taraftaki gelen çok küçük değişikliklerden bahsedeceğim. Aslında değişiklikten öte henüz araçlar hazır olmadığı için şu anda ADMT kullanmak biraz sıkıntılı bir durum. Ancak hali hazırda bazı projelerimizde biz bu tecrübeyi yaşadığımız için bunu paylaşmak istedim.

Tabiki bu işlem için öncelikle Active Directory ortamının buna hazır olması gerekmektedir. Bunun için benim elimde hali hazırda bir birleri arasında çift yönlü forest trust oluşturmuş iki domain bulunmaktadır.

 

 

image001

 

 

Bu yapının nasıl oluşturulduğuna dair bilgi yukarıdaki makale serisinde anlatılmaktadır.

Peki, temel olarak trust işlemlerini tamamladık ise buna ek olarak dns için küçük bir GPO uygulamamız gerekmektedir. Malum şu anda bizim istemci makineler “ping hakan” dersek bunu otomatik olarak domain suffix nedeni ile “ping hakan.cozumpark.local” olarak algılayacaklardır. Peki, ben fileserver1 isimli bir makineye ulaşmak istediğim zaman ve bu makine hakanuzuner.com domaininde yani diğer forest içerisinde ise bu durumda

Ping fileserver1 dersem bu = ping fileserver1.cozumpark.local olacak ve buna bir karşılık bulamayacağız. Oysaki

Ping fileserver1.hakanuzuner.com olsaydı karşılık bulacaktır. İşte böyle durumlardaki sorunları çözmek için istemci makinelerin “suffix search list” değerine ek yapmamız gerekmektedir.

Varsayılan değeri görmek için bir istemci makinede aşağıdaki gibi ipconfig çalıştırmanız yeterlidir

 

 

image002

 

 

Yukarıdaki şekilde “HuPC” isimli makinenin cozumpark.local domaininde olduğunu anlıyorum. Ve search listesinde sadece kendi domaini var.

Bende GPO ile aşağıdaki gibi bir değişiklik yapıyorum

Computer Config – Policies -> Administrative templates -> Network -> DNS Client

Bunun altındaki iki değeri değiştiriyoruz

 

 

image003

 

 

 

1 – Primary DNS Suffix

 

 

image004

 

 

Mevcut domain ismini yazıyoruz

2 – DNS Suffix Search List

 

image005

 

 

Burada ise sırası ile ilk olarak kendi domain ismimizi ve bir virgül ile trust oluşturduğumuz domain ismini yazıyoruz.

Evet, bu işlemi de tamamladığımıza göre artık ADMT aracının kurulumuna geçebiliriz.

İlk olarak ADMT için bir kullanıcı hesabı oluşturmamız gerekmektedir. Bu aslında mevcut bir hesap ile de olur ancak her iki domain’ in güveneceği bir hesap olacağından yeniden oluşturmakta fayda var. Burada tavsiye edilen bu hesabı hedef domain yani kullanıcıları alacak domainde açmaktır. Bende öyle yapıyorum.

Bizim kaynak domain ismi; cozumpark.local

Hedef domain ismi ise; hakanuzuner.com

Şimdi hakanuzuner.com üzerinde bir kullanıcı yapacağım ve bu kullanıcıyı her iki domain içinde “Domain Admins” grubu üyesi olarak atayacağım.

 

image006

 

 

Benzer şekilde cozumpark.local yani kaynak domain içinde yetkilendirme yapıyorum, ancak burası için domain admins grubu yerine built-in administrators grubu yeterlidir.

 

 

 

image007

 

 

 

Her iki domain içinde gerekli yetkileri vermiş bulunuyorum.

Şimdi sıra geldi ADMT kurulumuna. Bunun için hakanuzuner.com domaini içerisinde üye bir makineye ihtiyacımız var. Bir üye makine buluyoruz ancak bu üye makine server 2012 olamıyor. Çünkü bu makaleyi yazdığım kasım ayı itibari ile en son sürüm olan admt 3.2 ve PES 3.1 ne yazık ki server 2012 desteklemiyor. Bu nedenle tavsiyem 2008 r2 bir Member makine bulmanızdır. Ek olarak DLF ve FFL da 2008 R2 olmalıdır. Eğer Server 2012 FFL ve DFL’ a sahipseniz aşağıdaki komut seti ile bunu düşürebilirsiniz.

 

Set-AdForestMode -identity cozumpark.com -forestmode Windows2008R2Forest

Set-AdDomainMode -identity cozumpark.com -domainmode Windows2008R2Domain

Not; Eper şifre taşıma işlemini de yapmak istiyorsanız bu durumda kaynak domain ortamında da bir 2008 R2 DC bulunmalı. Çünkü PES 3.1 de Server 2012 de çalışmıyor. Ancak eminim ki çok kısa bir süre içerisinde bu her iki programında yeni sürümü çıkacak ve sizler benim gibi takla atmak zorunda kalmayacaksınız J

 

Buna ek olarak “admt” hesabı ile kurulumları yapıyoruz. Kurulumlar için SQL gereksinimi olduğunu unutmayalım lütfen.

 

ADMT 3.2

https://www.microsoft.com/en-us/download/details.aspx?id=8377

 

SQL Server 2008 Express için ise aşağıdaki linki kullanabilirsiniz

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=25052

Temel yüklemelerden biri olan .net ve benzeri gereksinimlerin tamam olduğunu düşünüyorum. SQL için her ne kadar kurulum adımlarını bildiğinizi düşünüyor olsam da hatırlatmakta fayda var J

 

image008

 

Sadece Database Engine servisi bize yeterlidir

image009

 

Instance olarak makine ismi yerine “SQLEXPRESS” seçiyorum ki bunu hatırlıyor olmanız gerekli, birazdan admt kurulumunda bizden sql server bilgisi istenirken instance bilgisi de istenecektir.

image010

 

SQL için hesap olarak admt için açtığım hesabı kullanıyorum

 

image011

 

Windows kimlik doğrulama yöntemi yeterli çünkü sadece admt için kurulum yapıyorum.

 

Evet, SQL kurulumundan sonra sıra geldi admt kurulumuna

 

ADMT için kurulum adımları aşağıdaki gibidir

image012

Veri tabanı bilgisini giriyoruz.

image013

 

Herhangi bir datamız yok 3.1 versiyonundan alınacak.

 

image014

 

Kurulum tamamlandı.

Taşıma işlemi sırasında bir kullanıcı şifrelerini de alacağımız için ek bir araca daha ihtiyacımız bulunmaktadır.

 

Password Export Server version 3.1 x86

 

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=10370

 

Password Export Server version 3.1 x64

 

https://www.microsoft.com/en-us/download/details.aspx?id=1838

 

 

Bu programı şifreleri alacağımız kaynak DC ye yüklüyoruz. Yani cozumpark.local içerisindeki herhangi bir DC ye. Ek olarak ADMT yüklü makine ile aralarında güvenli bir iletişim olması için bir şifreleme anahtarı oluşturmamız gerekmektedir. Bunu admt yüklü makinede aşağıdaki komutu çalıştırarak üretiyoruz

admt key /option:create /sourcedomain:cozumpark.local

/keyfile:”c:\PESKey\PES.pes” /keypassword:Abcd1234

 

image015

 

Şimdi bu key dosyasını PES kurulacak olan DC ye kopyalıyoruz ve kurulumu yapıyoruz. Bu işlemleri cozumpark domain admin grubu üyesi bir kullanıcı ile yapın.

image016

 

image017

PES anahtarının yolunu gösteriyoruz.

image018

 

Anahtar şifresiniz giriyoruz, komut setindeki şifre yani Abcd1234

 

image019

PES servis hesabının hangi active directory kullanıcı bilgisi ile çalışacağını belirliyoruz. Tavsiye edilen hedef domain kullanıcısıdır ki biz bunun için hali hazırda bir user tanımlamıştık.

 

image020

 

Buraya kadar kullanıcı işlemleri için gerekli olan alt yapıyı sağlamış olduk, ancak sunucu ve istemci makinelerde agent yüklenmesi için ADMT kullanıcı hesabının local admin olması gerekmektedir. Bunu pek çok yöntemi olmak ile beraber ben GPO üzerinden yapmayı tercih ediyorum ve istemci makinemde hakanuzuner içerisindeki admt kullanıcısını önce cozumpark domain içerisindeki bir gruba ekliyorum ve daha sonra restricted group yardımı ile bu grubu bu gpo yu alan makinelerde local admin yapıyorum.

 

image021

Grup işi tamam. Şimdi makineleri etkileyecek GPO oluşturuyorum

 

image022

 

Şimdide restricted group uyguluyorum

image023

 

image024

 

image025

 

Sonuç

 

image026

 

Peki, bu aşamayı da atlatmış olduk. Makineler ile ilgili olan bir diğer gereksinim ise Windows Firewall. Aslında bu kapalıdır diye düşünüyorum malum pek çok yönetim ve iletişim sorununa sebep oluyor ancak hala bazı şirketler iç network de dahi makinelerde Windows firewall’ u açık bırakıyorlar. Malum port bazlı çalışmaya çalışıyorlar ancak günümüz gerçeği bu pek mümkün değil. Bundan daha çok segmentasyon dediğimiz istemci makine parkuru ile sunucu makine parkuru arasına fiziksel bir firewall koymak çok daha mantıklıdır. Neyse özetle eğer firewall açık ise gpo ile bunu kapatmanız gerekli.

Peki, temel taşıma işlemlerine başlamadan önce son hazırlığımız ise SID Filter ile ilgili olacak.

 

 

 

SID History ve SID Filter

Active Directory ortamında trust ilişkisi kurduğunuz iki domain arasında kullanıcı taşımak isteyebilirsiniz. Bunun temel sebebi eski ve yeni domainler arasında sadece kullanıcı değil başta kaynak olmak üzere grupları ve pek çok ortak kullanılan objeyi de taşıyacaksınızdır. Buradaki mantık eski bir domain’ den yeni bir domain’ e geçiş işlemini gerçekleştirmektir. Eğer böyle bir durum yok ise yani eski kaynakları taşımayacaksanız zaten yeni domainde kullanıcıları bir kez daha açabilirsiniz.

Ancak gerçek hayat senaryolarında mevcut bu kullanıcı bilgileri çok önemli olduğu için hatta 100 ve üzeri kullanıcınızın olduğunu düşünürseniz sadece onlara yeni şifre bilgilerini vermek bile ciddi bir iştir.

Bu nedenle böyle bir geçiş işleminde doğru olan mevcut kullanıcıyı şifresi ile taşımak olacaktır. Ancak taşınacak tek şey şifre değildir, SID’ de taşınabilmektedir. SID bildiğiniz gibi kullanıcılar için kimlik numaraları olup hangi kaynak üzerinde yetkileri olduğu hep bu SID ye bağlıdır. Yeni domain’ e taşınan bir kullanıcı yeni bir SID olacaktır. Bu çok doğal bir durumdur çünkü bildiğiniz gibi bir SID aşağıdaki gibi bir numaradır

S-1-5-21-1659004503-193565697-854245398-1002

ID numarasını farklı segmentlere bölebilirsiniz. Örneğin aşağıdaki gibi:

 

S-1-5-21-D1-D2-D3-RID

 

S-1-5 standart bir ön ektir. Burada 1 sürüm numarasıdır ve NT 3.1 versiyondan bu yana hiç değişmedi. 5 ise SID’ nin NT tarafından atandığını gösteren tanımlamadır. 21 yine bir NT ön ektir. D1,D2,D3 ise domain ’e özgü olan 32-bitlik tanımlayıcı numaradır. Bir domain kurulunca D1’den D3’e kadar olan numara otomatik oluşur ve aynı domain içerisindeki bütün objeler için bu D1,D2,D3 değerleri aynı olur. En sondaki RID, relative identifier‘ın kısaltmasıdır. Ve SID numarası içerisinde ait olduğu objeyi benzersiz kılan ve diğer objelerden ayıran numaradır. Her yeni hesap benzersiz bir RID numarasına sahiptir. Hatta eski kullanıcı ile aynı isim ve bilgiler kullanılsa bile RID her zaman farklıdır. Dolayısıyla, yeni açılan kullanıcının adı eski kullanıcı ile aynı olsa da RID numarası farklı olacağı için eski kullanıcının haklarını hiçbir şekilde kullanamayacaktır.

Durum böyle olunca SID çok önemli bir değer olup kullanıcı için eski kaynaklara erişimde hayati önem taşımaktadır. Bu nedenle böylesi kullanıcı taşıma işlemlerinde biz mutlaka objenin eski SID numarasını da yeni domaindeki objeye taşımak isteriz. Bunu yapmamız kullanıcı için yeni domainden gelen bir objectSID yanında eski domainden gelen bir SIDHistory değeri oluşur. Bunu aşağıdaki komut ile kontrol edebilirsiniz

 

dsquery * -filter “&(objectcategory=user)(samaccountname=hakan)” -attr objectsid

 

image027

Yukarıdaki kullanıcı için SIDHistory yok, ancak makalenin ilerleyen bölümlerinde bunu görebileceğiz

Peki, SID taşımak için ne yapmak gerekli? Öncelikle SID Filter’ ı kapatmak gerekli.

 

External Trust için

 

Netdom trust TrustingDomainName /domain:TrustedDomainName /quarantine:No

/usero:domainadministratorAcct /passwordo:domainadminpwd

 

TrustingDomain = Kaynakların Olduğu

TrustedDomain= Kullanıcıların Olduğu

 

Bu iki kavram için lütfen aşağıdaki makaleyi detaylıca okuyunuz, çünkü buradaki kullanıcıların olduğu manası kullanıcı taşınma işlemi noktasında yanlış bir anlamaya neden olabilir. Aslında kullanıcıları trusting yani kaynakları açan yerden ki kullanıcıda bir kaynaktır alacaksınız.

 

netdom trust DomainA /D:DomainB /UD:DomainB\Administrator /PD:*

/UO:DomainA\Administrator /PO:* /Quarantine:No

 

2008 ve üstü için NO yerine N, YES yerine Y kullanıyoruz.

 

Forest Trust için ki benim yapımda forest trust olduğu için bu komutu çalıştıracağım.

 

Netdom trust trustingDomain /domain:trustedDomain /enableSIDhistory:yes

/usero:domainadministratorAcct /passwordo:domainadminpwd

Benim komutum bu senaryoda aşağıdaki gibidir

Netdom trust cozumpark.local /domain:hakanuzuner.com /enableSIDhistory:yes

/usero:administrator /passwordo:Password1

 

image028

 

Komut başarılı bir şekilde çalıştı.

 

Evet buraya kadar tüm temel hazırlıkları tamamladık. Bundan sonra ise aslında grup, kullanıcı ve bilgisayar hesabı taşımam gerekli, ancak makalemin başında da dediğim gibi Hakan CAN hocamız bu bölümleri çok detaylı bir şekilde yazdığı için ben tekrar aynı işlemleri yapmayacağım.

Buraya kadar temelde 2008 R2 üzerinde anlatılan ADMT aracının 2012 domainlerinde de kullanılması için gerekli olan hazırlıklardan ve konu hakkındaki bir takım temel kavramlardan bahsettim.

Bundan sonrası için taşıma işlemlerinde hiçbir fark yok buna emin olabilirsiniz J Ben bizzat bu denemeleri gerçekleştirdim ve server 2012 ortamında da çalıştığınız gördüm.

Umarım faydalı bir makale olmuştur.

Bir sonraki makalemizde görüşmek üzere.