barisnetblog.space — Windows Firewall'u Netsh ile Sıkılaştırmak: RDP Örneği
Ağ Güvenliği 19 Ağustos 2026 1 dk okuma 1.545 görüntülenme

Windows Firewall'u Netsh ile Sıkılaştırmak: RDP Örneği

3389'u bütün dünyaya açmak yerine yalnızca yönetim ağına açın. Netsh ve PowerShell ile Windows Firewall kurallarını komut satırından yönetmenin pratik yolu.

RDP portunu internette açık bırakan her sunucu dakikalar içinde parola denemesi yağmuruna tutulur. Doğru yaklaşım portu kapatmak değil, kime açık olduğunu daraltmaktır. Windows Firewall bu işi yerleşik olarak yapar; netsh ise bunu betiklenebilir hâle getirir.

Önce Varsayılan Duruş

Gelen her şeyi engelleyin, giden her şeye izin verin:

Komut İstemi
netsh advfirewall set allprofiles state on
netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound

Bu iki satır, üzerinde hiçbir kural olmasa bile sunucuyu dışarıdan erişilmez yapar. Bundan sonrası bilinçli olarak delik açmaktır.

Yalnızca Yönetim Ağına RDP

Yönetim subnet'imiz 10.10.100.0/24 olsun:

Komut İstemi
netsh advfirewall firewall delete rule name="RDP - Yonetim Agi"

netsh advfirewall firewall add rule name="RDP - Yonetim Agi" dir=in action=allow protocol=TCP localport=3389 remoteip=10.10.100.0/24 profile=domain

netsh advfirewall firewall add rule name="RDP - Engelle" dir=in action=block protocol=TCP localport=3389

Sıralama burada her şeydir: remoteip ile daraltılmış allow kuralı yönetim ağına istisna oluşturur; geri kalan tüm 3389 denemeleri block kuralına takılır.

PowerShell ile Kontrol

Netsh hâlâ çalışır ama modern taraf Get-NetFirewallRule cmdlet'leridir:

PowerShell
Get-NetFirewallRule -DisplayName "RDP*" | Select-Object DisplayName, Enabled, Action, Direction | Format-Table -AutoSize

Get-NetFirewallPortFilter | Where-Object LocalPort -eq 3389 | Get-NetFirewallRule | Select-Object DisplayName, Action

Kuralı Filoya Uzaktan Uygulamak

Aynı kural setini yirmi sunucuya taşımak için Invoke-Command yeterli:

PowerShell
$sunucular = Get-Content "C:\Scripts\sunucu_listesi.txt"

Invoke-Command -ComputerName $sunucular -ScriptBlock {
    New-NetFirewallRule -DisplayName "RDP - Yonetim Agi" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 3389 -RemoteAddress 10.10.100.0/24 -Profile Domain
}

Unutmayın: firewall kuralı savunmanın yalnızca bir katmanıdır. RDP için mutlaka NLA açın, yerleşik yönetici hesabıyla uzaktan oturumu yasaklayın ve mümkünse RDP'yi bir VPN ya da bastion host arkasına taşıyın.

Okuma görünümü 1.545 görüntülenme