VNC

VNCプロトコル接続タイプの詳細設定

Keeper Connection ManagerのVNCプロトコルのサポートは、kcm-libguac-client-vncパッケージが担います。このパッケージは、インストールで@kcmパッケージグループを使用した場合、デフォルトでインストールされ、keeper/guacdのDockerイメージ内にすでにインストールされています。このパッケージがまだインストールされていない場合、VNC接続は機能せず、必要なプロトコルがサポートされていないことを示す警告がguacdのログに記録されます。

guacd[8]:WARNING:Support for protocol "vnc" is not installed

このようなエラーがguacdのログに表示される場合は、kcm-libguac-client-vncをインストールするだけでこの問題を解決するには十分です。

$ sudo yum install kcm-libguac-client-vnc

guacdサービスは、VNCサポートのインストールを有効にするために再起動する必要はありません。

概要

KeeperでVNCプロトコルのサポートを管理するには、複数のパラメータを使用します。MySQLPostgreSQLなどのデータベースを使用する場合、これらのパラメータは使いやすいWebインターフェースで表示されます。暗号化されたJSONLDAPスキーマの変更など、別のメカニズムを使用して接続を定義する場合、パラメータは内部パラメータ名を使用して指定します。

このドキュメントは、Webインターフェース内と同じ方法でグループ化された、サポート対象パラメータを網羅することを目指しています。Webインターフェースに表示されるフィールド見出しは、パラメータごとに表示され、各パラメータの内部名、およびそのパラメータの動作の詳細な説明と適正値も一緒に表示されます。

GuacamoleのVNCサポートによって提供される一部の機能の実装には、SFTPやPulseAudioなどのプロトコルが追加で使用されています。これは透過的に実行されます。guacdとリモートデスクトップサーバー間で使用されるネットワーク接続が追加される場合がありますが、ユーザーとGuacamole間の通信はすべて引き続き1つの接続のみを使用します

Keeper Secrets Managerのパラメータ

フィールド見出しパラメータ名説明

ユーザー提供のKSM設定を許可:

ksm-user-config-enabled

「true」に設定すると、Keeper Connection Managerの各ユーザープロファイルを任意の接続のKeeper Secrets Manager設定に割り当てることができます。詳細は、複数ボルトの連携画面をご参照ください。

ネットワークパラメータ

VNC接続は、TCPを使用して特定のポートと特定のホスト名またはIPアドレスに対して確立されます。一般的に、各VNCサーバーはディスプレイ番号に関連付けられており、そこから適切なポート番号を取得しますが、ほとんどのVNCサーバーには、このデフォルト動作をオーバーライドする手段が用意されています。ホスト名とポートは両方とも、すべてのVNC接続に必須のパラメータです。

フィールド見出し(Webインターフェース)パラメータ名説明

ホスト名:

hostname

**必須:**Guacamoleが接続するVNCサーバーのホスト名またはIPアドレス。

ポート:

port

必須:VNCサーバーの待ち受けTCPポート。

この値は通常、5900または5900+ディスプレイ番号です。たとえば、VNCサーバーがディスプレイ番号1(「:1」と表記される場合もある)にサービスを提供している場合、ポート番号は5901になります。

認証パラメータ

VNC標準ではパスワードベースの認証のみが定義されており、その他の認証メカニズムは非標準または独自のものです。Keeper Connection Managerは現在、パスワード方式のみをサポートしています。

フィールド見出し(Webインターフェース)パラメータ名説明

パスワード:

password

認証を試行するときに使用するパスワード(必要に応じて)。

ディスプレイ設定

VNCサーバーは、クライアントが特定のディスプレイサイズを指定することを許可しないため、表示の幅と高さに関してはVNCサーバーの設定がそのまま使用されます。ただし、帯域幅の使用量を減らすために、VNCサーバーに色深度の低減を要求することができます。Guacamoleは256色の画像を自動的に検出しますが、色深度を8ビットに強制することで、接続を介して送信されるすべての画像にもれなく256色を保証できます。それ以外の色深度はVNCサーバーが決定します。

マウスカーソルの消失、複数のマウスカーソルの出現、またはおかしな色(青色がオレンジや赤のように見えるなど)など、VNCディスプレイの問題が見られる場合、一般的に、これらはVNCサーバー内のバグまたは制限によるものであり、このような問題を回避するために追加のパラメータが用意されています。

フィールド見出し(Webインターフェース)パラメータ名説明

読み取り専用:

read-only

この接続を読み取り専用にするか否か。「true」に設定すると、接続で入力が一切できなくなります。自分のデスクトップと、同じデスクトップを使用している他のユーザーが行っているすべての操作を閲覧できるのみになります。

赤/青成分の置換:

swap-red-blue

ディスプレイの色が正しく表示されない場合(青がオレンジや赤などに見えるなど)、VNCサーバーがイメージデータを正しく送信していないため、個々の色の赤と青の成分が入れ替わっている可能性があります。このような場合は、このパラメータを「true」に設定することで問題を回避できます。

カーソル:

cursor

「remote」に設定すると、マウスポインタはリモートでレンダリングされ、マウスポインタのローカルの位置が小さなドットで示されます。リモートマウスカーソルはローカルカーソルよりも遅い感じがしますが、VNCサーバーがカーソルイメージのクライアントへの送信をサポートしていない場合は必要になることがあります。

色深度:

color-depth

色深度の指定(ピクセルあたりのビット数)。適正値は、8、16、24、32です。ここでどのような値が選択されているかにかかわらず、Guacamoleは常に画像伝送を最適化しようとし、ピクセルあたりの使用ビット数を下げても画質が目に見えて変化しない場合は、自動的に下げます。

可逆圧縮を強制:

force-lossless

この接続で可逆圧縮のみを使用するか否か。「true」に設定すると、すべての画像更新で可逆圧縮アルゴリズムが使用されます。デフォルトでは、非可逆圧縮の方が無損失圧縮よりも優れている可能性が高いことをGuacamoleが検出すると、自動的に非可逆圧縮が使用されます。

クリップボードのパラメータ

GuacamoleはVNC接続でクリップボードへの双方向アクセスをデフォルトで可能にし、クリップボードのデータをネイティブのUTF-8形式からVNC標準で必要なISO 8859-1エンコーディングに自動的に変換します。この動作は接続ごとにオーバーライドでき、クリップボードへのアクセスを制限したり、VNCサーバーが非標準エンコーディングを使用しているとGuacamoleに強制的に想定させたりできます。

**VNCサーバーでサポートが保証されているクリップボードのエンコーディングは、ISO 8859-1のみです。**クリップボードのエンコーディングをオーバーライドするのは、VNCサーバーがサポートしており、異なるエンコーディングを想定していることが_確実な_場合にのみにしてください。

フィールド見出し(Webインターフェース)パラメータ名説明

エンコーディング:

clipboard-encoding

VNCのクリップボードで想定されるエンコーディング。デフォルトでは、標準エンコーディングのISO 8859-1が使用されます。このパラメータを使用するのは、VNCサーバーが非標準の別のエンコーディングを想定していることが確実な場合のみにしてください。

設定できる値は以下のとおりです。

  • ISO8859-1」- VNC標準で必須のクリップボードのエンコード。

  • "UTF-8"

  • "UTF-16"

  • CP1252」- コードページ1252、ほとんどがISO 8859-1のスーパーセットであるWindows固有のラテン文字用エンコード。

リモートデスクトップからのコピーを無効化:

disable-copy

「true」に設定すると、VNCセッション内でコピーされたテキストは、Guacamoleセッションのブラウザ側ではユーザーからアクセスできなくなり、リモートデスクトップ内でのみ使用できるようになります。デフォルトでは、ユーザーはコピーしたテキストにアクセスできます。

