Windows Sunucu Üzerinde WinRM Port Güvenliği

Windows Remote Management (WinRM), Windows sunuculara uzaktan PowerShell erişimi sağlamak için kullanılan temel servislerden biridir. Özellikle otomasyon, uzaktan komut çalıştırma ve yapılandırma yönetimi gibi DevOps süreçlerinde yaygın olarak kullanılır. Ancak açık kalan bir WinRM portu (varsayılan olarak 5985 HTTP, 5986 HTTPS) güvenlik açısından ciddi riskler taşıyabilir.

Bu yazıda, WinRM’in port güvenliği nasıl sağlanır, hangi adımlar uygulanmalıdır ve hangi araçlar kullanılabilir sorularını detaylandırıyoruz.


1. WinRM Nedir?

WinRM, WS-Management protokolü üzerinde çalışan ve WMI gibi servislerle entegre çalışan bir uzak yönetim servisidir. Özellikle PowerShell Remoting için temel bileşendir.

Varsayılan portlar:

  • TCP 5985 (HTTP)
  • TCP 5986 (HTTPS)

2. WinRM Güvenlik Riskleri

Açık WinRM portları, aşağıdaki güvenlik sorunlarını doğurabilir:

  • Kimlik doğrulama zayıflıkları: HTTP üzerinden gönderilen kimlik bilgileri şifrelenmeden aktarılabilir.
  • Yetkisiz erişim: Güvenlik grupları veya GPO’larla sınırlandırılmamış kullanıcılar uzaktan komut çalıştırabilir.
  • Saldırı yüzeyinin genişlemesi: Açık portlar brute-force ve exploit saldırılarına açık hâle gelir.

3. WinRM Port Güvenliğini Sağlama Adımları

A. HTTP yerine HTTPS kullanın

HTTP bağlantıları yerine SSL sertifikalı HTTPS bağlantıları tercih edilmelidir:

winrm quickconfig -transport:https

Veya özel bir sertifika ile yapılandırmak için:

winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="sunucu.domain"; CertificateThumbprint="sertifika_thumbprint"}

B. Güvenlik duvarı yapılandırması

Sadece belirli IP adreslerinin WinRM portlarına erişmesine izin verin:

New-NetFirewallRule -DisplayName "WinRM HTTPS" -Direction Inbound -Protocol TCP -LocalPort 5986 -RemoteAddress 192.168.1.0/24 -Action Allow

C. NTLM yerine Kerberos kullanımı

Varsayılan olarak NTLM kullanılsa da, Active Directory ortamlarında Kerberos kimlik doğrulaması tercih edilmelidir. Bu, kimlik bilgisi tekrar kullanımına karşı daha güvenlidir.

D. İzinli kullanıcıları sınırlama

WinRM erişimini yalnızca belirli gruplarla kısıtlayın:

Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI

Buradan yalnızca ilgili yöneticilere yetki verebilirsiniz.

E. GPO ile merkezi yönetim

WinRM yapılandırmasını Group Policy Object (GPO) ile uygulayabilirsiniz:

  • Computer Configuration > Policies > Administrative Templates > Windows Components > Windows Remote Management
  • Ayrıca: Allow remote server management through WinRM, Specify ports for WinRM

F. Audit ve loglama

Event Viewer altında:

  • Applications and Services Logs > Microsoft > Windows > Windows Remote Management

Loglar üzerinden erişim girişimleri izlenebilir.


4. İzleme ve Güvenlik Testi

  • Nmap ile port tarama:
nmap -p 5985,5986 yourserverip
  • Security baseline taramaları: Microsoft Security Compliance Toolkit veya Nessus gibi araçlarla WinRM port konfigürasyonu kontrol edilebilir.

5. Alternatif Yöntem: Just Enough Administration (JEA)

JEA, PowerShell erişimlerini komut bazında sınırlandıran bir güvenlik modeli sunar. Bu sayede sadece belirli işlemleri yapma yetkisi verilebilir.


Sonuç

WinRM, güçlü bir yönetim aracı olsa da yanlış yapılandırıldığında ciddi güvenlik açıklarına yol açabilir. HTTPS kullanımı, port sınırlamaları, sadece yetkili kullanıcıların erişimi ve kapsamlı loglama ile bu riskler minimize edilebilir. Özellikle çok kullanıcılı ortamlarda ve DevOps süreçlerinde bu önlemler hayati önemdedir.

Vps.com.tr