SSHポートフォワードでWINDOWS10リモートデスクトップ

  • 2020年11月17日
  • 日常
  • 15485view

こんにちは、インフラ担当のちぇんです。

今回は自宅の仮想 Windows を SSH ポートフォワードを使ってリモートデスクトップで呼び出します。

もともと自宅に L2TP で VPN を張っているのですが、 いずれは外部に「自宅に接続する用拠点」を用意し自宅へは直接アクセスできないようにするための布石として SSH ポートフォワードを試してみました。

 

準備

今回の環境は以下となります。

 

リモート端末:

端末 ThinkPad X250
OS Windows10 Pro 1909
ユーザ root

 

サーバ端末:

端末 ESXi 6.7.0 Update 3 内の仮想マシン
OS Windows10 Pro 1909
ユーザ developer
IPアドレス 192.168.1.100

 

シェル: PowerShell 7.1.0

 

作業の流れをおおまかに以下となります。

リモートされる側で SSH サーバを立てる

リモートする側で接続するための設定をする

接続確認

セキュリティ強化

 

構成イメージ

 

サーバ側作業

SSH 用ユーザ作成

まず SSH 接続用の専用ユーザを作成します。

OpenSSH 状況確認

クライアントはインストールされてますが、サーバはインストールされてませんでした。

 

OpenSSH.Server インストール

OpenSSH は Windows のオンデマンドを利用します。

 

SSH サーバ準備

SSH サーバ起動

 

Windows 起動時に SSH サーバ自動起動

 

ファイアウォールの SSH 許可確認

 

クライアント側作業

ssh での接続確認

 

SSH トンネル設定

使用しているターミナルが MobaXterm なので一例として載せます。

接続名 設定内容
VM-Developer パスワード認証用のトンネル設定
key_VM-Developer 公開鍵認証用のトンネル設定

 

 

パスワード認証で接続確認

接続設定をしたら、あっさり接続できました。

 

セキュリティ強化

RDP 接続をローカルホストからしか許可しない設定にすることで以下の効果を期待します。

・同じローカルエリア内でも、直接 RDP 接続はできなくなる

・ RDP サーバと同一端末の SSH サーバ を踏み台にすることで SSH サーバ経由時のみ RDP接続が可能となる

 

Windows Defender 設定

リモートデスクトップの以下 3 項目に対して 接続許可を制限する設定をします。

接続を許可するリモート IP アドレス 127.0.0.1

ちなみに直接 RDP 接続している場合、この設定が完了したと同時に RDP 接続が切断されてしまいます

同一端末の SSH サーバ経由で再度接続することになります。

これで直接 RDP 接続は接続不可となります。

 

接続する際は SSH 接続後RDP の設定で Forward port を指定すると転送され接続できます。

公開鍵認証設定

すでに SSH で接続しないと RDP での接続が出来ませんが、パスワードで接続できてしまうため、鍵認証に変更します。

クライアント側で公開鍵を作成し scp でサーバに設置します。

 

サーバ側では sshd のコンフィグ  C:\ProgramData\ssh\sshd_config を修正します。

 

sshd を再起動することで設定が反映されます。

SSH 接続がパスワードでは接続できず公開鍵では接続できるようになりました。

 

まとめ

今回は SSH 鍵認証でかなりてこずりました。

内容は公開鍵を登録するユーザーを間違えていただけなんですが・・・

公開鍵を developer に登録してました・・・

SSH 接続先のユーザ sshuser
リモートデスクトップでログインするユーザ developer

 

解決してしまうと「なんだよ!こんな事かよ!!」と思ってしまうことってありますよね。。。精進します。。。

 

よかった点

・リモートデスクトップのアクセスに対して、セキュリティがかなり強化された気がします。

・ネットワークの論理的な構成について勉強になりました。

・あえて極力 PowerShell のコマンドを調べて取り組んだのでちょっとスキルの幅が拡がった気がします。

 

微妙な点

・まだ自宅に VPN を張り、その中で SSH を張っているので恩恵をあまり感じてません。

 

今後の課題

・VPNを張るにしてもクラウドにサーバを建て、L2TP の接続先 IPアドレスをクラウドの IP アドレスにする。

・上記により L2TP 前の IPSEC 接続時に自宅のグローバル IP が抜かれるリスクを回避する。

 

これからもいろいろ試して記事に使用と思います。よろしくお願いします。

お疲れ様でした。

最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG