Windows Server のリモートデスクトップ接続も、よりセキュアにしたい。
RDP 通信自体は暗号化されていますが、
セッション開始のログインがパスワード認証だけだと不安。
暗号鍵認証を導入したい。
ファイアウォールに余計な穴を開けておきたくない。
という方にいかがでしょうか。
昨今、Windows でもSSH 接続が標準で使えるようになってきた訳ですし。
SSH ポートフォワーディング(トンネリング)経由で、リモートデスクトップ接続する。
Contents
RDP 接続をSSH 接続でよりセキュアにしよう。
AWS のEC2 でのLinux サーバー構築向けのドキュメントに、
SSH ポートフォワーディング 経由でリモート接続をする手順が書かれていました。
■ [AWS] 「Amazon Linux 2」に、Windows 10 からGUI で接続する。
これならリモート先のサーバーのファイアウォールを貫通できるし、暗号鍵認証も使えるからいいね。
ということで、WindowsServer でもやってみた。という話です。
まずはSSH 接続の準備をする。
鍵認証SSH 接続を設定するまでの手順です。
リモートデスクトップ接続の準備をする。
デフォルトではRDP(リモートデスクトップ)は有効になっていません。
Windows Home エディションとかも対応していません。
サーバー側で、リモート接続を有効する。
Windows ロゴマーク > 設定 > システム をクリックします。
1.「リモートディスクトップ」 をクリック。
2.「リモート デスクトップ を有効にする」をオン にします。
はーい。有効にしまーす。
必要に応じていろいろと決めてください。
ポート「3389」を開放しない(ファイアーウォールで通過させない)。
リモート接続を有効にすると、同時にリモート接続用のポートが開かれるので閉じておきます。
SSH でトンネリングする場合、ファイアーウォールも越えられるので、この設定は不要です。
これで3389ポートから普通にリモート接続することは困難に。
通常のリモートデスクトップ接続ができないことを確認。
先ほど、リモート接続ポート通過用の規則を無効化しているので、
普通に接続すると、ファイアウォールにプロックされて接続できません。
SSH ポートフォワーディングを使ってリモートデスクトップ接続する。
SSH ポートフォワーディングを使ってトンネリング。
Power Shell などで下記のコマンドを実行。
<接続先のポート番号>を<自身のポート番号>にマッピングしています。
※改行しないで、1行で実行します。
ssh -L <自身のポート番号>:<接続先サーバー名 or IPアドレス>:<接続先のポート番号>
-i <秘密鍵の場所>/<秘密鍵ファイル名> <接続先ユーザー名>@<接続先サーバー名 or IPアドレス>
実行例:
ssh -L 3389:192.168.3.29:3389 -i .ssh/id_rsa uniuni@192.168.3.29
SSH 接続した時と同じです。
Power Shell はこのまま開いておきます。
※閉じると、ポートフォワーディングが停止されます。
リモートデスクトップ接続する。
現在、サーバーの3389 ポートがローカルの3389 にマッピングされている状態ですので、
ローカルホストを指定してリモートデスクトップ接続が可能です。
接続できました。(※1)
※1:奥のVM の画面はロック画面になり、手前のリモート接続に切り替わっています。
接続状況の確認
参考までにWireshark で通信状況を確認してみました。
SSH 経由でリモートデスクトップ接続した場合。
ループバック
イーサネット
普通にリモートデスクトップ接続した場合。
ループバック
イーサネット
発生するかもしれない事例と対策について。
私の環境では起きたので、対処法をメモして置おきます。
既に進行中のコンソールセッションがあるため、、、
リモートデスクトップ接続するときに「 既に進行中のコンソールセッションがあるため、、、 」のエラーが出るときは、下記の様に接続するポートを変えてみてください。
※60000番は適当に決めてます。
ssh -L 60000:192.168.3.29:3389 -i .ssh/id_rsa uniuni@192.168.3.29
60000 番ポートへリモートデスクトップ接続する。
しばらくすると、SSH 接続が切れて、リモートデスクトップ接続が中断してしまう場合。
サーバーのssh.config ファイルにて、下記のプロパティをコメントアウトを外して有効にする。
ClientAliveInterval 0
sshd を再起動します。
以上です。
ピンバック: Windows で SSH 接続する時のまとめ。Windows 10、Windows Server 2016、2019 - .zapping