預設 RDP 連接埠 3389 為自動化掃描與暴力破解首選目標。修改為高位隨機埠 (如 25608) 可大幅降低被掃描命中機率。本文提供登錄編輯雙鍵值修改、防火牆例外新增、用戶端連線驗證的完整操作流程。
regedit 開啟登錄編輯器。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TcpPortNumber → 基數選「十進位」→ 數值資料改為 25608 (或 1025-65535 間未被佔用埠) → 確定。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcpPortNumber 為 25608 → 確定。25608。RDP_Custom_Port_25608 → 完成。mstsc /v:192.168.1.100 (隱含 :3389)。mstsc /v:192.168.1.100:25608 或在「電腦」欄輸入 192.168.1.100:25608。| 效益 | 說明 |
|---|---|
| 降低自動掃描曝光 | 大多數蠕蟲/掃描器僅掃描 3389,修改埠即可躲過 90%+ 無差別掃描 |
| 延緩標的攻擊 | 攻擊者需先進行埠掃描發現 RDP 服務,增加偵察成本 |
| 殘留風險 | 補充對策 |
|---|---|
| 埠掃描仍可發現 | 配合 NLA (網路層級驗證)、RD Gateway、VPN、IPsec、帳戶鎖定原則、登入稽核 |
| 服務指紋識別 | 即使埠號改變,RDP 協定特徵仍可被識別;建議部署 RD Gateway 反向代理 |
$newPort = 25608
$paths = @(
'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp',
'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp'
)
foreach ($p in $paths) { Set-ItemProperty -Path $p -Name PortNumber -Value $newPort }
New-NetFirewallRule -DisplayName "RDP_Custom_Port_$newPort" -Direction Inbound -Protocol TCP -LocalPort $newPort -Action Allow -Profile Any
Write-Host "RDP port changed to $newPort. Restart required." -ForegroundColor Green
執行腳本後重新開機即可生效。修改 RDP 埠是「安全性纵深」的基礎拼圖,必須搭配 NLA、強式密碼、登入稽核、RD Gateway/VPN 等多層防護共同構建安全遠端存取體系。