クライアントからの貼り付けを無効化:

disable-paste

「true」に設定すると、Guacamoleセッションのブラウザ側でコピーされたテキストは、VNCセッション内でアクセスできなくなります。デフォルトでは、ユーザーはVNCセッション内でブラウザ以外からデータを貼り付けることができます。

VNCリピータのパラメータ

VNCリピータにはUltraVNCリピータなどがあり、中継またはプロキシとして機能し、1つの論理VNC接続を確立した後、別のVNCサーバーにルーティングされます。リピータの背後にあるどのVNCホストが接続を受信するかを選択するには、追加のパラメータが必要です。

フィールド見出し(Webインターフェース)パラメータ名説明

宛先ホスト:

dest-host

UltraVNCリピータなどのVNCプロキシに接続するときに指定する宛先ホスト。この設定が必要なのは、接続するユーザーが使用中のVNCプロキシに接続先のVNCサーバーを指定する必要がある場合のみです。VNCプロキシが特定のサーバーに自動的に接続する場合は、このパラメータは必要ありません。

宛先ポート:

dest-port

UltraVNCリピータなどのVNCプロキシに接続するときに指定する宛先ポート。この設定が必要なのは、接続するユーザーが使用中のVNCプロキシに接続先のVNCサーバーを指定する必要がある場合のみです。VNCプロキシが特定のサーバーに自動的に接続する場合は、このパラメータは必要ありません。

画面記録パラメータ

VNCのセッションは画像で記録できます。これらの記録は、Guacamoleプロトコルのダンプ形式を取り、指定したディレクトリに自動的に記録されます。その後、player.glyptodon.comでホストされているGlyptodon Enterprise Session Recording Playerアプリケーションを使用して(またはこのアプリケーションのローカルデプロイを使用して)、記録を再生できます。

このプレーヤーは静的なウェブアプリケーションであり、作成された記録の再生にはJavaScriptのみを使用します。この機能は厳密にローカルで実行され、記録がリモートサービスにアップロードされて処理されることはありません。このアプリケーションの独自のデプロイを使用したい場合、またはソースコードを調査したい場合は、Glyptodon Enterprise Session Recording Playerの完全なソースコードとローカルデプロイの手順が次のGitHubにあります。https://github.com/glyptodon/glyptodon-enterprise-player

Keeper Connection Managerの最新バージョンでは、記録されたセッションの画面上での再生がサポートされています。 セッション記録のドキュメントページをご参照ください。

フィールド見出し(Webインターフェース)パラメータ名説明

記録のパス:

recording-path

画面記録ファイルを作成するディレクトリ。**画像記録の作成が必要な場合は、このパラメータが必要です。**このパラメータを指定すると、画像による画面記録が有効になります。このパラメータを省略した場合、画像記録は作成されません。

記録名:

recording-name

作成されたすべての記録に使用するファイル名。省略した場合、各記録のファイル名は単に「recording」となります。

Guacamoleは既存の記録を上書きしません。必要に応じて、「.1」、「.2」、「.3」などの数字のサフィックスをファイル名に付加して、既存の記録が上書きされないようにします。数字のサフィックスを付加しても区別できない場合は、セッションは記録されず、エラーがログに記録されます。

このパラメータは、画像の記録が有効になっている場合にのみ機能し、記録のパスを指定することで制御できます。記録のパスが指定されていない場合、セッションの画像による記録は有効にならず、このパラメータは無視されます。

画像/ストリームを除外:

recording-exclude-output

「true」に設定すると、通常サーバーからクライアントにストリーミングされる画像出力やその他のデータが記録から除外され、ユーザー入力イベントのみを含む記録が生成されます。デフォルトでは、画像出力は記録に含まれます。

