LogoLogo
Keeperコネクションマネージャー
Keeperコネクションマネージャー
  • 概要
  • セキュリティアーキテクチャ
  • インストール
    • ライセンスキー
    • システム要件
    • インストールの準備
    • Dockerの自動インストール
      • サービス管理
      • アップグレード
      • パッケージの追加
    • Docker Composeインストール
      • keeper/guacamole
      • keeper/guacd
      • データベースイメージ
        • keeper/guacamole-db-mysql
        • keeper/guacamole-db-postgres
      • SSLターミネーション
        • keeper/guacamole-ssl-nginx
        • カスタムSSL証明書の使用
      • アップグレード
    • バックアップと復元
  • 認証オプション
    • SAML SSO認証
      • Microsoft Azure
      • Okta
      • Google Workspace
      • OneLogin
      • Oracle
      • PingIdentity
    • TOTPを使用した2FA
    • Duoを使用した2FA
    • SSL/TLSクライアント認証
    • 複数のホスト名
    • PIV/CAC/スマートカード
    • アカウントの承認/拒否ワークフロー
    • OpenID Connect認証
    • LDAP認証
      • 複数のLDAPサーバーの使用
      • LDAP内の接続データを格納
      • LDAPとデータベースの併用
  • 接続プロトコル
    • RDP
    • SSH
    • VNC
    • Telnet
    • リモートブラウザ分離
    • Kubernetes
    • MySQL
      • インポートとエクスポート
      • キーボードショートカット
    • PostgreSQL
      • インポートとエクスポート
      • キーボードショートカット
    • Microsoft SQL Server
      • インポートとエクスポート
      • キーボードショートカット
    • ホストインスタンスへの接続
    • 永続的リバースSSHトンネル
      • WindowsサービスとしてのAutoSSH
      • Linux - AutoSSH
      • Windows - OpenSSH
  • KCMの使用方法
    • ログイン画面
    • ホーム画面
    • 接続の作成
      • 接続の一括インポート
    • KCMの使用方法
    • ファイル転送設定
    • 接続の共有
    • セッションのレコーディングと再生
    • AWS EC2ディスカバリ
    • クレデンシャルパススルー
    • 動的接続
    • カスタムブランディング
      • ロゴを追加する
  • ボルト連携
    • KCMをボルトに接続
    • 動的トークン
    • 静的トークン
    • 複数ボルトの連携
    • EC2 Cloud Connector
    • 高度な機能
    • KeeperPAM
  • カスタム拡張機能
  • ゲストモード
  • 高可用性
  • 詳細設定
    • guacamole.properties
      • SAML 2.0認証の設定プロパティ
      • Duo二要素認証の設定プロパティ
      • 暗号化されたJSONの設定プロパティ
      • LDAP設定のプロパティ
      • MySQL/MariaDBの設定プロパティ
      • PostgreSQL設定のプロパティ
      • SQL Serverの設定プロパティ
      • ログイン試行のプロパティ
  • トラブルシューティング
  • 接続のインポート
  • 接続のエクスポート
  • リリース前テスト
  • 変更記録
  • ライセンス供与とオープンソース
  • サポート範囲
  • セキュリティアドバイザリ
  • アクセシビリティ適合性
Powered by GitBook
On this page
  • 定義
  • 要件 - Cygwinのインストール
  • リバーストンネルの設定
  • さらに接続を作成
  • 参考資料
  1. 接続プロトコル
  2. 永続的リバースSSHトンネル

WindowsサービスとしてのAutoSSH

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

Previous永続的リバースSSHトンネルNextLinux - AutoSSH

Last updated 4 months ago

以下は、autosshをWindowsサービスとして実行する場合の手順となります。

定義

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

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

要件 - Cygwinのインストール

インストール後、opensshパッケージとautosshパッケージの両方を選択し、ダウンロードしてインストールします。

以下のように、[Next] (次へ) > 「Install from Internet」 (インターネットからインストール) > 「All Users」 (すべてのユーザー) > [Next] (次へ) > [Next] (次へ) > [Next] (次へ) > 任意のミラーサイトを選択 > [Next] (次へ) の順に進みます。

