Windows Server 2022'de Group Policy (GPO) ile Kurumsal Güvenlik Yapılandırması: Adım Adım Rehber
Windows Server 2022'de Group Policy (GPO) ile Kurumsal Güvenlik Yapılandırması: Adım Adım Rehber
Windows Server 2022 ve Active Directory ortamında Group Policy kullanarak USB depolama aygıtlarını kısıtlama, ekran kilidi uygulama, Microsoft Defender ve Windows Firewall güvenliğini yönetme, parola politikaları oluşturma ve PowerShell ile GPO doğrulama işlemlerini uygulamalı olarak inceleyeceğiz.
Yazar: Şaban Çiçek | Kategori: Windows Server, Active Directory, Siber Güvenlik
1. Group Policy (GPO) Nedir?
Group Policy, Active Directory etki alanındaki kullanıcı ve bilgisayarların yapılandırmalarını merkezi olarak yönetmemizi sağlayan Windows Server özelliğidir.
GPO sayesinde yüzlerce bilgisayarda tek tek işlem yapmak yerine, belirlediğimiz güvenlik politikalarını merkezi olarak uygulayabiliriz.
- USB depolama aygıtlarının kullanımını kısıtlama
- Bilgisayar ekranlarının otomatik kilitlenmesi
- Microsoft Defender güvenlik ayarları
- Windows Firewall kurallarının merkezi yönetimi
- Parola ve hesap kilitleme politikaları
- PowerShell ve güvenlik olaylarının kaydedilmesi
- Yazılım ve kullanıcı yapılandırmalarının yönetimi
2. Laboratuvar Ortamı ve Gereksinimler
Bu makalede örnek olarak aşağıdaki Active Directory ortamını kullanacağız.
| Bileşen | Değer |
|---|---|
| İşletim Sistemi | Windows Server 2022 |
| Domain | sabancicek.local |
| Domain Controller | DC01.sabancicek.local |
| İstemci | Windows 11 Pro / Enterprise |
| Yönetim Aracı | Group Policy Management Console |
| PowerShell | Windows PowerShell 5.1 |
Domain Controller üzerinde Group Policy Management Console'u açmak için:
gpmc.msc
Gerekli yönetim bileşenlerini kontrol etmek için:
Get-WindowsFeature GPMC
Kurulu değilse:
Install-WindowsFeature GPMC
3. Active Directory OU Yapılandırması
Güvenlik politikalarını doğru hedeflere uygulayabilmek için Organizational Unit yapısını planlamalıyız.
Örnek OU yapımız:
sabancicek.local
|
+-- Kurumsal
|
+-- Bilgisayarlar
| +-- Pilot
| +-- Uretim
|
+-- Kullanicilar
+-- Pilot
+-- Personel
Active Directory Users and Computers konsolunu açalım:
dsa.msc
OU'ları grafik arayüzden oluşturabileceğimiz gibi PowerShell ile de oluşturabiliriz.
Import-Module ActiveDirectory
$domain = "DC=sabancicek,DC=local"
New-ADOrganizationalUnit `
-Name "Kurumsal" `
-Path $domain
New-ADOrganizationalUnit `
-Name "Bilgisayarlar" `
-Path "OU=Kurumsal,$domain"
New-ADOrganizationalUnit `
-Name "Pilot" `
-Path "OU=Bilgisayarlar,OU=Kurumsal,$domain"
New-ADOrganizationalUnit `
-Name "Uretim" `
-Path "OU=Bilgisayarlar,OU=Kurumsal,$domain"
New-ADOrganizationalUnit `
-Name "Kullanicilar" `
-Path "OU=Kurumsal,$domain"
New-ADOrganizationalUnit `
-Name "Pilot" `
-Path "OU=Kullanicilar,OU=Kurumsal,$domain"
New-ADOrganizationalUnit `
-Name "Personel" `
-Path "OU=Kullanicilar,OU=Kurumsal,$domain"
Oluşturulan OU'ları kontrol edelim:
Get-ADOrganizationalUnit -Filter * |
Select-Object Name,DistinguishedName
Test bilgisayarlarını ilgili Pilot OU'suna taşıdıktan sonra GPO bağlantılarını oluşturacağız.
4. Güvenlik GPO'su Oluşturma
ADIM 1
Group Policy Management konsolunu açalım:
gpmc.msc
İlgili OU üzerinde sağ tıklayarak Create a GPO in this domain, and Link it here seçeneğini kullanalım.
Oluşturacağımız GPO adı:
GPO-Kurumsal-Bilgisayar-Guvenligi
Aynı işlemi PowerShell üzerinden gerçekleştirebiliriz:
Import-Module GroupPolicy
$gpoName = "GPO-Kurumsal-Bilgisayar-Guvenligi"
New-GPO -Name $gpoName
New-GPLink `
-Name $gpoName `
-Target "OU=Pilot,OU=Bilgisayarlar,OU=Kurumsal,DC=sabancicek,DC=local" `
-LinkEnabled Yes
GPO'nun oluşturulduğunu kontrol edelim:
Get-GPO -Name "GPO-Kurumsal-Bilgisayar-Guvenligi"
5. GPO ile USB Depolama Aygıtlarını Engelleme
Kurumsal ortamlarda veri sızıntısı riskini azaltmak amacıyla USB depolama aygıtlarının kullanımı sınırlandırılabilir.
ADIM 1
Oluşturduğumuz GPO'ya sağ tıklayarak Edit seçeneğini açalım.
Aşağıdaki yolu takip edelim:
Computer Configuration
> Policies
> Administrative Templates
> System
> Removable Storage Access
ADIM 2
Aşağıdaki politikayı açalım:
All Removable Storage classes: Deny all access
Değerini Enabled yapalım.
USB politikasını doğrulama
İstemci bilgisayarda yönetici yetkisiyle:
gpupdate /force
Ardından ilgili kayıt defteri değerini kontrol edelim:
Get-ItemProperty `
-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices" `
-Name Deny_All `
-ErrorAction SilentlyContinue
Politika uygulandıysa Deny_All değerinin 1 olması beklenir.
USB bellek takarak erişim testini gerçekleştirebiliriz.
6. GPO ile Otomatik Ekran Kilidi Yapılandırması
Çalışanların bilgisayarlarını kilitlemeden masalarından ayrılması, yetkisiz erişim riskini artırır.
Bu nedenle belirli süre kullanılmayan bilgisayarların otomatik kilitlenmesini sağlayabiliriz.
GPO düzenleyicisinde:
Computer Configuration
> Policies
> Windows Settings
> Security Settings
> Local Policies
> Security Options
Şu politikayı bulalım:
Interactive logon: Machine inactivity limit
Değeri:
900 seconds
900 saniye = 15 dakika.
Bu ayar, desteklenen Windows istemcilerinde belirlenen hareketsizlik süresinin ardından oturumun kilitlenmesini sağlar.
PowerShell ile kontrol
Get-ItemProperty `
-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name InactivityTimeoutSecs
Beklenen değer:
InactivityTimeoutSecs : 900
7. Microsoft Defender Güvenlik Politikaları
Microsoft Defender Antivirus, Windows istemcilerinde zararlı yazılımlara karşı temel koruma bileşenlerinden biridir.
GPO üzerinden gerçek zamanlı koruma, tarama ve bazı güvenlik davranışlarını merkezi olarak yönetebiliriz.
İlgili GPO içerisinde:
Computer Configuration
> Policies
> Administrative Templates
> Windows Components
> Microsoft Defender Antivirus
Gerçek zamanlı koruma
Aşağıdaki bölümü açalım:
Microsoft Defender Antivirus
> Real-time Protection
Turn off real-time protection politikasını Disabled olarak yapılandıralım.
Burada politika isminin olumsuz olduğuna dikkat etmeliyiz. "Turn off" ayarını Disabled yapmak, gerçek zamanlı korumanın kapatılmasını engelleme yönünde bir yapılandırmadır.
PowerShell ile Defender durumunu kontrol etme
Get-MpComputerStatus |
Select-Object `
AMServiceEnabled,
AntivirusEnabled,
RealTimeProtectionEnabled,
AntivirusSignatureLastUpdated
Defender tercihlerini görüntülemek için:
Get-MpPreference |
Select-Object DisableRealtimeMonitoring,
DisableBehaviorMonitoring,
DisableIOAVProtection
8. Windows Defender Firewall Yapılandırması
Windows Firewall, istemcilerin ağ bağlantılarını kontrol etmek ve yetkisiz bağlantı girişimlerini azaltmak için önemli bir güvenlik katmanıdır.
GPO içerisinde aşağıdaki bölümü açalım:
Computer Configuration
> Policies
> Windows Settings
> Security Settings
> Windows Defender Firewall
with Advanced Security
Windows Defender Firewall Properties bölümüne girelim.
Domain Profile için önerilen başlangıç yapılandırması:
| Ayar | Değer |
|---|---|
| Firewall State | On |
| Inbound Connections | Block (default) |
| Outbound Connections | Allow (default) |
Bu ayarlar uygulanmadan önce uzaktan yönetim, uygulama sunucuları ve gerekli servisler için güvenlik duvarı kuralları değerlendirilmelidir.
Firewall durumunu doğrulama
Get-NetFirewallProfile |
Format-Table Name,Enabled,DefaultInboundAction,DefaultOutboundAction
Etkin güvenlik duvarı kurallarını listelemek için:
Get-NetFirewallRule -Enabled True |
Select-Object DisplayName,Direction,Action |
Out-GridView
9. Domain Parola ve Hesap Kilitleme Politikaları
Active Directory güvenliğinin temel bileşenlerinden biri parola ve hesap kilitleme politikalarıdır.
Örnek başlangıç politikası:
| Politika | Örnek Değer |
|---|---|
| Minimum parola uzunluğu | 14 karakter |
| Parola geçmişi | 24 parola |
| Parola karmaşıklığı | Enabled |
| Hesap kilitleme eşiği | 10 başarısız deneme |
| Kilitleme süresi | 15 dakika |
| Kilitleme sayacını sıfırlama | 15 dakika |
Bu değerler örnektir; kurumun güvenlik politikası, parola yönetimi ve hesap kilitleme risklerine göre belirlenmelidir.
Mevcut domain parola politikasını görüntüleme
Import-Module ActiveDirectory
Get-ADDefaultDomainPasswordPolicy |
Format-List *
PowerShell ile varsayılan domain parola politikasını değiştirme
Aşağıdaki komut yalnızca yetkili yönetici tarafından, mevcut politika ve etkileri kontrol edildikten sonra çalıştırılmalıdır:
Set-ADDefaultDomainPasswordPolicy `
-Identity "sabancicek.local" `
-MinPasswordLength 14 `
-PasswordHistoryCount 24 `
-ComplexityEnabled $true `
-LockoutThreshold 10 `
-LockoutDuration "00:15:00" `
-LockoutObservationWindow "00:15:00"
Bu komut varsayılan domain parola politikasını doğrudan değiştirir; ayrı bir OU GPO'su oluşturmaz.
Sonucu doğrulayalım:
Get-ADDefaultDomainPasswordPolicy |
Select-Object MinPasswordLength,
PasswordHistoryCount,
ComplexityEnabled,
LockoutThreshold,
LockoutDuration,
LockoutObservationWindow
10. PowerShell Güvenlik Kayıtlarını Etkinleştirme
PowerShell kullanımı, sistem yönetimi açısından önemli olduğu kadar güvenlik izleme açısından da önemlidir.
Script Block Logging sayesinde PowerShell tarafından işlenen komut bloklarının bir bölümünü olay günlüklerinde inceleyebiliriz.
GPO içerisinde:
Computer Configuration
> Policies
> Administrative Templates
> Windows Components
> Windows PowerShell
Turn on PowerShell Script Block Logging politikasını Enabled yapalım.
Gerekli görülürse Turn on Module Logging politikası da yapılandırılabilir.
PowerShell olaylarını kontrol etme
Get-WinEvent `
-FilterHashtable @{
LogName = "Microsoft-Windows-PowerShell/Operational"
Id = 4104
} `
-MaxEvents 20 |
Select-Object TimeCreated,Id,Message
Event ID 4104, Script Block Logging olaylarını incelemek için kullanılır.
11. GPO Uygulama ve Doğrulama İşlemleri
GPO yapılandırmalarını tamamladıktan sonra en önemli aşama, politikaların istemci bilgisayarlara gerçekten uygulanıp uygulanmadığını kontrol etmektir.
Grup politikalarını güncelleme
gpupdate /force
Bu komut bilgisayar ve kullanıcı politikalarını yeniden işlemeye zorlar. Bazı ayarlar yeniden başlatma veya oturum kapatma gerektirebilir.
Uygulanan GPO'ları görüntüleme
gpresult /r
HTML rapor oluşturmak için:
gpresult /h C:\Windows\Temp\GPO-Rapor.html /f
Raporu açalım:
Start-Process "C:\Windows\Temp\GPO-Rapor.html"
PowerShell ile GPO raporu oluşturma
GroupPolicy modülü bulunan yönetim bilgisayarında:
Get-GPOReport `
-Name "GPO-Kurumsal-Bilgisayar-Guvenligi" `
-ReportType Html `
-Path "C:\Windows\Temp\GPO-Guvenlik.html"
Bu rapor GPO'nun yapılandırmasını gösterir. Bir istemciye gerçekten hangi ayarların uygulandığını belirlemek için gpresult veya Resultant Set of Policy kullanılmalıdır.
GPO bağlantılarını kontrol etme
Get-GPInheritance `
-Target "OU=Pilot,OU=Bilgisayarlar,OU=Kurumsal,DC=sabancicek,DC=local"
Bu komut OU seviyesindeki GPO bağlantılarını ve kalıtım bilgilerini görüntüler.
12. GPO Uygulanmıyor: Sorun Giderme
Group Policy yapılandırmalarında en sık karşılaşılan sorunlardan biri, GPO'nun oluşturulmasına rağmen istemci bilgisayara uygulanmamasıdır.
12.1 DNS yapılandırmasını kontrol edin
ipconfig /all
İstemci bilgisayarın DNS sunucusu, Active Directory DNS kayıtlarını çözebilen uygun bir DNS sunucusuna işaret etmelidir.
12.2 Domain Controller erişimini kontrol edin
nltest /dsgetdc:sabancicek.local
12.3 SYSVOL erişimini kontrol edin
Test-Path "\\sabancicek.local\SYSVOL"
Sonucun True olması beklenir.
12.4 Grup politikası olaylarını inceleyin
Get-WinEvent `
-LogName "Microsoft-Windows-GroupPolicy/Operational" `
-MaxEvents 30 |
Select-Object TimeCreated,Id,LevelDisplayName,Message
12.5 Domain Controller sağlık kontrolü
Domain Controller üzerinde:
dcdiag /q
Replikasyon durumunu kontrol etmek için:
repadmin /replsummary
12.6 GPO filtrelerini kontrol edin
GPO uygulanmıyorsa aşağıdaki noktaları inceleyin:
- Bilgisayar veya kullanıcı doğru OU içerisinde mi?
- GPO bağlantısı etkin mi?
- Computer Configuration veya User Configuration devre dışı mı?
- Security Filtering doğru yapılandırılmış mı?
- Hedef hesabın gerekli Read ve Apply Group Policy izinleri var mı?
- WMI filtresi varsa hedef bilgisayarda koşul sağlanıyor mu?
- Üst OU veya domain seviyesindeki başka bir GPO ayarı geçersiz kılıyor mu?
13. GPO Yedekleme ve Geri Yükleme
Kurumsal ortamlarda GPO değişikliklerinden önce yedek almak önemlidir.
Tek bir GPO'yu yedekleme
Backup-GPO `
-Name "GPO-Kurumsal-Bilgisayar-Guvenligi" `
-Path "D:\GPOBackup"
Yedekleme klasörü önceden oluşturulmalıdır:
New-Item `
-Path "D:\GPOBackup" `
-ItemType Directory `
-Force
Tüm GPO'ları yedekleme
Backup-GPO -All -Path "D:\GPOBackup"
GPO geri yükleme
Restore-GPO `
-Name "GPO-Kurumsal-Bilgisayar-Guvenligi" `
-Path "D:\GPOBackup"
14. Üretim Ortamı İçin Güvenlik Önerileri
GPO ile güvenlik yapılandırması yapılırken yalnızca politikaları etkinleştirmek yeterli değildir. Değişiklik yönetimi ve operasyonel sürdürülebilirlik de önemlidir.
- Politikaları önce pilot OU üzerinde test edin.
- Domain Controller ve sunucular için istemcilerden ayrı GPO'lar kullanın.
- USB, Defender, Firewall ve denetim ayarlarını mantıksal olarak ayırın.
- GPO değişikliklerinden önce yedek alın.
- GPO düzenleme yetkilerini yalnızca yetkili yöneticilere verin.
- Yerel yönetici parolaları için Windows LAPS değerlendirin.
- Güvenlik olaylarını merkezi bir SIEM veya log yönetim platformuna aktarın.
- Parola politikalarını MFA, güçlü parola ve kimlik güvenliği stratejileriyle birlikte değerlendirin.
- Politikaları Microsoft Security Baseline ve kurumun güvenlik gereksinimleriyle karşılaştırın.
- GPO uygulama sonuçlarını düzenli olarak raporlayın.
GPO envanteri oluşturma
Domain üzerindeki GPO'ları listelemek için:
Get-GPO -All |
Select-Object DisplayName,Id,GpoStatus,ModificationTime |
Sort-Object DisplayName
CSV olarak dışa aktarmak için:
Get-GPO -All |
Select-Object DisplayName,Id,GpoStatus,ModificationTime |
Export-Csv `
-Path "C:\Windows\Temp\GPO-Envanter.csv" `
-NoTypeInformation `
-Encoding UTF8
Bu rapor, GPO envanterinin düzenli kontrol edilmesinde kullanılabilir.
15. Sonuç
Bu makalede Windows Server 2022 üzerinde Active Directory Group Policy kullanarak temel kurumsal güvenlik yapılandırmalarını adım adım inceledik.
USB depolama erişiminin sınırlandırılması, otomatik ekran kilidi, Microsoft Defender, Windows Firewall, parola politikaları ve PowerShell olay kayıtlarının merkezi olarak yönetilmesi; kurumsal Windows ortamlarının güvenliğini artırmaya yardımcı olur.
Ancak başarılı bir Group Policy yönetimi yalnızca GPO oluşturmakla sınırlı değildir. Politikaların doğru OU'lara bağlanması, hedef bilgisayarlarda doğrulanması, düzenli yedeklenmesi ve değişikliklerin kontrollü uygulanması gerekir.
Sık Sorulan Sorular
GPO değişiklikleri hemen uygulanır mı?
Her zaman değil. Grup politikaları arka planda belirli aralıklarla yenilenir. gpupdate /force komutu güncellemeyi tetikler ancak bazı ayarlar yeniden başlatma veya oturum açma gerektirir.
GPO ile USB bellekler engellenebilir mi?
Evet. Removable Storage Access politikalarıyla çıkarılabilir depolama aygıtlarına erişim kısıtlanabilir.
GPO neden bazı bilgisayarlarda çalışmıyor?
Yanlış OU, güvenlik filtrelemesi, WMI filtreleri, DNS, SYSVOL erişimi, replikasyon sorunları veya politika çakışmaları buna neden olabilir.
GPO ile bütün kullanıcılara aynı parola politikası uygulanabilir mi?
Domain hesapları için varsayılan parola politikası domain seviyesinde yönetilir. Farklı kullanıcı grupları için Fine-Grained Password Policy kullanılabilir.
GPO ayarlarını PowerShell ile kontrol edebilir miyim?
Evet. GroupPolicy ve ActiveDirectory modülleriyle GPO envanteri, bağlantılar, yapılandırma raporları ve bazı domain güvenlik ayarları kontrol edilebilir.