*

GCEのWindowsインスタンスにファイアウォール越し80番ポートでRDP接続してみた

公開日: : 最終更新日:2016/06/09 投稿者: GCE

表題のまんまですが。企業の社内からGCEを使いたいって時に、ファイアウォールで80番か443番しか外部に出ない、ってことはままそれなりにあることかと思います。まぁ自宅から何とか接続してRDPGatewayを設定するとか、方法はあるかも知れませんが、なかなか厳しいものと思います。
そんな時、Windowsサーバ起動時のスタートアップスクリプトを使い、RDPの待受ポートをデフォルトの3389→80に変更、WindowsファイアウォールでTCP80番の外部からのアクセスを許可、まで行うことで80番ポートでRDP接続出来る様になります。
当然IISやApacheでは使えなくなるわけですが、まぁ80番ポートで接続出来るサーバを一個用意すればそいつを踏み台にして他サーバで別のサービスを許可するなどすれば良い訳ですので。

繰り返しになりますが、ポイントは

  • GCEのスタートアップスクリプトを活用する
  • RDPの待受ポートを3389から80番に変更する
  • Windowsファイアウォールの80番を許可する
  • GCE自体のファイアウォールも80番を許可する

と言ったところです。
では、具体的な設定手順をご説明していきます。
GCPのプロジェクト作成はされており、管理コンソールにも入れて、GCEのインスタンスは立ち上げられる、というところは省略しております。
その辺りからという場合は以下を参考にGCEのインスタンス起動は出来る状態までは頑張ってからお読みください。

15分でできる!GCE上でGO言語を動作させるための手順

 

1.GCEでWindowsを起動する(スタートアップスクリプト付き)

インスタンス作成時の項目です。赤枠を順番に説明していきます。
名前はわかりやすい名前を適当に入れてください。デフォルトのままでも構いません。ここでは「instance-win」としました。
ゾーンもどこでも良いですが、せっかくなので皆さんアジアにした方が少しでも遅延が少ないです。ここでは「asia-east1-b」を選びました。
ブートディスクは今回Windowsサーバへの接続を試すのでWindowsを選んでください。今回は「Windows2012」を選びましたが、「Windows2008」でも同様に動作するものと思われます。
そして、ファイアウォールのところで「HTTPトラフィックを許可する」にチェックを入れます。これでファイアウォール側に設定追加とインスタンスにタグ付けというのを裏側でやってもらえます。個別に設定しても良いですが今回は省略します。
最後に青い「管理、ディスク、ネットワーキング、SSHキー」という箇所をクリックして展開し、詳細設定画面を開きます。
gce-win-instance-fw-80-01

詳細設定画面は以下です。「メタデータ」の箇所にスタートアップスクリプトを設定します。
左側に「windows-startup-script-ps1」
右側には以下のスクリプトを入れます。

Set-ItemProperty “HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp” -name “PortNumber” -value “80”
if (-not(Get-NetFirewallRule | where Name -eq Open-Port-80))
{
New-NetFirewallRule
-Name Open-Port-80

-DisplayName Open-Port-80
-Description "Open-Port-80"

-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 80
-RemotePort Any

-LocalUser Any `
-RemoteUser Any
}
else
{
Write-Verbose “Open-Port-80 exits.”
}

これは、「EC2 Windowsインスタンスに22番ポートでRDP接続するためのUserData(Qiita)」こちらの記事から拝借し、80に変更したものです。
gce-win-instance-fw-80-02
少し無理やり感がありますが、設定出来ますのでご安心ください。
これで、一番下の「作成」ボタンを押してインスタンスを作成します。
Windowsのインスタンスは初回起動時にはライセンス等の確認のためか10分くらい時間がかかる場合がありますので、気長に待ちましょう。

2.起動とスタートアップスクリプトの実行を確認

以下のようにインスタンス詳細画面の一番下の「シリアルコンソール出力」をクリックすると起動中のログが確認出来ます。
gce-win-instance-fw-80-03
以下のようなログが確認出来るのですが。Starting startup scripts・・・からFinished runnning startup scripts、までが確認できればOKです。
gce-win-instance-fw-80-04

3.再起動

上部にある「停止」を押して停止、「起動」で起動しましょう。レジストリの変更を反映させるためには再起動が必要なのです。
2回目の起動の場合は上記のログが以下のように少量になります。(Windowsファイアウォールの設定はスキップするため)
gce-win-instance-fw-80-05

4.接続、確認

今回立てたinstance-winサーバのグローバルIPは「104.199.150.239」でした。
ここに、CloudShellから80番ポートで接続出来るか確認しますと、以下のように開放されていることが確認出来ます。
gce-win-instance-fw-80-06
ChromeのRDPクライアントで接続してみます。もちろんWindowsのmstscでもなんでも大丈夫だと思います。
「104.199.150.239:80」
gce-win-instance-fw-80-07
ログイン情報が求められるので入力して「OK」です。
gce-win-instance-fw-80-08
はい、80番ポートでログインが無事出来ました。ここから先は普通にWindowsのサーバですので、お好きに操作してください。
gce-win-instance-fw-80-09

以上、GCEのサーバに80番ポートでRDP接続してみた、でした。
これで、FW越しでも怖くありません。

この記事を書いた人

ayatoshi
ayatoshi
徳島県出身、吉積情報株式会社最高技術責任者
愛光高校、東京大学卒業後、アクセンチュアにて5年間システム開発を経験。
CP300のアジア初取得者。
Google基盤上でのシステム開発の普及を目標として日々活動中。

関連記事

2016/03/18 GCE vs AWS vs Azure ベンチマーク

2016/03/18 GCE vs EC2 vs Azureベンチマーク 本シリ

記事を読む

2015/06/17 GCE vs AWS ベンチマーク

2015/06/17 GCE vs AWS ベンチマーク 本シリーズでは定期的にGCEとEC2のベ

記事を読む

2015/07/10 GCE vs AWS ベンチマーク

2015/07/10 GCE vs AWS ベンチマーク 本シリーズでは定期的にGCEとEC2のベ

記事を読む

2015/04/10 GCE vs AWSベンチマーク

2015/04/10 GCE vs AWS ベンチマーク 本シリーズでは定期的にGCEとEC2のベ

記事を読む

GCEはどこまでディスクを拡張できるのか?手順は?

GCEではディスク容量を自由に設定することができますが、どこまで容量が増やすことができるのか

記事を読む

2016/05/25 GCE vs AWS vs Azure ベンチマーク

2016/05/25 GCE vs EC2 vs Azureベンチマーク 本シリー

記事を読む

2015/01/29 GCE vs AWS ベンチマーク

2015/01/29 GCE vs AWS ベンチマーク 本シリーズでは定期的にGCEとEC2のベ

記事を読む

無料で使えるLet’s EncryptをGCEに設定しよう

無料で使えるSSL証明書発行サービス Let’s Encrypt とは? 2015年12月3日、無

記事を読む

GCEのネットワーク性能調査(iperf3でゾーン間やEC2と比較もしてみる)

GCEとEC2の同一ゾーン間と同一リージョン別ゾーン間でのネットワーク性能(ping遅延、iperf

記事を読む

GCEの性能検証 〜WordPressへの負荷テスト〜

2.8万PV/時を捌けるGCE! GCEにWordPressを導入し、負荷検証を実施してみました。

記事を読む

PAGE TOP ↑