Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

เปลี่ยนพอร์ตเดสก์ท็อประยะไกลเริ่มต้น (RDP) 3389 ใน Windows

ในระบบปฏิบัติการ Windows ทั้งหมด พอร์ตเริ่มต้นที่กำหนดให้กับ RDP (โปรโตคอลเดสก์ท็อประยะไกล) คือ TCP 3389 . หลังจากที่คุณเปิดใช้งาน RDP ใน Windows TermService (บริการเดสก์ท็อประยะไกล) เริ่มฟังที่พอร์ต 3389 ในบทความนี้ เราจะแสดงวิธีเปลี่ยนหมายเลขพอร์ต RDP เริ่มต้นบน Windows รุ่นเดสก์ท็อป (7/8/10/11) และบน Windows Server โดยใช้ Registry บรรณาธิการและ PowerShell

โปรดทราบว่า Windows รุ่นใหม่ยังใช้ UDP ด้วยหมายเลขพอร์ตเดียวกัน (3389) สำหรับการเชื่อมต่อเดสก์ท็อประยะไกลนอกเหนือจาก TCP

เปลี่ยนพอร์ตเดสก์ท็อประยะไกลเริ่มต้น (RDP) 3389 ใน Windows

คุณสามารถเปลี่ยนหมายเลขพอร์ต RDP เริ่มต้นใน Windows จาก 3389 เป็นหมายเลขอื่นได้ ใช้บ่อยที่สุดเมื่อคุณต้องการซ่อนโฮสต์ RDP/RDS จากเครื่องสแกนพอร์ตที่ค้นหาโฮสต์ Windows บนเครือข่ายที่มีพอร์ต RDP TCP/3389 ที่เปิดอยู่

การเปลี่ยนพอร์ต RDP จะลดโอกาสในการใช้ประโยชน์จากช่องโหว่ RDP (ช่องโหว่ที่สำคัญสุดท้ายใน RDP BlueKeep อธิบายไว้ใน CVE-2019-0708) ลดจำนวนการโจมตีแบบเดรัจฉาน RDP (อย่าลืมวิเคราะห์บันทึกการเชื่อมต่อ RDP เป็นประจำ) , SYN และการโจมตีประเภทอื่นๆ เมื่อปิดใช้งาน NLA ส่วนใหญ่แล้ว พอร์ต RDP จะมีการเปลี่ยนแปลงในคอมพิวเตอร์ที่มีการเชื่อมต่อโดยตรงกับอินเทอร์เน็ต (VPS/ VDS) หรือในเครือข่ายที่เราเตอร์ edge ส่งต่อพอร์ต 3389/RDP ไปยังโฮสต์ Windows ใน LAN ของคุณ

แม้จะเปลี่ยนหมายเลขพอร์ต การเปิดพอร์ต RDP บนโฮสต์ของคุณไปยังอินเทอร์เน็ตก็ไม่ปลอดภัย เครื่องสแกนพอร์ตช่วยให้ผู้โจมตีสามารถค้นพบตัวฟัง RDP บนพอร์ตใหม่ (ตามลายเซ็น) หากคุณต้องการเปิดการเข้าถึง RDP ไปยังคอมพิวเตอร์บนเครือข่ายของคุณ ควรใช้ VPN, RD Web Access, RDS Gateway และเครื่องมือการเชื่อมต่อที่ปลอดภัยอื่นๆ

เมื่อเลือกพอร์ต RDP ที่ไม่ได้มาตรฐาน โปรดทราบว่าไม่แนะนำให้ใช้พอร์ตในช่วง 1-1023 (พอร์ตที่รู้จัก). ใช้พอร์ตไดนามิกในช่วงพอร์ต RPC (49152 to 65535 ) หรือพอร์ตใดๆ ในช่วง 1024 to 49151 ที่ไม่ได้ใช้งานโดยบริการหรือแอปพลิเคชันอื่น

จะเปลี่ยนพอร์ตเดสก์ท็อประยะไกลบน Windows ได้อย่างไร

