Telnet

Telnet接続タイプの詳細設定

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

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

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

$ sudo yum install kcm-libguac-client-telnet

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

概要

telnetはテキストプロトコルであり、 SSHと同様の機能が利用できますが、もともと暗号化されておらず、ファイル転送がサポートされていません。グラフィックに関しては、GuacamoleのtelnetサポートはSSHと同じように動作します。すなわち、Guacamoleクライアントのディスプレイに表示されるサーバー側の端末をエミュレートします。

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

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

Keeper Secrets Managerのパラメータ

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

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

ksm-user-config-enabled

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

ネットワークパラメータ

telnet接続は、TCPを使用して特定のポートと特定のホスト名またはIPアドレスに対して確立されます。すべてのtelnet接続にホスト名またはアドレスを指定する必要がありますが、ポートを指定する必要があるのは、標準のtelnetポート (23) を使用していない場合のみとなります。

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

ホスト名:

hostname

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

ポート:

port

telnetサーバーの待ち受けポート。デフォルトでは、telnetの標準ポート23が使用されます。

認証パラメータ

telnetには実は、標準的な認証手段がありません。telnetによる認証は、サーバーで実行されるログインプロセスに完全に依存しており、双方向的です。これに対応するため、Guacamoleには、ユーザー名を自動的に渡して、パスワードを入力する非標準のメカニズムが搭載されています。これらのメカニズムが機能するか否かは、telnetサーバーが使用する特定のログインプロセスによって決まります。

ユーザー名をtelnet経由で自動的に渡す実質的な方法は、telnetのNEW-ENVIRONオプションを使用して送信されるUSER環境変数を介してユーザー名を送信することとなります。この方法はほとんどのtelnetクライアントで使用されるメカニズムで、通常はコマンドラインで-lを指定します。

パスワードは通常、自動的には送信できません。少なくとも、ユーザー名ほど確実には送信できません。PASSWORD環境変数はなく、パスワードをtelnetログインプロセスに渡すための類似のメカニズムもありません。そのため、ほとんどのtelnetクライアントはパスワードの自動入力のサポートを実装していません。実現可能な解決策としては、パスワードプロンプトをヒューリスティックに検出し、プロンプトが表示されたときにユーザーに代わってパスワードを入力することとなります。従来のコマンドラインtelnetを使用してこれを実現するには、expectのようなユーティリティを使用します。Guacamoleは、正規表現を使用してパスワードプロンプトを検索することで同様の機能を実現します。この正規表現メカニズムは、ユーザー名プロンプトを処理する (NEW-ENVIRONが利用できない場合) とともに、ログインの成功/失敗を検出するためのオプションとしても実装されています。

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

ユーザー名:

username

認証に使用するユーザー名 (必要に応じて)。指定しない場合、またはtelnetサーバーでサポートされていない場合は、telnetサーバーのログインプロセスでクレデンシャルの入力を求められます。これが機能するためには、telnetサーバーが「NEW-ENVIRON」オプションをサポートする (およびUSER環境変数を監視する) か、または正規表現と照合できるプロンプトを提供する必要があります。ほとんどのtelnetサーバーはこの基準を満たしています。

パスワード:

password

認証を試行するときに使用するパスワード (必要に応じて)。指定すると、パスワードプロンプトが検出されたときに、ユーザーの代わりにパスワードを入力します。

ユーザー名の正規表現:

username-regex

NEW-ENVIRON」を使用してユーザー名を指定できない場合に、ユーザー名プロンプトを検出するために使用する正規表現。指定しない場合、Guacamoleに組み込まれている適切なデフォルトが使用されます。指定する正規表現は、標準POSIX ERE方言 (egrepで使用される方言) で記述する必要があります。

パスワードの正規表現:

password-regex

パスワードプロンプトを検出するために使用する正規表現。指定しない場合、Guacamoleに組み込まれている適切なデフォルトが使用されます。指定する正規表現は、標準POSIX ERE方言 (egrepで使用される方言) で記述する必要があります。

ログイン成功の正規表現:

login-success-regex