このパラメータは、画像の記録が有効になっている場合にのみ機能し、記録のパスを指定することで制御できます。記録のパスが指定されていない場合、セッションの画像による記録は有効にならず、このパラメータは無視されます。

マウスを除外:

recording-exclude-mouse

「true」に設定すると、ユーザーのマウスイベントが記録から除外され、マウスカーソルが表示されない記録が作成されます。デフォルトでは、マウスイベントは記録に含まれます。

このパラメータは、画像の記録が有効になっている場合にのみ機能し、記録のパスを指定することで制御できます。記録のパスが指定されていない場合、セッションの画像による記録は有効にならず、このパラメータは無視されます。

キーイベントを記録:

recording-include-keys

「true」に設定すると、ユーザーキーイベントが記録に含まれます。その後、記録をguaclog ユーティリティに渡して、セッション中に押されたキーを人間が判読できるように変換できます。デフォルトでは、プライバシー保護のため、キーイベントは記録に含まれ「ません」。

このパラメータは、画像の記録が有効になっている場合にのみ機能し、記録のパスを指定することで制御できます。記録のパスが指定されていない場合、セッションの画像による記録は有効にならず、このパラメータは無視されます。

記録のパスを自動作成:

create-recording-path

「true」に設定すると、指定した記録のパスの末尾のディレクトリがまだ存在しない場合、自動的に作成されます。デフォルトでは、記録のパスの一部が自動的に作成されることはなく、存在しないディレクトリを使用しようとすると、セッションは記録されず、エラーがログに記録されます。

自動的に作成されるのは、パス内の末尾のディレクトリのみです。パスの末尾以外の先頭の方のディレクトリが存在しない場合、セッションは記録されず、エラーがログに記録されます。

このパラメータは、画像の記録が有効になっている場合にのみ機能し、記録のパスを指定することで制御できます。記録のパスが指定されていない場合、セッションの画像による記録は有効にならず、このパラメータは無視されます。

SFTPパラメータ(ファイル転送)

VNCは通常、ファイル転送をサポートしていませんが、リモートデスクトップが通常ならSSHではなくVNC経由でアクセスされている場合でも、Guacamoleではファイル転送にSFTPを使用できます。

フィールド見出し(Webインターフェース)パラメータ名説明

SFTPを有効化:

enable-sftp

ファイル転送を有効にするか否か。「true」に設定すると、ユーザーは指定されたサーバーからSFTPを使用してファイルをアップロードまたはダウンロードできるようになります。省略した場合、SFTPは無効になります。

ホスト名:

sftp-hostname

SFTPを提供するサーバーのホスト名またはIPアドレス。省略した場合、VNCサーバーの指定したホスト名またはアドレスが使用されます。

ポート:

sftp-port

SFTPを提供するSSHサーバーの待ち受けポート(通常は22)。省略した場合、標準のポート22が使用されます。

ホストの公開鍵(Base 64):

sftp-host-key

SFTPを提供するSSHサーバーのknown hostsエントリ。OpenSSHのknown_hostsファイル内で指定されるのと同じ形式 。設定しない場合、ホストIDの検証は実行されません。

ユーザー名:

sftp-username

SFTP用に指定したSSHサーバーに接続する場合と同様に、認証するユーザー名。SFTPが有効な場合、このパラメータは必須です。

パスワード:

sftp-password

SFTP用に指定したSSHサーバーで認証する場合に使用するパスワード。

秘密鍵:

sftp-private-key

公開鍵認証に使用する秘密鍵のすべての内容。このパラメータを指定しない場合、公開鍵認証は使用されません。秘密鍵は、OpenSSH形式である必要があります。OpenSSHのssh-keygenユーティリティによって生成されるのと同様です。

パスフレーズ:

sftp-passphrase

公開鍵認証で使用する秘密鍵を復号するために使用するパスフレーズ。秘密鍵がパスフレーズを必要としない場合、このパラメータは必要ありません。

ファイルブラウザのアップロード先ディレクトリ:

sftp-root-directory

Guacamoleのファイルブラウザを使用して接続ユーザーに公開するディレクトリ。省略した場合、デフォルトでルートディレクトリが使用されます。

デフォルトのアップロードディレクトリ:

sftp-directory

ファイルを単にドラッグアンドドロップした場合に、ファイルがアップロードされるディレクトリ。ドラッグアンドドロップ以外の方法では、アップロード場所を指定する必要があります。省略した場合、SFTPを提供するSSHサーバーのデフォルトのアップロード場所が使用されます。

SFTPキープアライブ間隔:

sftp-server-alive-interval

SFTP接続のためにキープアライブパケットをSSHサーバーに送信する間隔(秒単位)。ここで「0」 は、キープアライブパケットを一切送信しないことを意味します(デフォルトの動作)。適正な最小値は「2」です。

オーディオパラメータ(PulseAudio)

VNCは独自のオーディオサポートを提供していませんが、GuacamoleのVNCサポートは、VNCサーバーと同じマシンで実行されているPulseAudioサーバーへのセカンダリネットワーク接続を使用してオーディオを利用できます。

ほとんどのLinuxシステムは、PulseAudioというサービスを使用してオーディオを提供しています。このサービスはネットワークを通じて通信することができ、PulseAudioがTCP接続を許可するように設定されている場合、GuacamoleはPulseAudioサーバーに接続し、オーディオをVNCで送信される画像と組み合わせることができます。

VNCのオーディオサポートを設定するために、以下のパラメータが用意されています。

フィールド見出し(Webインターフェース)パラメータ名説明

オーディオを有効化:

enable-audio

「true」に設定すると、オーディオサポートが有効になり、VNC接続に加えて2番目のPulseAudio接続が確立されます。デフォルトでは、VNC内のオーディオサポートは無効になっています。

オーディオサーバー名:

audio-servername

接続先のPulseAudioサーバーの名前。これは、ご利用の接続にPulseAudio経由でオーディオを送信するコンピュータのホスト名またはアドレスで、ほとんどの場合、VNCサーバーのホスト名/アドレスと同じです。

このパラメータを省略すると、デフォルトのPulseAudioデバイスが使用されます。これは、guacdと同じマシンで実行されているPulseAudioサーバーになります。

TCP接続を受け入れるPulseAudioを設定

PulseAudioがネットワーク接続を受け入れるには、TCPモジュールがロードされている必要があります。TCPモジュールは通常、デフォルトではロードされず、PulseAudio設定ファイル(通常、/etc/pulse/default.pa)内に行を追加し、手動でロードする必要があります。モジュールに指定したオプションによって、許可される接続元を正確に指定し、一定のセキュリティを確保します。たとえば、サブネット10.0.0.0/8からの接続のみを許可する設定は、以下のとおりです。

load-module module-native-protocol-tcp auth-ip-acl=10.0.0.0/8 auth-anonymous=1

また、全面的にどこからの接続でも許可することもできますが、ネットワークの特質上、不正アクセスが起きない場合にのみ許可する必要があることにご注意ください。

load-module module-native-protocol-tcp auth-anonymous=1

PulseAudioの設定ファイルを正しく変更したら、PulseAudioサービスを再起動します。すると、PulseAudioはポート4713(PulseAudioのデフォルトポート)でTCP接続の着信の待ち受けを開始します。これはnetstatなどのユーティリティを使用して確認できます。

$ netstat -ln | grep 4713
tcp        0      0 0.0.0.0:4713            0.0.0.0:*                LISTEN
tcp6       0      0 :::4713                 :::*                     LISTEN
$

いずれにせよ、auth-anonymous=1パラメータは必須です。Guacamoleは現在、PulseAudioが非匿名接続に使用するクッキーベースの認証をサポートしていません。このパラメータを省略すると、GuacamoleはPulseAudioに接続できなくなります。

Last updated