對整個網際網路開放的 RDP 連接埠,在伺服器開機幾分鐘後就會開始收到密碼猜測。長密碼擋得住,但每次猜測仍是一次登入嘗試,會塞滿事件記錄,也讓下一個 RDP 漏洞有了攻擊入口。五個步驟就能解決。每一步都是一個 PowerShell 指令,全部在發布前於我們的 Windows Server 2022 映像檔上執行過。
透過 RDP 以系統管理員身分開啟 PowerShell(如何連線),依序操作。第 4 步留到最後:只有這一步可能把你自己鎖在外面。
1. 使用長且不重複的密碼
如果你還在用首次登入的密碼,請在控制台改成長密碼(20 個字元以上,由密碼管理工具產生)。以下所有步驟都假設密碼本身無法被猜中。
2. 開啟網路層級驗證(NLA)
開啟 NLA 後,Windows 會在建立工作階段、繪製登入畫面之前先驗證你的認證。未經驗證的連線永遠到不了桌面程式碼,而最知名的 RDP 漏洞正好都在那裡。查看目前狀態:
(Get-CimInstance -Namespace root/cimv2/TerminalServices -ClassName Win32_TSGeneralSetting -Filter "TerminalName='RDP-tcp'").UserAuthenticationRequired
1 表示 NLA 已開啟。如果看到 0,就開啟它:
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1
Windows、macOS 和 Linux(xfreerdp)上目前的遠端桌面用戶端都支援 NLA。下次連線時,會在遠端畫面出現前先要求輸入密碼。
3. 多次失敗後鎖定帳戶
Windows Server 2022 的預設安裝無論輸錯多少次密碼,都不會鎖定帳戶。自 2026 年 10 月 24 日起以我們的映像檔安裝的伺服器已設好下面的上限;較早的伺服器請自行設定:
net accounts /lockoutthreshold:5 /lockoutwindow:15 /lockoutduration:15
net accounts
15 分鐘內輸錯 5 次,帳戶會被鎖定 15 分鐘。我們實測過:5 次失敗後,一般使用者和內建的 Administrator 都被鎖定了。鎖定會自動解除,所以就算早上一直打錯字,你損失的也只是一刻鐘,而不是伺服器。
4. 只允許你的 IP 位址連線 RDP
這一步能消除幾乎所有雜訊。Windows 防火牆規則接受遠端位址清單,填入你自己的位址即可。在任何「查詢我的 IP」網頁上看到目前的公用 IP,然後:
$myIp = '203.0.113.10' # your public IP; several: '203.0.113.10','198.51.100.0/24'
Get-NetFirewallPortFilter | Where-Object LocalPort -eq 3389 | Get-NetFirewallRule | Set-NetFirewallRule -RemoteAddress $myIp
這個指令會找出 3389 連接埠上的所有輸入規則,而不只是內建的「遠端桌面」群組。這點很關鍵:2026 年 10 月 24 日之前以我們的映像檔安裝的伺服器有一條名為「EQVPS RDP 3389」的額外規則,對所有人開放這個連接埠,其他軟體也可能加入自己的規則。如果只限制內建群組,這類規則會讓連接埠繼續開著。我們自己測試時就犯了這個錯。確認結果:
Get-NetFirewallPortFilter | Where-Object LocalPort -eq 3389 | Get-NetFirewallRule |
Select-Object DisplayName, @{n='Remote';e={($_ | Get-NetFirewallAddressFilter).RemoteAddress}}
每一行都應顯示你的位址。在我們的測試中,來自其他位址的連線都得不到回應,而允許的位址可以連上。
在 NAT 方案上也一樣。從你的專屬連接埠進來的轉送會保留你的真實位址,所以允許你自己的公用 IP 即可。
如果你的 IP 變了,RDP 也會不再回應你。從控制台開啟瀏覽器主控台(它不經過 RDP,也不經過防火牆),登入後用新位址再執行一次指令。要完全取消允許清單,使用 -RemoteAddress Any。
5. 查看誰在嘗試登入
登入失敗是安全性記錄中的 4625 事件。下面的指令會顯示每次嘗試的帳戶名稱和來源位址:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
Select-Object TimeCreated, @{n='User';e={$_.Properties[5].Value}}, @{n='SourceIP';e={$_.Properties[19].Value}}
設定允許清單之前,你會看到來自陌生位址的 Administrator、admin、user 源源不絕。設定之後,清單應該會安靜下來。
不值得花時間的事
- 更改 RDP 連接埠。 在有獨立 IPv4 的方案上只能減少記錄雜訊,掃描器很快就會找到新連接埠。在 NAT 方案上會讓你無法連線,因為轉送指向 3389。
- 為了「能用」而關閉防火牆。 如果改了規則後 RDP 不再回應,請透過瀏覽器主控台修正規則。
保持更新
最嚴重的 RDP 事件來自通訊協定漏洞,而不是密碼。Windows Server 2022 的安全性更新會持續到 2031 年 10 月 14 日,請保持 Windows Update 開啟,並在提示時重新啟動。
映像檔是使用你自有授權的 Windows Server 2022(BYOL 如何運作)。方案從 Windows-Small 起:4 vCPU、4 GB 記憶體、50 GB,NAT 版每月 $11。有獨立 IPv4 的 Windows Small-IP 每月 $28。四個方案都在 Windows VPS 頁面。如果想在 RDP 之外使用 SSH,請參考 在 Windows Server 上使用 OpenSSH。
評論
目前還沒有評論。歡迎成為第一位。