Monday, December 25, 2006

Politika Yönetimi Scripting Örnekleri

AD (Active Directory) veritabanı ile ağımızdaki tüm objeleri bir veritabanında topladıktan sonra, Group Policy Object (GPO) olarak adlandırılan politikalar ile objelerimizi yönetiyoruz. Bu makalede politikalar ile ilgili problemleri çözmede veya
GPO’ların durumlarını sorgulayabileceğimiz scriptlere değineceğim.
Bu scriptler yardımıyla çok sık karşılaşılan politika (gpo) problemlerini çözebilir, yarattığınız fakat artık kullanılmayan politikalarınızı bulabilir, tüm politikalarınızı yeniden yetkilendirebilir veya uygulanan politika ağacını çıkarabilirsiniz. Ayrıca kendi yazdığınız uygulamalarınız içinde de bu scriptleri kullanabilirsiz.
Devamı için sizi sitemize alalım :) http://www.mshowto.org/

Thursday, December 21, 2006

DNS Üzerinde Geçerli Olmayan Kayıtların Tanımlanması ve Temizlenmesi (DNS Aging/Scavenging)

Bu makalede DNS üzerindeki kaynak kayıtlarını (Resource Records- RR) güncel tutmak amacıyla, zone üzerindeki geçerli olmayan kayıtların (stale records -belirli bir suredir güncellenmeyen kayıtlar) otomatik olarak nasıl tanımlanacağını ve bu kayıtların nasıl silineceğine değineceğim. Bu işleme DNS aging/scavenging özelliği deniliyor.
Dinamik update özelliği ile birlikte, istemcinin dns kaydı (Resource Record-RR) DHCP tarafından veya belli periyodlar ile istemci tarafindan (dnsclient servisi) güncellenir. Fakat dinamik olarak yaratılmış bu kayıtlar, istemcinin ağa uzun süre veya bir daha hiç dahil olmayacağı durumlarda otomatik olarak silinemez. Bu yanlış kayıtlar DNS üzerinde yer kaplamasının yanında sorgularda olmayan makineleri döneceği icin zamanla baş ağrıtır ve dns performansını düşürür.
Öncelikle DNS'in aging/scavenging özelliğini doğru bir sekilde kullanabilmek için kayıtlarınızın dinamik olarak güncelleştirilebiliyor olması gerekiyor. Dinamik güncelleştirmenin kapalı olduğu zone’lar ve manuel yaratılan kayıtlar için bu mekanizmayı kullanamazsınız. DNS’in bu özelliğini verimli olarak kullanabilmek için terminolojisini de iyi anlamak gerekiyor.
DNS Aging, dns üzerinde kayıtlar için bir time stamp oluşturulması ve tanımlanan süreler için bu kaydın nitelendirilmesi işlemine deniliyor. DNS scaveng işlemi ise, bu nitelendirme işlemi sonunda stale records (bayat – belirtilen süre kadar güncellenmemiş) olarak nitelendirilen kayıtların temizlenmesi işlemidir.

Makalemin devamını okumak için tıklayınız.

http://mshowto.org/index.php?option=com_content&task=view&id=180&Itemid=70



Friday, November 24, 2006

Domain bazında EFS kullanımının engellenmesi.

Büyük organizasyonlar EFS (Encrypting File System) kullanarak dosya şifrelemek yönetimsel bazı sorunları doğurabiliyor. Varsayılan olarak domain kurulduğunda Domain Administrator kullanıcısı Data Recovery Agent olarak tanımlanır ve private key'i ilk kurulan bu domain controller'da tutulur. Fakat ilk kurulan Domain controller'in yeniden kurulması gibi durumlarda DRA'nın private key'inin yedeğinin alınması bir çok kere unutuluyor. Eğer kullanıcının local de saklanan private key'i de istemcisinin yeniden kurulması veya profile'nın silinmesi sonrasında kullanıcının encrypt ettiği dosyalara erişim imkansız hale geliyor. Veya kullanıcının user account'unun tamamen silinmesi gibi..

Milli açık anahtar altyapısını kullanmamız nedeniyle EFS'den ayrı bir şifreleme yazılımımız var. Bu sertifikalar için bir ortamda CA olduğu için EFS kullanımı gereksiz olabiliyor. Bu yüzden EFS'i domain bazında kullanımını engelleyeceğiz.

EFS'in tamamen disable edilmesi, hem encryption hem de decryption işlemini engelleyecektir. Yani kullanıcılar bilerek veya bilmeyerek encrypt ettikleri dosyalar varsa, politikanın uygulanması sonrasında bu dosyalara erişemeyeceklerdir.