ログインの試行が成功したことを検出する場合に使用する正規表現。指定した場合、この正規表現に一致するテキストがtelnetサーバーから受信されるまで、端末のディスプレイはユーザーに表示されません。指定する正規表現は、標準POSIX ERE方言 (egrepで使用される方言) で記述する必要があります。

ログイン失敗の正規表現:

login-failure-regex

ログインの試行が失敗したことを検出する場合に使用する正規表現。指定した場合、この正規表現に一致するテキストをtelnetサーバーから受信すると、接続はログイン失敗エラーを明示して閉じられます。指定する正規表現は、標準POSIX ERE方言 (egrepで使用される方言) で記述する必要があります。

ディスプレイ設定

Guacamoleのtelnetサポートはディスプレイを転送しますが、VNCやRDPのようなリモートデスクトッププロトコルと同じではありません。ディスプレイはターミナルエミュレータであるため、使用するフォントとそのサイズを設定するためのオプションが用意されています。

telnet接続で別のフォントを選択する場合は、選択したフォントがguacdを実行しているサーバーにインストールされている必要があります。端末のディスプレイへの文字のレンダリングを処理するのは、クライアントではなくサーバーとなります。

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

カラースキーム:

color-scheme

telnet接続で使用されるターミナルエミュレータに使用するカラースキーム。各カラースキームによって、端末のデフォルトの前景色と背景色が決まります。テキストを表示するときに色を指定するプログラムは、これらの既定値を上書きします。適正値は以下のとおりです。

  • black-white」- 白地に黒色のテキスト

  • [gray-black」- 黒地に灰色のテキスト (デフォルト)

  • green-black」- 黒地に緑色のテキスト

  • white-black」- 黒地に白色のテキスト

  • カスタムカラースキーム (後述)

デフォルトでは、Guacamoleは黒地に灰色でテキストをレンダリングします。

フォント名:

font-name

使用するフォントの名前。指定しない場合は、デフォルトの「monospace」が代わりに使用されます。これは、guacdを実行しているサーバーにインストールされているフォントの名前であることが必要で、等幅フォントでなければなりません。等幅フォント以外を使用すると、個々のグリフが正しく表示されないことがあります。

フォントサイズ:

font-size

使用するフォントのサイズ (ポイント単位)。既定では、レンダリングされるテキストのサイズは12ポイントになります。

最大スクロールバックサイズ:

scrollback

ターミナルスクロールバックバッファ内で許容される最大行数。デフォルトでは、スクロールバックバッファは最大1000行に制限されます。

読み取り専用:

read-only

この接続を読み取り専用にするか否か。「true」に設定すると、接続で入力が一切できなくなります。ユーザーは端末 (または端末内で実行されているアプリケーション) を表示することはできますが、操作はできません。

カスタムカラースキーム

telnet接続で使用されるターミナルエミュレータにカスタムカラースキームが付属する場合があります。カスタムスキームは、Xtermとよく似た形式で、セミコロンで区切られた一連の名前と値のペアで構成されます。名前と値のペアはそれぞれコロンで区切られ、ターミナルエミュレータパレットの色に値を割り当てます。

たとえば、デフォルトで白地に青色のテキストを使用し、赤色を紫の色調に変更するには、以下のように指定します。

foreground: rgb:00/00/ff;
background: rgb:ff/ff/ff;
color9: rgb:80/00/80

正規の色名は以下のとおりです。

  • foreground」- デフォルトの前景色。

  • background」- デフォルトの背景色。

  • colorN」- Xterm 256色パレット内のインデックスNの色。たとえば、「color9」はパレットインデックス9の色を指し、通常は赤となります。

正規の色の値は以下のとおりです。

  • 「rgb:RR/GG/BB」- RGB形式の色で、各部は16進数で表されます。たとえば、「rgb:ff/00/00」は赤色を指定します。16進数の各部は1桁から4桁までですが、有効値は常にゼロ拡張または2桁に切り捨てられます。たとえば、「rgb:f/8/0」、「rgb:f0/80/00」、「rgb:f0f/808/00f」はすべて同じ有効色を指します。

  • colorN」-Xterm 256色パレット内のインデックスNに現在割り当てられている色。たとえば、「color9」は、パレットインデックス9に現在割り当てられている色を指定します。その色への参照ではなく、_現在の色の値_が使用されることにご注意ください。カラースキームの設定で後から参照色を変更しても、その新しい色の値はこの割り当てに反映されません。

  • NAME」- 人間が判読できる名前「NAME」の付いた色で、「NAME」はX11でサポートされている標準色名の1つです。これらの名前は、一般にW3CがCSS用に標準化した名前に対応しています。

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

Guacamoleでは、デフォルトでtelnet接続でのクリップボードへの双方向アクセスが可能です。この動作は接続ごとにオーバーライドでき、クリップボードへのアクセスを制限できます。

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

端末からのコピーを無効化:

disable-copy

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

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

disable-paste

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

端末の動作パラメータ

ほとんどの場合、Guacamoleターミナルエミュレータのデフォルトの動作は変更せずに使用できます。ただし、特定のシステム (特にLinux以外のオペレーティングシステム) に接続する場合は、正常に動作するように端末の動作の調整が必要な場合があります。Guacamoleのtelnetサポートには、バックスペースで送信される制御コードを制御するためのパラメータと、TERM環境変数を使用して要求される端末タイプが用意されています。

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

Backspaceキー送信:

backspace

バックスペースが押されたときに送信される端末制御コードの整数値。ほとんどの場合、これを調整する必要はないはずです。ただし、バックスペースキーを押したときに、テキストが消去されるのではなく制御文字 (通常、^?または^H) が表示される場合は、このパラメータの調整が必要と考えられます。デフォルトでは、制御コード127 (削除) が送信されます。

端末タイプ:

terminal-type

telnetサーバーに渡す端末タイプの文字列。この値は通常、telnetセッション内でTERM環境変数として開示され、アプリケーションが送信する制御文字に影響します。デフォルトでは、端末タイプ文字列「linux」が使用されます。

テキストセッションの記録 (タイプスクリプト)

計時情報を含む、telnetセッションの生の完全なテキストコンテンツを指定されたディレクトリに自動的に記録できます。この記録は、「タイプスクリプト」とも呼ばれ、指定されたディレクトリ内の2つのファイルに書き込まれます。1つのファイルには生のテキストデータが含まれ、もう1つのファイルには計時情報が含まれます。タイプスクリプト名に付けられた値が「NAME」の場合、これらのファイル名はそれぞれ「NAME」と「NAME.timing」となります。

この形式は、UNIXの標準scriptコマンドで使用される形式と互換性があり、scriptreplay (インストールされている場合) を使用して再生できます。たとえば、「NAME」というタイプスクリプトを再生するには、以下のように実行してください。

$ scriptreplay NAME.timing NAME
フィールド見出し (ウェブインターフェース)パラメータ名説明

タイプスクリプトのパス:

typescript-path

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

タイプスクリプト名:

typescript-name

作成されたすべての記録に使用する基本ファイル名。省略すると、基本ファイル名「typescript」が使用されます。

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

このパラメータは、タイプスクリプトの記録が有効になっている場合にのみ機能し、タイプスクリプトのパスを指定することで制御できます。タイプスクリプトのパスが指定されていない場合、タイプスクリプトの記録は有効にならず、このパラメータは無視されます。

タイプスクリプトのパスを自動作成:

create-typescript-path

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

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

このパラメータは、タイプスクリプトの記録が有効になっている場合にのみ機能し、タイプスクリプトのパスを指定することで制御できます。タイプスクリプトのパスが指定されていない場合、タイプスクリプトの記録は有効にならず、このパラメータは無視されます。

画面記録パラメータ

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

このプレーヤーは静的なウェブアプリケーションであり、作成された記録の再生にはJavaScriptのみを使用します。この機能は厳密にローカルで実行され、記録がリモートサービスにアップロードされて処理されることはありません。このアプリケーションの独自のデプロイを使用したい場合、またはソースコードを調査される場合は、こちらのGithubページでKeeper Connection Manager Session Recording Playerの完全なソースコードとローカルデプロイの手順をご参照ください。

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

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

記録のパス:

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

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

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

Last updated