Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windowsのデフォルトのリモートデスクトップ(RDP)ポート3389を変更する

すべてのWindowsオペレーティングシステムで、 RDPに割り当てられたデフォルトのポート (リモートデスクトッププロトコル)は TCP 3389 。 WindowsでRDPを有効にした後、TermService (リモートデスクトップサービス)はポート3389でリッスンを開始します。この記事では、Windowsのデスクトップエディション(7/8/10/11)およびレジストリを使用してWindowsServerでデフォルトのRDPポート番号を変更する方法を説明します。エディターとPowerShell。

最新バージョンのWindowsもUDPを使用していることに注意してください TCPに加えて、リモートデスクトップ接続用に同じポート番号(3389)を使用します。

Windowsのデフォルトのリモートデスクトップ(RDP)ポート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 Webアクセス、RDSゲートウェイ、およびその他の安全な接続ツールを使用することをお勧めします。

非標準のRDPポートを選択する場合は、1-1023の範囲のポートを使用することはお勧めしません。 (既知のポート)。 RPCポート範囲(49152 to 65535)の動的ポートを使用します )、または1024 to 49151の範囲の任意のポート 別のサービスやアプリケーションで使用されていません。

Windowsでリモートデスクトップポートを変更するにはどうすればよいですか?

この例では、リモートデスクトップサービスがリッスンしているポート番号を変更します 1350 。これを行うには:

  1. レジストリエディタを開きます(regedit.exe )そしてレジストリキー HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcpに移動します;
  2. DWORDを見つける PortNumberという名前のパラメータ 。このパラメーターは、リモートデスクトップサービスがリッスンしているポートを示します。デフォルトは3389(10進数)です。
  3. このパラメーターの値を変更します。 RDPポートを1350に変更しました (10進数); Windowsのデフォルトのリモートデスクトップ(RDP)ポート3389を変更する PowerShellを使用してレジストリパラメーターを変更できます:Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" -Name PortNumber -Value 1350
  4. コンピュータでWindowsファイアウォールが有効になっている場合は、新しいRDPポートへのインバウンド接続を許可する新しいルールを作成する必要があります。 RDPを介してリモートWindowsホストを再構成する場合は、TermServiceを再起動する前に、ファイアウォールで許可ルールを作成してください。作成しないと、サーバーにアクセスできなくなります。
  5. Windows Defenderファイアウォールコンソール(firewall.cpl)で、新しいTCP /UDPRDPポートの許可インバウンドルールを手動で作成できます。 )またはNetSecurityモジュールのPowerShellコマンドレットを使用する: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
    Windowsのデフォルトのリモートデスクトップ(RDP)ポート3389を変更する
  6. 次のコマンドを使用して、コンピューターを再起動するか、リモートデスクトップサービスを再起動します:net stop termservice & net start termservice Windowsのデフォルトのリモートデスクトップ(RDP)ポート3389を変更する
  7. リモートデスクトップ経由でこのWindowsホストに接続するには、次のようにコロンを使用してmstsc.exeクライアントで新しいRDP接続ポートを指定する必要があります。RDPComputerName:1350 またはIPアドレス:192.168.1.10:1350 またはコマンドプロンプトから:mstsc.exe /v 192.168.1.10:1350 Windowsのデフォルトのリモートデスクトップ(RDP)ポート3389を変更する
    RDCManを使用して複数のRDP接続を管理している場合は、使用しているRDPポートを指定できます接続設定で構成 タブ。 Windowsのデフォルトのリモートデスクトップ(RDP)ポート3389を変更する
  8. これで、新しいRDPポートを使用してコンピューターのリモートデスクトップに正常に接続できます。 netstat –na | Find “LIST” リモートデスクトップサービスが新しいポートでリッスンしていることを確認するコマンド。 Windowsのデフォルトのリモートデスクトップ(RDP)ポート3389を変更する

UDP RDPポート番号も自動的に1350に変更されることに注意してください(これはTCPViewツールで確認できます)。

Windowsのデフォルトのリモートデスクトップ(RDP)ポート3389を変更する

Test-NetConnectionコマンドを使用して、デフォルトのRDPポート3389が閉じられていることを確認します(TcpTestSucceeded: False ):

Test-NetConnection 192.168.3.102 -port 3389 |select TcpTestSucceeded

次に、RDP接続に新しいポート1350を使用する必要があります。

Windowsのデフォルトのリモートデスクトップ(RDP)ポート3389を変更する

。デフォルトのRDPリスニングポート番号を変更すると、リモートアシスタンスの使用、Windows 10でのRDP接続のシャドウ、およびWindowsServerでのRDSシャドウの使用で問題が発生する可能性があります。

ドメインコンピューターのRDPポート番号を変更する場合は、グループポリシー機能を使用できます。 ポート番号を展開する新しい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コマンドレットを使用してコンピューターに接続できます。

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コマンドレットを使用して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、およびWindowsServer2022ビルドまでのすべてのWindowsバージョンに適しています。


  1. Windows 10 または Windows 11 で既定のフォルダー名を変更する方法

    Windows のフォルダーは、複数の Windows ファイルとフォルダーの便利なストレージ領域として機能します。家の中の収納ボックスと考えてください。ここにすべてのものを入れて、すべてをきちんと整理整頓できます。 Windows では、新しいフォルダーを作成すると、デフォルトで「新しいフォルダー」という名前が付けられます。さて、これ自体は大したことではありませんが、このようなフォルダーをさらに作成すると、少し面倒になることがあります。 幸いなことに、このデフォルトの名前設定は簡単に編集できます。方法を学びましょう。 Windows レジストリを使用してデフォルト フォルダを変更する

  2. Windows 11 で既定のターミナルを変更する方法

    Windows ターミナルは、Windows 11 の Windows コンソールの代替として Microsoft によって開発されたマルチタブ ターミナル エミュレーターです。別のタブで、すべての Windows ターミナル エミュレーターを含む任意のコマンドライン アプリケーションを実行できます。コマンド プロンプト、PowerShell、WSL、SSH、および Azure Cloud Shell コネクタはすべて事前構成されています。 Windows 11 のデフォルトのコマンドライン ツールとして、PowerShell とコマンド プロンプトを置き換えます。 このモジュールは、複数の