EFS'i disable için Public Key Policies altında Encryptin File System'e sağ tıklayın ve properties'i açın ve "Allow Users to encrypt file using Encrypting Files System (EFS)" check box'ı kaldırın.

Fakat bu politika diğer politikalar gibi uygulanma sırası önemli değildir. Yani bilgiayara uygulanan herhangi bir politikada disallow yapılması, sonrası uygulanan tüm politikalarda Allow olsa bile EFS bilgisayarda kullanılmayacaktır. Bir nevi security'deki Deny gibi davranıyor.

Kullanıcı politika sonrasında dosyalarını tekrar isteyebilir. Bu durumda mutlaka bilgisayarı uyguladığınız politikadan etkilenmeyen bir OU'ya taşıyarak kurtarabilirsiniz. Bu yüzden bu politikayı, üst OU'larda değilde hiyerarşik olarak daha alt OU'lara uygulayın ve sorun durumunda biligisayar hesabını bir üst OU'ya move edip, gpupdate /force işlemini yapın.

Tuesday, November 14, 2006

Etki Alanında Bilgisayar Hesabı Şifresi Nasıl Resetlenir ve Bu İşleme Ne Zaman İhtiyaç Duyulur?

Bir windows tabanlı bilgisayarı etki alanına (domain) kattığınızda etki alanı veritabanında bu bilgisayar için bir hesap yaratılır. Aynı anda kimlik denetimi (authentication) güvenliğinin olması için bu hesap için bir de şifre (LSA Secret) oluşturulur. Bu şifre hem bilgisayar üzerinde hem de etki alanı veritabanında saklanır.

Güvenlik nedeni ile bu şifre, ait olduğu bilgisayar tarafından belli aralıklar ile değiştirilir. Varsayılan olarak bu süre 30 gündür. Bilgisayar, şifre geçmişinde (password history) geçerli şifreyi ve bir önceki şifreyi tutar. Bilgisayar şifreyi değiştirdiğinde, sunucu veya diğer etki alanı bilgisayarı ile kimlik denetimi yaparken sunucu bu değişikliği henüz algılamadığı için bir önceki şifreyi kullanır ve kimlik denetimi başarılı bir şekilde yapılır. İşlemler sonrasında da şifre değişikliği sunucuya aktarılır.

Makalemin devamını okumak için aşağıdaki linke tıklayınız
http://mshowto.org/index.php?option=com_content&task=view&id=173&Itemid=33

Tuesday, October 31, 2006

UserAccountControl attribute'u için hakların ayarlanması.

User objesinin disable/enable veya lockout (windows 2000'de) olup olmadığı gibi durumlarını objenin UserAccountControl attribute'nun numeric değerine göre belirlenir. Bu değerler için objenin durumunu aşağıdaki makalede bulabilirsiniz. Bu değerleri otomatik olarak değiştirmek için veya raporlama amaçlı bu attribute'u kullanarak kolayca script yazabilirsiniz.

http://support.microsoft.com/kb/305144

Bana gelen soru şu olmuştu; operatörlerin kullanıcıları disable/enable edebilme haklarını almak istiyoruz. Fakat OU üzerindeki Security listesinde user objesi için Enable/disable seklinde bir hak yok. Yukarıda da belirttiğim gibi objenin bu gibi durumları objenin UserAccountControl attribute'unun değerine göre belirleniyor. Delegated Users'dan (operatorler) bu hakkı "Account Restrictions" hakkını alarak yapabiliyoruz. Fakat bu Account restriction hakkı, bir çok attribute'a erişimi denetliyor. Yani sadece UserAccountControl attribute'u değil aşağıdaki attribute'ların da haklarını da ayarlıyor.

Property set containing user attributes that describe account restrictions.

Applies to: Computer, User

• accountExpires

• pwdLastSet

• userAccountControl

• userParameters

• tokenGroupsNoGCAcceptable

Active Directory object permissions


Dolayısıyla bu hakkın alınması, operatorun operatorluk işini yapamasina neden olabilir. Bu yüzden gelen isteği reddedip, bu hakkın operatorlerden alınmasını engelledik ve kendi isimizi biraz daha azalttık :>)

Tuesday, September 12, 2006

Exchange 2003 Üzerinde Banner Değişimi İle Güvenliğinizi Arttırın

