💬

RPCでEC2インスタンスにリモート接続する方法【備忘】

に公開

はじめに

RPCを使って、クライアントのWindows端末から、AWS上のEC2WindowsServerのサービスやタスクスケジューラー、イベントビュアーなどを参照する手順を備忘として記載します。


※私個人の使用しているPCはMacのみであり、業務PCにて検証を行ったので実際の画面のスクリーンショットはありません。ご勘弁ください。




最初に困ったこと

RPCと調べるとどうやら135番のポートを使用して通信するらしい。じゃ、セキュリティグループに135許可して、資格情報マネージャーに資格情報登録したら繋げ、、、ない、、、なぜ。というところから始まりました。
そこでまずはRPCについて調べてみました。




RPCってなんなのよ

ではまず、RPCとはなんなのかということについて改めて説明します。
RPC・・・クライアントのWindows端末から、リモートでWindowsのサービスやタスクスケジューラー、イベントビュアーなどを参照したり操作したりするプロトコルです。(あくまでも私の認識)

もちろんそれ以外にも使用されることはあると思いますが、私は今回、先述の3点のために使用しました。




RPCの挙動について

RPCのポートと調べれば135ポートと出てくるかもしれませんが、厳密には間違いです。
135番のポートではRPCプロトコルのセッションを各動的ポートに振り分けてくれる「エンドポイントマッパー」とセッションを確立します。
で、そのエンドポイントマッパーくんが1024~65355の間のポートにランダムに通信を振り分けてくれます。




今回の問題

RPCには135番のポートと、1024~65355番のポートが必要であることを先ほど説明しました。
つまり
・・・セキュリティグループで1024~65355のポートを許可しないといけないってコト!?
ということですがそんなことは許されません。

解決策

ということで解決策ですが、レジストリを編集すること、でした。
以下のサイトに記載があります。(詳しくは読んでねの巻)
https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/networking/configure-rpc-dynamic-port-allocation-with-firewalls

設定値に関しては省きますが以下のことが記載してありました。

・ポートは5000番以降のもので固定してね。他のサービスと競合してしまうかもしれないから。
・最低でもポートは100個確保してね。RPCの性質上、複数のサービスがRPCサービスを介してセッションを確立するから。ポートがすぐ枯渇してしまうから。

こうは言われたものの、あまりサービスを多く使わないということと、実際にWindowsのサービスやタスクスケジューラー、イベントビュアーを同時に開いて使用ポートを確認したところ10ポートを使うようにしていれば問題なく動作したため今回は10だけポートを開くことにしました。




終わりに

本当に備忘程度の記事でしかなくて恐縮ですが、実際これやる時に躓きながらなんとか検証を終えたので残しておきたかったんや。
誰かの助けになれば何よりです。
それではこの辺で。

Discussion