以下のように、「Select Packages」 (パッケージの選択) 画面で、表示を「Pending」 (保留中) から「Full」 (すべて) に変更し、検索ボックスに「ssh」と入力します。autosshの下矢印をクリックして、最新バージョンを選択します。opensshの下矢印をクリックして、最新バージョンを選択します。

リバーストンネルの設定

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

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

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

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

WindowsリモートエンドポイントでCygwinターミナルを使用して、エンドポイントからKCMサーバーへのアウトバウンド接続を確立するために使用するSSH鍵のペアを作成します。Cygwinターミナルに以下を入力します。

ssh-keygen -t ed25519

鍵を保存する場所を尋ねられますが、Enterキーを押してデフォルトを使用して続行できます。

これにより、秘密鍵と公開鍵の2つのファイルが作成されます。 秘密鍵はそのままにしておきます。対象のエンドポイントからKCMサーバーに公開鍵をコピーします。

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

任意の転送方法で.pubファイルを転送します。

任意の転送方法で.pubファイルを転送します。Windowsの対象のエンドポイントで発信トラフィックが許可されている場合は、Cygwinターミナルで以下のコマンドを使用できます。

cd .ssh
ssh-copy-id user@kcm.server.xyz
  1. リモートエンドポイントからKCMサーバーへのSSH接続を確認

これで、パスワードプロンプトなしでリモートサーバーからKCMサーバーにSSH接続できるようになるはずです。

ssh username@kcm.server.xyz

Last login:Mon Jul  4 20:28:10 2022 from ip-10-0-1-7.my.remote
  1. 永続SSHトンネルを確立

永続トンネルを作成するには、以下の2つのコマンドをWindowsのコマンドプロンプトまたはPowerShellに入力します (Cygwinターミナルにではありません)。

必要なポート (HTTP/HTTPS/SSH) 以外のすべてのポートでインバウンド接続をブロックするためのファイアウォールを必ず設置してください。また、以下のコマンドの0.0.0.0をKCMサーバーのIPに変更してください。

cd C:\cygwin64\bin

使用する開放ポートを選択します。この例ではポート9000を使用します。

cygrunsrv -I AutoSSH -p /usr/bin/autossh -a "-M 20000 -R 0.0.0.0:9000:localhost:3389 username@hostenameORipaddress" -e AUTOSSH_NTSERVICE=yes
  1. Windowsサービスを設定

「Services」 (サービス) を開き、「AutoSSH」という新しいサービスを探して開き、起動しないでおきます。

管理者アカウントで自動遅延開始とログオンを設定します。 これらの設定により、サービスが正常に開始するのを助けます。

「Log On」 (ログオン) タブで[Browse...] (参照) をクリックし、管理者オブジェクト名を入力して、「Check Names」 (名前の確認) をクリックします。 両方のフィールドに管理者アカウントのパスワードを入力してください。

これで、以下で見られるようにAutoSSHサービスを開始する準備ができました。

AutoSSHサービスを開始し、動作していることを確認します。

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

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

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

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

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

GatewayPorts clientspecified
  • sshdを再起動します

sudo service sshd restart

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

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

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

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

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

    guacd:
        image: keeper/guacd:2
        restart: unless-stopped
        environment:
            ACCEPT_EULA:"Y"
        volumes:
            - "common-storage:/var/lib/guacamole:rw"
        extra_hosts:
            - "host.docker.internal:host-gateway"

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

sudo ./kcm-setup.run stop
sudo ./kcm-setup.run upgrade
  1. 目的のリモートサーバーへの接続を作成

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

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

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

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

さらに接続を作成

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

参考資料

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

リモートエンドポイントで、からCygwinをインストールします。 ダウンロードリンクは、です。

こちら
こちら
SSH tunnelling for fun and profit: AutosshEverything CLI
Logo
How to make an SSH tunnel publicly accessible?Super User
Selecting Interface for SSH Port ForwardingServer Fault
How to connect to the Docker host from inside a Docker container?Medium
Logo
Logo
Logo
リバースSSHトンネルを使用した接続の作成