ひかり電話ルータでテレワーク!SSHポートフォワードを使ったセキュアなリモートデスクトップ接続(Windows編)

RemoteDesktop

前回に引き続き、テレワークのためのリモートデスクトップ接続について、今回はWindows10標準のOpenSSHでポートフォワード機能を使った方法を紹介します。

youtubeに動画をupしました。視聴はこちら↓

リモートデスクトップの設定やVPN接続についてはこちら↓。

SSHポートフォワードとは

SSHポートフォワードによるリモートデスクトップの概要を以下の図に表します。()内の数字はポート番号です。

プライベートLANの間はSSH(Secure Shell)で通信して、SSHサーバーがポートフォワード機能でリモートデスクトップの通信を転送します。リモートデスクトップをインターネットに公開するのはあまりにも危険ですが、SSHで鍵をかけて鍵を持ってる人しかログインできないようにすれば大幅にセキュリティが向上します。

SSHポートフォワード専用にサーバーをたててもいいのですが、構築や管理が面倒なので、SSH標準のポート番号22を接続先毎に変更して、ひかり電話ルータの静的IPマスカレード機能で振り分けて、各端末でSSHを受け付けるようにします。

IPマスカレードはNAPT(Network Address Port Translation)とも呼ばれ、送信元から送られた宛先のIPアドレスとポート番号を変換する技術です。インターネットからはプライベートLANのIPアドレスを指定できないので、ポート番号で特定の端末に振り分ける事ができます。

接続先(操作を受け付ける側)の設定

Windows10の設定

OpenSSHサーバー設定

SSHを受け付けるため、OpenSSHサーバーをインストールします。「設定」-「アプリ」-「オプション機能」-「機能の追加」を選択後、「OpenSSHサーバー」の「インストール」ボタンをクリックします。インストールが終わるまで少し待ちます。

「Windows管理ツール」-「サービス」を選択後、「OpenSSH SSH Server」の「プロパティ」を選択します。「スタートアップの種類」で「自動」を選択後、「適用」をボタンをクリックして、「開始」ボタンをクリックします。

設定ファイル「C:¥ProgramData¥ssh¥sshd_config」を編集します。「PubkeyAuthentication」のコメントを外して公開鍵による認証を有効にします。「PasswordAuthentication」はコメントを外して「no」にする事によりパスワード認証を無効にします。
最終の2行「Match Group administrators」をコメントにして管理者の場合の定義を無効にします。
修正後、サービスを再起動しましょう。

2020/6/5 追記

最終行をコメントにした後に、OpenSSHサービスを再起動しないと「Permission denied」のエラーになるため、手順を追加。

公開鍵作成

認証用の公開鍵を作成します。鍵を作成するユーザーでログオンした後、「コマンドプロンプト」で「ssh-keygen」を入力します。すると、「.ssh」に「id_rsa」と「id_rsa.pub」が作成されます。「id_rsa.pub」はSSHサーバーが使うので「authorized_keys」にリネームします。「id_rsa」は後で接続元(操作する側)で使います。

「authorized_keys」のアクセス権に「Everyone」が付いてるとエラーになるので削除します。修正後、またサービスを再起動します。

2020/6/5 追記

autohorized_keysのアクセス権を変更した後、OpenSSHサービスを再起動しないと「Permission denied」のエラーになるため、手順を追加。

ひかり電話ルータの設定

SSHを各端末に振り分けるため、ひかり電話ルータで静的IPマスカレードの設定をします。

静的IPマスカレード設定

「詳細設定」から「静的IPマスカレード設定」を選択後、適当な行の「編集」ボタンをクリックします。

「変換対象ポート」は後で使うので入力した番号をメモします。「宛先IPアドレス」に接続先の端末のIPアドレス、「宛先ポート」は22を入力して、「設定」ボタンをクリックします。

接続元(操作する側)の設定

接続するには

OpenSSHクライアント

OpenSSHクライアントはWindows10には標準でインストールされており、特に設定はありません。

「コマンドプロンプト」等で

「ssh -i 公開鍵 -L 接続元のポート:localhost:接続先のRDPポート -l ユーザー 接続先のWAN側IP -p SSHポート」

を入力するだけです。概要図の例の場合は以下のように入力します。

ssh -i d:¥sshkey¥id_rsa -L 12345:localhost:12345 -l test 1.2.3.4 -p 11111

リモートデスクトップ

「Windowsアクセサリ」の「リモートデスクトップ接続」を選択して、図のように「コンピューター」にlocalhost:OpenSSHクライアントで指定した接続元のポート番号を入力して、「接続」ボタンをクリックすると繫がります。

まとめ

VPNに較べるとSSHポートフォワードは設定が複雑ですが、一度設定すれば次からは簡単です。何よりもVPNのように突然切れるような事がなく、全くストレスを感じないのでとても快適です。

今回はWindows10からSSHポートフォワードで接続する方法を紹介しましたが、次回はAndroidから接続する方法を記事にしたいと思います。

コメント

  1. dublaj より:

    I have been exploring for a bit for any high-quality articles or blog posts on this kind of area . Lolita Royall Gemina

タイトルとURLをコピーしました