모든 Windows 운영 체제에서 RDP 에 할당된 기본 포트 (원격 데스크톱 프로토콜)은 TCP입니다. 3389 . Windows에서 RDP를 활성화하면 TermService
(원격 데스크톱 서비스)는 포트 3389에서 수신 대기를 시작합니다. 이 문서에서는 Windows 데스크톱 버전(7/8/10/11) 및 Windows Server에서 레지스트리를 사용하여 기본 RDP 포트 번호를 변경하는 방법을 보여줍니다. 에디터와 파워셸.
최신 버전의 Windows도 UDP를 사용합니다. TCP 외에 원격 데스크톱 연결에 대해 동일한 포트 번호(3389)를 사용합니다.
Windows의 기본 RDP 포트 번호를 3389에서 다른 포트 번호로 변경할 수 있습니다. 이것은 열려 있는 RDP 포트 TCP/3389를 사용하여 네트워크에서 Windows 호스트를 찾는 포트 스캐너로부터 RDP/RDS 호스트를 숨겨야 할 때 가장 자주 사용됩니다.
RDP 포트를 변경하면 RDP 취약성(RDP BlueKeep의 마지막 치명적인 취약성은 CVE-2019-0708에 설명되어 있음)을 악용할 가능성이 줄어들고 RDP 무차별 대입 공격 횟수가 줄어듭니다(RDP 연결 로그를 정기적으로 분석하는 것을 잊지 마십시오). , SYN 및 NLA가 비활성화된 경우의 기타 유형의 공격. 대부분의 경우 RDP 포트는 인터넷(VPS/VDS)에 직접 연결된 컴퓨터 또는 에지 라우터가 포트 3389/RDP를 LAN의 Windows 호스트로 전달하는 네트워크에서 변경됩니다.
포트 번호를 변경하더라도 호스트의 RDP 포트를 인터넷에 여는 것은 안전하지 않습니다. 포트 스캐너를 사용하면 공격자가 서명을 통해 새 포트에서 RDP 수신기를 검색할 수 있습니다. 네트워크의 컴퓨터에 대한 RDP 액세스를 열려면 VPN, RD 웹 액세스, RDS 게이트웨이 및 기타 보안 연결 도구를 사용하는 것이 좋습니다.
비표준 RDP 포트를 선택할 때 1-1023
범위의 포트를 사용하지 않는 것이 좋습니다. (알려진 포트). RPC 포트 범위(49152 to 65535
)에서 동적 포트를 사용합니다. ) 또는 1024 to 49151
범위의 포트 다른 서비스나 응용 프로그램에서 사용하지 않는 것입니다.
Windows에서 원격 데스크톱 포트를 변경하는 방법
이 예에서는 원격 데스크톱 서비스가 1350을 수신하는 포트 번호를 변경합니다. . 이렇게 하려면:
- 레지스트리 편집기(
regedit.exe
) 레지스트리 키로 이동합니다. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp; - DWORD 찾기 이름이 PortNumber인 매개변수 . 이 매개변수는 원격 데스크톱 서비스가 수신 대기하는 포트를 표시합니다. 기본값은 3389(십진수)입니다.
- 이 매개변수의 값을 변경합니다. RDP 포트를 1350으로 변경했습니다. (소수); PowerShell을 사용하여 레지스트리 매개변수를 변경할 수 있습니다.
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" -Name PortNumber -Value 1350
- 컴퓨터에서 Windows 방화벽이 사용 설정된 경우 새 RDP 포트에 대한 인바운드 연결을 허용하는 새 규칙을 만들어야 합니다. RDP를 통해 원격 Windows 호스트를 재구성하는 경우 TermService를 다시 시작하기 전에 방화벽에서 허용 규칙을 생성해야 합니다. 그렇지 않으면 서버에 액세스할 수 없게 됩니다.
- Windows Defender 방화벽 콘솔(
firewall.cpl
)에서 수동으로 새 TCP/UDP RDP 포트에 대한 허용 인바운드 규칙을 만들 수 있습니다. ) 또는 NetSecurity 모듈에서 PowerShell cmdlet 사용: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 - 다음 명령을 사용하여 컴퓨터를 재부팅하거나 원격 데스크톱 서비스를 다시 시작합니다.
net stop termservice & net start termservice
- 원격 데스크톱을 통해 이 Windows 호스트에 연결하려면 다음과 같이 콜론을 사용하여 mstsc.exe 클라이언트에서 새 RDP 연결 포트를 지정해야 합니다.
RDPComputerName:1350
또는 IP 주소로:192.168.1.10:1350
또는 명령 프롬프트에서:mstsc.exe /v 192.168.1.10:1350
RDCMan을 사용하여 여러 RDP 연결을 관리하는 경우 보유한 RDP 포트를 지정할 수 있습니다. 연결 설정에서 구성 탭. - 그런 다음 새 RDP 포트를 사용하여 컴퓨터의 원격 데스크톱에 성공적으로 연결합니다.
netstat –na | Find “LIST”
원격 데스크톱 서비스가 새 포트에서 수신 대기 중인지 확인하는 명령입니다.
UDP RDP 포트 번호도 자동으로 1350으로 변경되었습니다(TCPView 도구로 확인할 수 있음).
Test-NetConnection 명령을 사용하여 기본 RDP 포트 3389가 현재 닫혀 있는지 확인합니다(TcpTestSucceeded: False
):
Test-NetConnection 192.168.3.102 -port 3389 |select TcpTestSucceeded
이제 RDP 연결을 위해 새 포트 1350을 사용해야 합니다.
참고 . 기본 RDP 수신 대기 포트 번호를 변경하면 Windows 10에서 원격 지원, 섀도우 RDP 연결, Windows Server에서 RDS 섀도잉을 사용하는 데 문제가 발생할 수 있습니다.
도메인 컴퓨터에서 RDP 포트 번호를 변경하려는 경우 그룹 정책 기능을 사용할 수 있습니다. PortNumber를 배포할 새 GPO를 만듭니다. 도메인 컴퓨터에 대한 새 RDP 포트 번호가 있는 레지스트리 매개변수
PowerShell을 사용하여 RDP 수신 포트 번호 변경
RDP 포트 번호를 변경하고, 방화벽 규칙을 만들고, 원격 데스크톱 서비스를 다시 시작하는 전체 PowerShell 스크립트는 다음과 같습니다.
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}
AD 도메인(특정 OU)의 여러 컴퓨터에서 원격으로 RDP 번호를 변경해야 하는 경우 다음 스크립트를 사용합니다(Get-ADComputer cmdlet를 사용하여 OU의 컴퓨터 목록을 가져올 수 있음).
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 XP(Windows Server 2003)부터 최신 Windows 10, Windows 11 및 Windows Server 2022 빌드까지의 모든 Windows 버전에 적합합니다.