Kurumsal Ağda Güvensiz HTTP WinRM Yerine Kendi CA Sertifikasıyla Şifreli WinRM HTTPS (Port 5986) Yapılandırması
PowerShell Remoting (Enter-PSSession) ve Windows Admin Center, modern sunucu yönetiminin vazgeçilmezleridir. Ancak birçok kurumda varsayılan olarak WinRM HTTP (Port 5985) kullanılır. Kerberos trafiği varsayılan olarak şifrelese de, Workgroup makinelerde veya NTLM geriye düşüşlerinde ağ üzerinden geçen oturum açma istekleri ve çalıştırılan komutlar dinlenebilir (Sniffing). Bu iletişimi askeri düzeyde güvenceye almanın yolu, iç sertifika otoritemizle (AD CS) WinRM HTTPS Dinleyicisi (Port 5986) kurgulamaktır.
1. WinRM HTTP (5985) vs HTTPS (5986) Farkı
- HTTP Dinleyicisi (Port 5985): Şifresiz taşıma katmanı. Yalnızca Kerberos oturumu içindeyken güvenlidir; üçüncü parti araçlarla (Ansible, Linux makineler) bağlanırken güvensizdir.
- HTTPS Dinleyicisi (Port 5986): Taşıma katmanı doğrudan TLS 1.2/1.3 ile şifrelenir. Sunucunun kimliği dijital sertifikayla doğrulanır; araya girme (MitM) saldırıları imkansızdır.
2. Active Directory CS ile Sunucu Kimlik Doğrulama Sertifikası Dağıtımı
GPO üzerinden tüm sunuculara otomatik olarak bir SSL sertifikası dağıtılır:
- Şablon: Server Authentication (Sunucu Kimlik Doğrulaması)
- Subject Name: Sunucunun FQDN adı (
dc01.holding.local).
3. PowerShell ile HTTPS Dinleyicisi (Listener) Oluşturma
Sertifika yüklendikten sonra WinRM HTTPS dinleyicisi PowerShell ile bağlanır:
# Sunucunun yerel sertifika deposundaki makine sertifikasının Thumbprint'ini alma
$Cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {
$_.Subject -match $env:COMPUTERNAME -and $_.EnhancedKeyUsageList.FriendlyName -contains "Server Authentication"
} | Select-Object -First 1
# WinRM HTTPS Dinleyicisini Oluşturma
New-Item -Path WSMan:\Localhost\Listener -Transport HTTPS -Address * -CertificateThumbPrint $Cert.Thumbprint -Force
# Windows Firewall'da Port 5986 İznini Açma
New-NetFirewallRule -DisplayName "WinRM - HTTPS Inbound (Port 5986)" `
-Direction Inbound `
-LocalPort 5986 `
-Protocol TCP `
-Action Allow
4. Güvenli Uzak Oturum Açma Testi
# İstemci makineden doğrudan şifreli HTTPS üzerinden sunucuya bağlanma
Enter-PSSession -ComputerName "dc01.holding.local" -UseSSL -Port 5986
Karşılaşılan Kritik Hatalar ve Çözüm İpuçları
- CN Uyuşmazlığı Hatası (Server Certificate Name Mismatch):
Enter-PSSessionile bağlanırken IP adresi girerseniz (10.10.20.10), sertifikadaki isimle eşleşmediği için bağlantı reddedilir. HTTPS WinRM bağlantılarında daima sunucunun tam etki alanı adı (FQDN) kullanılmalıdır. - Sertifikanın Süresi Dolduğunda WinRM'in Çökmesi: Sertifika yenilendiğinde WinRM otomatik yeni sertifikayı tanımaz; eski dinleyicinin silinip yeni Thumbprint ile güncellenmesi gerekir. Bu süreç PowerShell ile otomatikleştirilmelidir.
Mühendis Notu
WinRM HTTPS'e geçtikten sonra varsayılan HTTP 5985 portunu güvenlik duvarından tamamen kapatın. Yönetim kanallarının her daim tam şifreli olması ISO 27001 denetimlerinin en temel beklentisidir.