ในตัวอย่างของเรา เราจะเปลี่ยนหมายเลขพอร์ตที่บริการเดสก์ท็อประยะไกลกำลังฟัง 1350 . ในการดำเนินการนี้:

  1. เปิด Registry Editor (regedit.exe ) และไปที่รีจิสตรีคีย์ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp;
  2. ค้นหา DWORD พารามิเตอร์ที่มีชื่อ PortNumber . พารามิเตอร์นี้แสดงพอร์ตที่บริการเดสก์ท็อประยะไกลกำลังรับฟังอยู่ ค่าเริ่มต้นคือ 3389 (ทศนิยม);
  3. เปลี่ยนค่าของพารามิเตอร์นี้ ฉันเปลี่ยนพอร์ต RDP เป็น 1350 (ทศนิยม); เปลี่ยนพอร์ตเดสก์ท็อประยะไกลเริ่มต้น (RDP) 3389 ใน Windows คุณสามารถเปลี่ยนพารามิเตอร์รีจิสทรีได้โดยใช้ PowerShell:Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" -Name PortNumber -Value 1350
  4. หากเปิดใช้งานไฟร์วอลล์ Windows บนคอมพิวเตอร์ของคุณ คุณจะต้องสร้างกฎใหม่ที่อนุญาตการเชื่อมต่อขาเข้ากับพอร์ต RDP ใหม่ของคุณ หากคุณกำลังกำหนดค่าโฮสต์ Windows ระยะไกลใหม่ผ่าน RDP ตรวจสอบให้แน่ใจว่าคุณได้สร้างกฎการอนุญาตในไฟร์วอลล์ก่อนที่จะเริ่ม TermService ใหม่ มิฉะนั้น คุณจะสูญเสียการเข้าถึงเซิร์ฟเวอร์
  5. คุณสามารถสร้างกฎขาเข้าที่อนุญาตสำหรับพอร์ต TCP/UDP RDP ใหม่ของคุณได้ด้วยตนเองในคอนโซลไฟร์วอลล์ Windows Defender (firewall.cpl ) หรือใช้ PowerShell cmdlets จากโมดูล NetSecurity:New-NetFirewallRule -DisplayName "NewRDPPort-TCP-In" -Direction Inbound -LocalPort 1350 -Protocol TCP -Action allow
    New-NetFirewallRule -DisplayName "NewRDPPort-UDP-In" -Direction Inbound -LocalPort 1350 -Protocol UDP -Action allow
    เปลี่ยนพอร์ตเดสก์ท็อประยะไกลเริ่มต้น (RDP) 3389 ใน Windows
  6. รีบูตเครื่องคอมพิวเตอร์หรือเริ่มบริการ Remote Desktop ใหม่ด้วยคำสั่งนี้:net stop termservice & net start termservice เปลี่ยนพอร์ตเดสก์ท็อประยะไกลเริ่มต้น (RDP) 3389 ใน Windows
  7. ในการเชื่อมต่อกับโฮสต์ Windows นี้ผ่านเดสก์ท็อประยะไกล คุณต้องระบุพอร์ตการเชื่อมต่อ RDP ใหม่ในไคลเอ็นต์ mstsc.exe โดยใช้โคลอนดังนี้:RDPComputerName:1350 หรือตามที่อยู่ IP:192.168.1.10:1350 หรือจากพรอมต์คำสั่ง:mstsc.exe /v 192.168.1.10:1350 เปลี่ยนพอร์ตเดสก์ท็อประยะไกลเริ่มต้น (RDP) 3389 ใน Windows
    หากคุณใช้ RDCMan เพื่อจัดการการเชื่อมต่อ RDP หลายรายการ คุณสามารถระบุพอร์ต RDP ที่คุณมีได้ กำหนดค่าใน การตั้งค่าการเชื่อมต่อ แท็บ เปลี่ยนพอร์ตเดสก์ท็อประยะไกลเริ่มต้น (RDP) 3389 ใน Windows
  8. จากนั้น คุณจะเชื่อมต่อกับเดสก์ท็อประยะไกลของคอมพิวเตอร์ได้สำเร็จโดยใช้พอร์ต RDP ใหม่ คุณสามารถใช้ netstat –na | Find “LIST” คำสั่งเพื่อให้แน่ใจว่าบริการเดสก์ท็อประยะไกลของคุณกำลังฟังพอร์ตใหม่ เปลี่ยนพอร์ตเดสก์ท็อประยะไกลเริ่มต้น (RDP) 3389 ใน Windows