Exchange 2003 üzerindeki Virtual Server’ların otomatik bağlantı yanıtı olan banner’lar sunucuya Telnet üzerinden bağlanıldığında veya başka bir saldırı şekliyle atak yapıldığında sunucunuz ile ilgili bazı bilgileri karşı tarafa verir. Bu bilgiler, Exchange üzerindeki işletim sisteminin versiyonu ve üzerine yüklü servis paketi bilgisidir. Kötü amaçlı kişiler bu bilgileri öğrenerek sistem açıklarını bulabilir. Verilen bu yanıtları değiştirmek bir seviye de olsa güvenliğinizi arttıracaktır. Bu makalemde Exchange 2003 üzerinde çalışan SMTP, IMAP4 ve POP3 virtual server’larının varsayılan bağlantı yanıtlarının (banner) nasıl değiştirileceğini inceleyeceğiz.

Banner bilgisini değiştirmek için bir çok yol bulunuyor. Bu makalede Metabase Explorer araçları ile doğrudan metabase üzerinde değişiklik yaparak banner değişikliğine gideceğiz. Ayrıca sonuca scripting kullanarakta ulaşmak mümkün.

İşlemler sırasında metabase’in bozulup, geri dönüşü olmayan bir noktaya gelebileceğinizi düşünürsek, başlamadan önce IIS Metabase yedeği almanızı öneririm.

Default SMTP Virtual Server banner’ını görelim. SMTP banner için aşağıdaki komutu command prompt’da çalıştırın.

Telnet Sunucu_Adı 25

Yanıt aşağıdaki gibi olacaktır.



http://www.mshowto.org adresinde yayımlanan makalemin devamını okumak için tıklayınız.

Wednesday, September 06, 2006

Site'lar arası Urgent Replication (İvedi Replikasyon)

Bildiğiniz gibi AD'deki bazı değişikliklerin ivedi olarak replikasyonu yapılır. Buna urgent replication deniliyor. Bu değişiklikler, account lockout, password değişikliği, account lockout policy'sinde yapılan değişiklikler, domain password policy'sinde yapılan değişiklikler gibi değişikliklerdir.

Fakat bu urgent replication tanımı karıştırılabiliyor. Yani tüm bu değişikliklerin hangi dc'de yapılırsa yapılsın tüm forest'a hemen replike olacağı zannediliyor. Yukarıdaki her işleme göre olay farklı olabiliyor. Bu değişiklikler sadece site içine hemen replike olur, site'lar arasında durum olaya göre değişiyor.

Urgent replikasyon aynı site icindeki dc'ler arasında replikasyonu ivedi olarak yapılır. Fakat sitelar arası replikasyon için, eğer site link üzerinde bunları geçirmesi için konfigurasyon yapmamışsanız normal replikasyon zamanınında yapılacaktır.

Fakat account lockout durumu için olay biraz daha farklıdır. Account lockout durumunda olayın olduğu dc bu durumu ivedi olarak PDC rolüne sahip DC'ye bildirir. Diğer site'lardaki DC'ler ise bu değişikliği normal replikasyon zamanında alırlar. Yani PDC ile aralarında bir urgent replikasyon olayı olmaz. Zaten account'un PDC üzerinde lockout'unun kaldırılması kullanıcının logon olması için yeterlidir.

Bu durumlarda şu şekilde problemler oluşabiliyor. Operator kendi site'inda kullanıcının lock'ını açıyor. Bir süre sonra kullanıcı tekrar lock oluyor. Fakat kullanıcı operator'un bağlandığı (Active Directory Users and Computers) DC'den farklı bir dc de lock olduğu için, operator bu lock'ı göremiyor. Kullanıcının lock olmadığı halde logon olamadığını düşünüyor ve System Admin'i arıyor.

Saturday, August 26, 2006

Active Directory Offline Defragmentation

Directory Servisi (DS) Active Directory (AD) veritabanı (Ntds.dit) için online defragmentation işlemini garbage-collection işleminin bir parçası olarak her 12 saatte bir yapar. Garbage-collection işlemi sırasında öncelikle tombstone süresi dolmuş objeler veritabanından tamamıyla kaldırılır, gereksiz log dosyaları temizlenir ve son olarak da online defragmentation (birleştirme) işlemi yapılır. Fakat bu online defragmentation sırasında veritabanını küçültemez. Yeni nesnelerin ve attribute’ların eklenmesiyle de Active Directory veritabanı (Ntds.dit) zamanla çok büyük boyutlara ulaşabilir. Bu boyutu küçültmenin yolu ise offline defragmentation yapmaktır.

Makalemin devamını okumak için aşağıdaki linke tıklayınız.
http://mshowto.org/index.php?option=com_content&task=view&id=156&Itemid=33

Monday, August 21, 2006

Mshowto.org adresinde yayımlanan makalelerim

