PowerShell: zmiana portu pulpitu zdalnego / RDP

Zmiana domyślnego portu usługi pulpitu zdalnego to jedna z wielu ze skutecznych form jego zabezpieczenia RDP. Większość skanerów błyskawicznie wyszukuje usługi zdefiniowane na domyślnych portach. Poniżej sprawdzony sposób aby zwiększyć poziom bezpieczeństwa tej usługi.

O ile sama zmiana portu w przypadku PowerShell to jedna linia odnosząca się do klucza rejestru, to sama zmiana powinna być przeprowadzana w kolejności uwzględniającej zaporę systemową. Zwłaszcza jeżeli zmieniamy ustawienia domyślnego portu RDP zdalnie!

Wartością domyślną jest port 3389, zmienimy go na jeden z wysokich portów np 23389. W pierwszej kolejności należy zdefiniować reguły na firewall’u:

New-NetFirewallRule -DisplayName "RDP 23389" -Direction Inbound -LocalPort 23389 -Protocol TCP -Action allow
New-NetFirewallRule -DisplayName "RDP 23389" -Direction Inbound -LocalPort 23389 -Protocol UDP -Action allow

Następnie zmieniamy sam klucz rejestru:

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" -Name PortNumber -Value 23389

Następnie restartujemy usługę pulpitu zdalnego (czasami wymagany jest restart całej maszyny ponieważ ta usługa ma inne zależne usługi), poniżej restart z CMD:

net stop termservice & net start termservice

Po restarcie sprawdzamy w CMD na jakim porcie nasłuchuje nasza usługa RDP w:

netstat -a | findstr -i "listen"