Windows - OpenSSH

インバウンド接続のない環境への接続

定義

KCMサーバー: Keeperコネクションマネージャーを実行するインスタンス。

リモートエンドポイント: KCMサーバーからはまだ直接アクセスできない、データ着信手段のない保護されたネットワーク内のWindowsインスタンス。

要件 - OpenSSHクライアントおよびサーバーのインストール

WindowsにOpenSSHが搭載されるようになりました、デフォルトではインストールされていない場合がありますので、OpenSSHクライアントとOpenSSHサーバーの両方をインストールすることを推奨します。

マイクロソフトによるOpen SSHのインストール手順については、こちらをご参照ください。

リバーストンネルの設定

以下の手順は、クラウドのKCMサーバーからネットワークへの着信手段がないリモートエンドポイントへの接続を確立する方法となります。

  1. KCMサーバーのインバウンドSSHを許可

KCMサーバーで、リモートサーバーからKCMインスタンスへのインバウンドSSHポート22接続が解放されていることを確かにします。リバーストンネルを設定するために、リモートサーバーからKCMインスタンスへのアウトバウンド接続を確立します。

  1. リモートエンドポイントでSSH鍵を生成

Windowsリモートエンドポイントで、エンドポイントからKCMサーバーへのアウトバウンド接続を確立するために使用するSSH鍵のペアを作成します。管理者特権のコマンドプロンプトに以下のように入力します。

これにより秘密鍵と公開鍵の2つのファイルが作成されます。秘密鍵はそのままにします。

次に、公開鍵ファイル (.pub) をWindowsエンドポイントからKCMサーバーにコピーします。

発信トラフィックが許可されている場合は、管理者としてPowerShellで以下のコマンドを使用できます。

  1. リモートエンドポイントからKCMサーバーへのSSH接続を確認

これで、プロンプトなしでリモートサーバーからKCMサーバーにSSH接続できるようになりました。

  1. sshトンネルを確立

永続セッションを作成するには、sshコマンドを記載したバッチファイルとWindowsタスクスケジューラを使用します。まず、メモ帳を開き、以下のコマンドでコピーします。

パス、目的のポート、URL に対応する値を使用してコマンドを編集し、ファイルを.batファイルとして保存します。

Windowsタスクスケジューラを開き、トリガーを「at startup」 (起動時) に、アクションを作成した.batファイルを実行にして新しいタスクを作成します。

  1. KCMサーバーでGatewayPorts設定を更新

この手順は1度しか実行する必要はありませんので、別のリバースsshトンネルメソッドの設定中にすでに完了した場合は、手順7へお進みください。

KCMサーバーで、SSHプロセス (sshd) を変更して、リモートホスト (guacdのDockerコンテナなど) が転送ポートに接続できるようにする必要があります。デフォルトでは、sshdはリモートポート転送をループバックアドレスにバインドします。GatewayPortsの値を「clientspecified」に設定すると、クライアントは転送されたポートのバインド先のアドレスを選択できます。

  • /etc/ssh/sshd_configファイルを編集します

  • GatewayPorts行を以下のように更新します

  • sshdを再起動します

これで、リモートサーバーとKCMサーバー間のリバーストンネルが確立されました。

  1. docker-composeを更新してホストを参照

この手順は、Dockerインストールにのみ適用されます。

Dockerインストール環境では、host.docker.internalという特殊なホスト名を使用して、Keeperコネクションマネージャーホストインスタンスへの接続を確立できます。

これを設定するには、以下のように、/etc/kcm-setup/docker-compose.ymlファイルのguacdセクションを更新して、「extra_hosts」パラメータを追加します。

Docker環境を更新して、変更を反映させます。

  1. 目的のリモートサーバーへの接続を作成

リバースSSHトンネルが設定され、Dockerコンテナがリバーストンネルにアクセスできるようになりましたので、Keeperコネクションマネージャーインターフェイスから接続を作成します。

ホスト名はhost.docker.internal、ポートは9000 (または任意のポート) を使用して、新しいRDP接続を作成します。

リバースSSHトンネルを使用した接続の作成

いつものように、適切な認証パラメータがリモートサーバーの接続に入力されていることを確かにします。この場合、リバースSSHトンネルを確立してリモートサーバーにアクセスしています。

接続を保存し、「My Connections」 (接続) か「Home」 (ホーム) 画面に戻ってから、作成したばかりの接続をクリックして、正常にルーティングされたことを確認します。

さらに接続を作成

リバースSSHトンネリングを使用してさらに接続を確立したい場合は、別のポート (9001、9002など) で手順4を繰り返します。そのうえで、Keeperコネクションマネージャー内で接続を作成する場合は、指定したポート番号で接続を作成します。

参考資料

以下は、この設定に関して役に立つ情報が掲載されているオンライン参考資料となります。

最終更新