Repadmin ile Active Directory Replikasyonlarınızı Gözlemleyin
http://mshowto.org/index.php?option=com_content&task=view&id=154&Itemid=33

Klasör ve Dosya İzinlerinin Otomatik Düzenlenmesi (ACL)
http://mshowto.org/index.php?option=com_content&task=view&id=144&Itemid=33

Policy ile İstenmeyen Programların Çalışmasını Engelleyin
http://mshowto.org/index.php?option=com_content&task=view&id=136&Itemid=33

Thursday, July 27, 2006

Agimizdaki sunucu veya istemcilerin ne zaman acildigini (reboot) ettigini ogrenmek icin asagidaki scripti olusturdum. Patch dagitimi sonrasinda veya tum sunucular icin belirli araliklar ile ne zaman reboot ettiklerini ogrenmek istiyorsaniz isinize yarabilir.

Tum sunucu isimlerini "sunucu" dizisine ekleyip, diziyi sunucu sayisi kadar genisletin. Daha sonra bu sayiyi kadar for dongusu kullanın. Sonuclar d:\boot_zamanlari.txt dosyasına yazilacaktir.

'///////////////////////////////////////////////
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oWshNet = CreateObject("WScript.Network")
Const OpenAsASCII = 0
Const OverwriteIfExist = -1
sOutFile = "d:\boot_zamanlari.txt"

On Error Resume Next
dim sunucu(10)
sunucu(1) = "DCMSHOWTO1"
sunucu(2) = "DCMSHOWTO2"
sunucu(3) = "DCMSHOWTO3"
sunucu(4) = "DCMSHOWTO4
sunucu(5) = "FSMSHOWTO1"
sunucu(6) = "FSMSHOWTO2"
sunucu(7) = "EXCMSHOWTO1"
sunucu(8) = "EXCMSHOWTO2"
sunucu(9) = "SQLMSHOWTO1"
sunucu(10) = "ISAMSHOWTO1"

i=1
for i=1 TO 10 step 1
strComputer = sunucu(i)

' Connect to specified computer
Set objWMIService = GetObject( "winmgmts://" & strComputer & "/root/cimv2" )
' Display error number and description if applicable
If Err Then ShowError

Set colItems = objWMIService.ExecQuery( "Select * from Win32_OperatingSystem", , 48 )
For Each objItem in colItems
strTimeShift = Right( objItem.LastBootUpTime, 4 ) / 60
strBootYear = Left( objItem.LastBootUpTime, 4 )
strBootMonth = Mid( objItem.LastBootUpTime, 5, 2 )
strBootDay = Mid( objItem.LastBootUpTime, 7, 2 )
strBootDate = DateValue( strBootDay & "-" & strBootMonth & "-" & strBootYear )
strBootHour = Mid( objItem.LastBootUpTime, 9, 2 ) - strTimeShift
strBootMins = Mid( objItem.LastBootUpTime, 11, 2 )
If strBootHour < 0 Then
strBootHour = strBootHour + 24
strBootDate = DateAdd( "d", -1, DateValue( strBootDate ) )
End If
If strBootHour > 23 Then
strBootHour = strBootHour - 24
strBootDate = DateAdd( "d", 1, DateValue( strBootDate ) )
End If
strBootTime = strBootHour & ":" & strBootMins
strBoot = strBootDate & ", " & strBootTime
strMsg = "Last boot time of " & strComputer & ": " & strBoot
Next

' Display results
'WScript.Echo strMsg

Set fOutFile = oFSO.CreateTextFile _
(sOutFile, OverwriteIfExist, OpenAsASCII)
fOutFile.WriteLine strMsg

Next

fOutFile.Close

'Done
WScript.Quit(0)
'///////////////////////////////////////////////////////////////////

Wednesday, July 12, 2006

Kullanıcı home folder yetkilerinin düzenlenmesi

AD'de kullanıcılar için set edilmiş home folder yetkileri, kullanıcıların home folder üzerinde full kontrol hakkı olmasından dolayı, alt klasörlerde kullanıcı tarafından değiştirilebiliyor. Administrators ve System kullanıcılarının nesne üzerinde yetkisinin kaldırılması bazı yönetimsel sorunları doğuruyor.

Aşağıdaki script, homefolders klasöründeki her klasör için Administrators ve System kullancılarına Full kontrol hakkı verip, kullanıcının Full Control hakkını modify olarak değiştirmektedir.

Script'in çalışması için home folder'ın \\sunucu\share1\%username% olarak set edildigini varsayıyorum. Yani alt klasör isimleri ile domain kullanıcı adı aynı.

