SSHポートフォワードとRDPで作る低コストでセキュアなテレワーク環境

新型コロナウイルス対策で、テレワークを実施している企業も多くなってきました。一人情シスの方や、情シスの仕事を片手間でこなしている方などは、テレワークの導入検討や、セキュリティー確保に忙しいかと思います。

テレワークの方法はいくつもありますが、すぐに思いつくのは、会社のルータやサーバーに対し、L2TPなどを利用し接続することです。しかし、クライアントPCが、直接社内のネットワークにつなぐことになるため、社内PC同等のセキュリティー対策を施した会社支給のPCである必要があると考えます。日常使いがノートPCの会社なら、L2TPの設定をして持って帰ってもらえばいいでしょう。しかし、日常使いがデスクトップPCである中小企業では、そのようなPCをすぐに用意することは難しいですし、新しいPCを社員分用意することも難しいと思います。

そこで、コスト的にもセキュリティー的にもオススメなのが、SSHポートフォワードとリモートデスクトップ(RDP)の併用です。SSHポートフォワードに関しては、以下の記事でも紹介していますので見てみてください。

比較的に大きな会社では、NAT で直接インターネットに抜けるのではなく、ブラウザに社内の HTTP Proxyサーバー(以降 プロキシ)を設定してWebにのみアクセスさせる場合...
SSHのポートフォワード(トンネリング)に関してはほかのサイトでもたくさん紹介されています。しかし、Windows で TeraTerm や PuTTY などの GUI を用い...
スポンサーリンク

SSHポートフォワードとリモートデスクトップ(RDP)

イメージとしては、以下の図のように RDP を SSH ポートフォワードさせて、社員の自宅PCから社内のPCにリモートデスクトップ接続します。

  • リモートデスクトップ機能がついているWindows (Pro以上) が社内に必要
    • 社内のPCでリモートデスクトップを許可
  • SSHサーバーを設置
    • 社外からSSHサーバーにアクセスできるように、ルーターのフォワード設定(xx.xx.xx.xxのppポートを、SSHサーバーのSSHポートに転送する)
  • 社員は自宅PCから、SSHポートフォワード接続を実行
  • 社員は自宅PCから、リモートデスクトップ接続を実

こうすることで、社員の自宅PCから、普段業務で利用しているPCをリモート操作することができます。使い勝手も多少遅延があること以外は社内で仕事しているのと変わりません。

さて、会社のルータにSSHフォワードの設定をするなら、RDPをそのままフォワードしてもいいのでは?と思われる方もおられるかもしれません。しかし、RDPを直接フォワードする場合、社員全員分のフォワード設定を行う必要がありますし、なによりRDPのポートを解放することになるためセキュリティー的に好ましくありません。

SSHポートフォワードとセキュリティ

SSHポートフォワードを利用すると、SSHの暗号化されたトンネルの中でRDP接続が行われます。Windows のリモートデスクトップ機能自体も暗号化されているようですが、より安心して通信ができます。

L2TPなどのVPN接続と比べて、社員の自宅PCからの接続はRDPポートだけになるため、個人持ちのPCが社内のPCと比べてセキュリティー的に劣っていたとしても、影響範囲は限定的です。もしも、個人のPCがRDP関連のウィルスに感染していた場合は影響がありますが、個人PCでもウィルス対策ソフトは入っているでしょうし、SSHのローカルフォワードで利用するポートが通常(3389)とは違うため、伝染する可能性も低いです。また、社内PC側でログインパスワードを安全なものに設定しておけば問題はありません。

自宅PCからSSHフォワードでRDP接続

SSHサーバーの構築は一緒に書くと長くなりますので、別途、以下の記事を参照してください。

SSHポートフォワードで、踏み台サーバーを設定することがあると思います。最近では新型コロナウィルスの対策でテレワークが推奨されていることもあり、ますますその機会は増えているかと...

SSHサーバの構築が終わった前提で、社員の自宅PCから接続する方法を紹介します。以下の順番で説明します。

  1. SSHコマンドを実行する環境を構築(Cygwinインストール)
  2. コマンド実行
  3. リモートデスクトップ接続
最近の Windows 10 の場合は、sshコマンドがすでに入っている場合があると思います。その場合、「SSHコマンドを実行する環境構築」の項は飛ばして、「コマンド実行」の項にあるコマンドをコマンドプロンプトから実行してください。

SSHコマンドを実行する環境構築

自宅の PC に Cygwin をインストールします(すでにsshコマンドがある環境の人は、コマンド実行に進んでください)。Cygwinインストールは、すべてデフォルトで構いません。
Cygwin のダウンロード:
https://www.cygwin.com/

コマンド実行

Cygwin を起動し、以下のコマンドを実行します。(Windows 10 標準を利用する場合は、コマンドプロンプトから以下を実行)

ssh (社内ルータのアドレス) -p (ポート) -L (自宅PCに開くポート):(会社のPCのIPアドレス):(RDPポート)
ssh shainA@xx.xx.xx.xx -p pp -L 13389:192.168.1.10:3389

RSAキー(公開鍵方式)を利用する場合は以下のようにして、キーを指定します。

ssh -i (キーのパス) (社内ルータのアドレス) -p (ポート) -L (自宅PCに開くポート):(会社のPCのIPアドレス):(RDPポート)
ssh -i ".ssh/id_rsa" shainA@xx.xx.xx.xx -p pp -L 13389:192.168.1.10:3389
13389 は自由に変えて結構です。以下のリモートでストップ接続の際に指定するポート番号になります。

リモートデスクトップ接続

あとは、自宅PCから社内PCへリモートデスクトップ接続を行います。
SSHフォワードコマンドを実行した、自宅PCでキーボードのwindows+R で mstsc を入力しエンターキーで確定します。

出てきた画面に、127.0.0.1:13389 または、localhost:13389 と入力します。

この後、認証画面が出てきます。社内PCに設定しているユーザ名とパスワードを入力すれば、社内のPCにリモートデスクトップ接続できます。

社員が自宅PCで操作する、これら一連の作業を、「bat」「powershell」「cygwinのshell」などで自動化すると、より使いやすいものになります。自社の環境に合わせて、実装してください。