โปรดทราบว่าหมายเลขพอร์ต UDP RDP จะเปลี่ยนเป็น 1350 โดยอัตโนมัติด้วย (คุณสามารถตรวจสอบได้ด้วยเครื่องมือ TCPView)

เปลี่ยนพอร์ตเดสก์ท็อประยะไกลเริ่มต้น (RDP) 3389 ใน Windows

ใช้คำสั่ง Test-NetConnection เพื่อตรวจสอบว่าพอร์ต RDP เริ่มต้น 3389 ถูกปิดแล้ว (TcpTestSucceeded: False ):

Test-NetConnection 192.168.3.102 -port 3389 |select TcpTestSucceeded

ตอนนี้ คุณต้องใช้พอร์ต 1350 ใหม่สำหรับการเชื่อมต่อ RDP

เปลี่ยนพอร์ตเดสก์ท็อประยะไกลเริ่มต้น (RDP) 3389 ใน Windows

หมายเหตุ . หากคุณเปลี่ยนหมายเลขพอร์ตการรับฟัง RDP เริ่มต้น คุณอาจมีปัญหาบางอย่างกับการใช้ความช่วยเหลือระยะไกล การเชื่อมต่อ RDP เงาใน Windows 10 ตลอดจนการสร้างเงา RDS บน Windows Server

ถ้าคุณต้องการเปลี่ยนหมายเลขพอร์ต RDP บนคอมพิวเตอร์โดเมน คุณสามารถใช้คุณลักษณะนโยบายกลุ่ม สร้าง GPO ใหม่ที่จะปรับใช้ PortNumber พารามิเตอร์รีจิสทรีพร้อมหมายเลขพอร์ต RDP ใหม่ไปยังคอมพิวเตอร์โดเมน

เปลี่ยนหมายเลขพอร์ตการฟัง RDP ด้วย PowerShell

สคริปต์ PowerShell ที่สมบูรณ์เพื่อเปลี่ยนหมายเลขพอร์ต RDP สร้างกฎไฟร์วอลล์ และเริ่มบริการเดสก์ท็อประยะไกลใหม่อาจมีลักษณะดังนี้:

Write-host "Specify the number of your new RDP port: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "NewRDPPort-TCP-In-$RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "NewRDPPort-UDP-In-$RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol UDP -Action Allow
Restart-Service termservice -force
Write-host "The number of the RDP port has been changed to $RDPPort " -ForegroundColor Magenta

คุณสามารถเปลี่ยนหมายเลขพอร์ต RDP บนคอมพิวเตอร์ระยะไกลได้ ในการดำเนินการนี้ คุณต้องเปิดใช้งาน WinRM บนคอมพิวเตอร์ระยะไกล จากนั้นคุณสามารถใช้ Invoke-Command cmdlet เพื่อเชื่อมต่อกับคอมพิวเตอร์:

Invoke-Command -ComputerName wksname112 -ScriptBlock {Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value 1350}

หากคุณต้องการเปลี่ยนหมายเลข RDP จากระยะไกลบนคอมพิวเตอร์หลายเครื่องในโดเมน AD ของคุณ (ใน OU เฉพาะ) ให้ใช้สคริปต์ต่อไปนี้ (คุณสามารถรับรายการคอมพิวเตอร์ใน OU ได้โดยใช้ Get-ADComputer cmdlet):

Write-host "Specify the number of your new RDP port: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
$PCs = Get-ADComputer -Filter * -SearchBase "CN=IT,CN=Computers,CN=NY,DC=woshub,DC=com"
Foreach ($PC in $PCs) {
Invoke-Command -ComputerName $PC.Name -ScriptBlock {
param ($RDPPort)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "NewRDPPort-TCP-In-$RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "NewRDPPort-UDP-In-$RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
Restart-Service termservice -force
}

คู่มือสำหรับการเปลี่ยนพอร์ต RDP เริ่มต้นนี้เหมาะสำหรับ Windows ทุกรุ่นตั้งแต่ Windows XP (Windows Server 2003) และ Windows 10, Windows 11 และ Windows Server 2022 รุ่นใหม่ขึ้นไป