Linkten script'in zip halini indirebilirsiniz. Buraya koydugumda sayfa bozuldu. Link veriyorum. http://estetikplastikcerrahi.com/herkesekonut/yetkiduzenle.zip

Script için Subinacl'ye ihtiyacınız olacaktır. Resource kit içinde bulabilirsiniz.

Tuesday, June 06, 2006

How to force AD replication,

For AD partition;

repadmin /replicate dcfrom dcto dc=domainname,dc=com

example for domaindnszones partition;
repadmin /replicate dcfrom dcto dc=domaindnszones,dc=domainname,dc=com

You can also force replication for enterprise level with;
repadmin /syncall dcfrom /e /P
-e:enterprise level
-P:Push changes

For single object replication use "replsingleobj" parametre.

To force sysvol replication use ntfrs util;
ntfrsutil forcerepl dcto /r "DOMAIN SYSTEM VOLUME (SYSVOL SHARE)" /p dcfrom

*forcerepl parametre is not supported by old ntfrsutil versions..

Tuesday, May 23, 2006

Unable to open awservices.exe

Sometimes, you may give full permission for users (server operators etc.) to a service to manage server. The User may have problem with this service's executable file when user need to run this file at command prompt.

This problem occured when server operators run awservices.exe at command prompt to interpret functioning of Unicenter TND agent Tecnology.

To resolve this case, you must give full control permission on service dacl (discretionary access control lists). To do this beforo read dacl of service with;

"Sc sdshow awservices" command. The command genaretes results that like;

(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;PU)(A;;CCDCLCSWLOCRRC;;;LS)

Copy this results and add server operators group or the group which you want to add with neccesary permission.

To set new dacl to service, use following comand;

sc sdset awservices D:

SC
Communicates with the Service Controller and installed services. SC.exe retrieves and sets control information about services. You can use SC.exe for testing and debugging service programs. Service properties stored in the registry can be set to control how service applications are started at boot time and run as background processes. More information about SC click here
A problem that can't reach to machine on network.

PROBLEM: Couldn't reach to machine on network either rdp or ping even safe mode with networking. But the machine was up and no errors at eventviewer. Not resolved by resetting tcp/ip and winsock stack. No problem with nic or server services..

To determine the problem was very hard. I restarted machine without to run some services like IPSEC. Nema problema.. :) The problem was gone..

When I opened IPSEC Monitor with MMC, got error that 0x80070002. The problem occured after starting IPSEC .

CAUSE: corrupted polstore.dll

RESULOTION: regsvr32 polstore.dll

Rebuild a new local policy store. To do this, Click Start, click Run, type regsvr32 polstore.dll in the Open box, and then click OK

Related MS article http://support.microsoft.com/?kbid=912023
To reset TCP/IP http://support.microsoft.com/kb/299357
To reset and repair winsock http://support.microsoft.com/kb/811259

Monday, May 08, 2006

SYSVOL share permission sets default "everyone:read" and "authenticated users:full" when you promote server to domain controller. Windows Server 2003 domain controller unnecessarily provides too many permissions to the SYSVOL share for the Authenticated Users group. This situation is described in KB812538.

The ACLs (NTFS permissions) of items in the SYSVOL share do not allow Full Control access to members of the Authenticated Users group. However, if these permissions are inadvertently changed, members of the Authenticated Users group might have Full Control permissions in the default installation of Windows Server 2003.

I am managing 46 dc at different sites. I used RMTShare.exe to decrease share permissions. The command is;

RMTShare.exe \\DC1\SYSVOL /GRANT "Authenticated Users":R /REMOVE Everyone

You can use this command with bacth file or wbscritp.

Microsoft has placed the RMTShare.exe program on their FTP site at ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/i386/RMTSHAR.EXE.

Saturday, January 28, 2006

Setting Audit entries via batch file.

Setting Audit entries via batch file.
You can use this batch file to set auditing entry to a folder. This batch adds “delete subfolders and files” and “delete” auditing entries for “authenticated users” to TEST folder’s SACL. Send this batch to servers with psexec @file parametre to run.
------------
net use Z: \\Domain.com\sysvol\Domain.com\SCRIPTSZ:\SetACL.exe -on "F:\TEST" -ot file -actn ace -ace "n:s-1-5-11;p:delete;m:aud_succ;w:sacl;s:y" -ace "n:s-1-5-11;p:del_child;m:aud_succ;w:sacl;s:y"
net use Z: /delete
-------------
* SetACL is assumed in the \\Domain.com\sysvol\Domain.com\SCRIPTS* SetACL.exe is free for everyone. The current version of SetACL and more examples can be found on sourceforce.net