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:
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:
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:
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:
$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.