11
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

EC2 Windowsインスタンスに22番ポートでRDP接続するためのUserData

通常のRDPポート(3389)ではなく、22番ポートなど別のポートでRDP接続したい場合のUserDataです。

レジストリの変更でポートが変えられる(https://support.microsoft.com/en-us/kb/306759) ようなので、試しに実行してみたところうまく動作しました。同時にWindows Firewallの設定も必要になるため、TCP22番ポートを開ける設定を一緒に行います。

EC2起動時の詳細設定でUserDataの部分に張り付けて、起動させます。1度目の起動は3389ポートになりますので、起動後に再起動すると22番ポートで接続できるようになります(セキュリティグループの設定も3389から22に変更してください)。

<powershell>
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -name "PortNumber" -value "22"
if (-not(Get-NetFirewallRule | where Name -eq Open-Port-22))
{
    New-NetFirewallRule `
        -Name Open-Port-22 `
        -DisplayName Open-Port-22 `
        -Description "Open-Port-22" `
        -Enabled True `
        -Profile Any `
        -Direction Inbound `
        -Action Allow `
        -EdgeTraversalPolicy Block `
        -LooseSourceMapping $False `
        -LocalOnlyMapping $False `
        -OverrideBlockRules $False `
        -Program Any `
        -LocalAddress Any `
        -RemoteAddress Any `
        -Protocol TCP `
        -LocalPort 22 `
        -RemotePort Any `
        -LocalUser Any `
        -RemoteUser Any 
}
else
{
        Write-Verbose "Open-Port-22 exits."
}
</powershell>

動作確認はWindows 2012 R2のAMIで行っています。またスクリプトの書き方はこちら(http://tech.guitarrapc.com/entry/2013/07/08/210724) を参考にさせていただきました。ありがとうございます。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
11
Help us understand the problem. What are the problem?