セッションのシャドウイング

最終公開日 : Nov 13, 2026
セッションのシャドウイングにより、ドメイン管理者はイントラネットでユーザーのICA®セッションを表示できます。この機能は、noVNCを使用してICAセッションに接続します。
注:
この機能を使用するには、Citrix Director 7.16以降を使用してください。

インストールと構成

依存関係

セッションのシャドウイングには、python-websockifyとx11vncの2つの新しい依存関係が必要です。Linux VDAのインストール後に、python-websockifyとx11vncを手動でインストールしてください。
RHEL 7.xおよびAmazon Linux2の場合:
python-websockifyとx11vnc(x11vncバージョン0.9.13以降)をインストールするには、次のコマンドを実行します。
sudo pip3 install websockify
sudo yum install x11vnc
(RHEL 7.xの場合) Extra Packages for Enterprise Linux (EPEL) およびオプションのRPMリポジトリを有効にして、python-websockifyとx11vncを解決します。
  • EPEL
    x11vncにはEPELリポジトリが必要です。EPELリポジトリを有効にするには、次のコマンドを実行します。
    yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  • オプションのRPM
    x11vncの一部の依存パッケージをインストールするために、オプションのRPMsリポジトリを有効にするには、次のコマンドを実行します。
    subscription-manager repos --enable rhel-7-server-optional-rpms --enable rhel-7-server-extras-rpms
RHEL 8.x/9.0 および Rocky Linux 8.x/9.0 の場合:
python-websockifyとx11vnc(x11vncバージョン0.9.13以降)をインストールするには、次のコマンドを実行します。
sudo pip3 install websockify
sudo yum install x11vnc
EPELおよびCodeReady Linux Builderリポジトリを有効にして、x11vncを解決します。
dnf install -y --nogpgcheck https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

subscription-manager repos --enable "codeready-builder  -for-rhel-8-x86_64-rpms"
Ubuntuの場合:
python-websockifyとx11vncをインストールするには、次のコマンドを実行します (x11vncバージョン0.9.13以降):
sudo pip3 install websockify
sudo apt-get install x11vnc
SUSEの場合:
python-websockifyとx11vncをインストールするには、次のコマンドを実行します (x11vncバージョン0.9.13以降):
sudo pip3 install websockify
sudo zypper install x11vnc
Debianの場合:
python-websockifyとx11vncをインストールするには、次のコマンドを実行します (x11vncバージョン0.9.13以降):
sudo pip3 install websockify
sudo apt-get install x11vnc

ポート

セッションシャドウイング機能は、Linux VDAからCitrix Directorへの接続を確立するために、6001~6099の範囲内で利用可能なポートを自動的に選択します。そのため、同時にシャドウできるICAセッションの数は99に制限されます。特にマルチセッションシャドウイングの場合、要件を満たすのに十分なポートが利用可能であることを確認してください。

レジストリ

次の表は、関連するレジストリを示しています:
レジストリ 説明 デフォルト値
EnableSessionShadowing セッションシャドウイング機能を有効または無効にします 1 (有効)
ShadowingUseSSL Linux VDAとCitrix Director間の接続を暗号化するかどうかを決定します 0 (無効)
レジストリ値を変更するには、Linux VDAでctxregコマンドを実行します。たとえば、セッションシャドウイングを無効にするには、次のコマンドを実行します。
/opt/Citrix/VDA/bin/ctxreg update -k "HKLM\Software\Citrix\VirtualDesktopAgent" -v "EnableSessionShadowing" -d "0x00000000"

SSL

Linux VDAとCitrix Director間のnoVNC接続はWebSocketプロトコルを使用します。セッションシャドウイングでは、ws://とwss://のどちらが選択されるかは、前述の「ShadowingUseSSL」レジストリによって異なります。デフォルトでは、ws://が選択されます。ただし、セキュリティ上の理由から、wss://を使用し、各Citrix Directorクライアントと各Linux VDAサーバーに証明書をインストールすることをお勧めします。Citrixは、ws://を使用するLinux VDAセッションシャドウイングに対するいかなるセキュリティ責任も負いません。
SSLを有効にするには、次のコマンドを実行します。
/opt/Citrix/VDA/bin/ctxreg update -k "HKLM\Software\Citrix\VirtualDesktopAgent" -v "ShadowingUseSSL" -d "0x00000001"

サーバーおよびルートSSL証明書の取得

証明書は、信頼された認証局(CA)によって署名されている必要があります。
SSLを構成する各Linux VDAサーバーには、個別のサーバー証明書(キーを含む)が必要です。サーバー証明書は特定のコンピューターを識別するため、各サーバーの完全修飾ドメイン名(FQDN)を知っている必要があります。便宜上、ドメイン全体にワイルドカード証明書を使用することを検討してください。
Linux VDAと通信する各Citrix Directorクライアントにもルート証明書が必要です。ルート証明書は、サーバー証明書を発行するのと同じCAから入手できます。
サーバー証明書とクライアント証明書は、次のCAからインストールできます。
  • オペレーティングシステムにバンドルされているCA
  • エンタープライズCA(組織がアクセスを許可しているCA)
  • オペレーティングシステムにバンドルされていないCA
証明書を取得するためにどの方法が必要かについては、組織のセキュリティチームに相談してください。
重要:
  • サーバー証明書の共通名(Common Name)は、Linux VDAの正確なFQDNであるか、少なくとも正しいワイルドカードとドメイン文字である必要があります。例: vda1.basedomain.com または *.basedomain.com。
  • SHA1やMD5を含むハッシュアルゴリズムは、一部のブラウザーがサポートするにはデジタル証明書の署名として弱すぎます。そのため、SHA-256が最小標準として指定されています。
  • Chrome は自己署名 SSL 証明書を安全でないとみなし、受け入れなくなりました。NET::ERR_CERT_COMMON_NAME_INVALID エラーは、生成された証明書に SAN (subjectAltName) フィールドがないために発生します。この問題を解決するには、SAN フィールドを含む拡張属性 (X509 v3 拡張) を持つ証明書を提供してください。

各 Citrix Director クライアントにルート証明書をインストールする

セッションシャドウイングは、IIS と同じレジストリベースの証明書ストアを使用するため、IIS または Microsoft 管理コンソール (MMC) の証明書スナップインを使用してルート証明書をインストールできます。CA から証明書を受け取ったら、IIS で Web サーバー証明書ウィザードを再起動すると、ウィザードが証明書をインストールします。または、MMC を使用してコンピューター上の証明書を表示およびインポートし、スタンドアロンのスナップインとして証明書を追加することもできます。Internet Explorer と Google Chrome は、オペレーティングシステムにインストールされている証明書をデフォルトでインポートします。Mozilla Firefox の場合は、証明書マネージャーの [認証局] タブでルート SSL 証明書をインポートする必要があります。

各 Linux VDA サーバーにサーバー証明書とそのキーをインストールする

サーバー証明書には「shadowingcert.*」、キーファイルには「shadowingkey.*」という名前を付けます(* は形式を示します。例:shadowingcert.pem および shadowingkey.key)。サーバー証明書とキーファイルをパス /etc/xdl/shadowingssl の下に置き、制限された権限で適切に保護してください。名前またはパスが正しくないと、Linux VDA は特定の証明書またはキーファイルを見つけることができず、Citrix Director との接続障害が発生します。

使用方法

Citrix Director から、ターゲットセッションを見つけ、[セッションの詳細] ビューで [シャドウ] をクリックして、Linux VDA にシャドウイング要求を送信します。
シャドウタブ
接続が初期化されると、ICA セッションクライアント(Citrix Director クライアントではない)に確認が表示され、ユーザーにセッションをシャドウする許可を求めます。
管理者がこのセッションをシャドウすることを許可するかどうか
ユーザーが [はい] をクリックすると、Citrix Director 側にウィンドウが表示され、ICA セッションがシャドウされていることを示します。
使用方法の詳細については、「Citrix Director Documentation」を参照してください。

制限事項

  • セッションシャドウイングは、イントラネット内でのみ使用するように設計されています。Citrix Gateway を介して接続する場合でも、外部ネットワークでは機能しません。Citrix は、外部ネットワークでの Linux VDA セッションシャドウイングに関するいかなる責任も負いません。
  • セッションシャドウイングが有効になっている場合、ドメイン管理者は ICA セッションを表示することしかできず、書き込みや制御の権限はありません。
  • 管理者が Citrix Director から [シャドウ] をクリックすると、確認が表示され、ユーザーにセッションをシャドウする許可を求めます。セッションは、セッションユーザーが許可を与えた場合にのみシャドウできます。
  • 前述の確認にはタイムアウト制限があり、20 秒です。時間が経過すると、シャドウイング要求は失敗します。
  • 1つのセッションは1人の管理者のみがシャドウできます。たとえば、管理者Bが管理者Aがシャドウしているセッションに対してシャドウ要求を送信すると、ユーザーデバイスにユーザー権限取得の確認が再表示されます。ユーザーが同意した場合、管理者Aのシャドウ接続は停止し、管理者Bのために新しいシャドウ接続が構築されます。管理者が同じセッションに対して別のシャドウ要求を送信した場合でも、新しいシャドウ接続を構築できます。
  • セッションシャドウを使用するには、Citrix Director 7.16以降をインストールします。
  • Citrix Directorクライアントは、ターゲットのLinux VDAサーバーに接続するために、IPアドレスではなくFQDNを使用します。したがって、Citrix DirectorクライアントはLinux VDAサーバーのFQDNを解決できる必要があります。

トラブルシューティング

セッションシャドウが失敗した場合は、Citrix DirectorクライアントとLinux VDAの両方でデバッグを行います。

Citrix Directorクライアントで

ブラウザの開発者ツールを使用して、Consoleタブで出力ログを確認します。または、NetworkタブでShadowLinuxSession APIの応答を確認します。ユーザー権限取得の確認が表示されるものの、接続の確立に失敗する場合は、VDAのFQDNを手動でpingして、Citrix DirectorがFQDNを解決できることを確認します。wss://接続に問題がある場合は、証明書を確認してください。

Linux VDA で

  1. /var/log/xdl/vda.logファイルで手がかりを確認します。
  2. /var/xdl/sessionshadowing.shファイルを編集し、「logFile」変数を変更して、Directorからのセッションシャドウ中に手がかりを追跡できるログファイルを指定します。
  3. また、noVNC接続で証明書が正しく機能するかどうかを手動で確認することもできます。
    1. ps aux \| grep xorgを実行して、現在のセッションのXorgディスプレイ番号<display-num>(例: :3)を見つけます。
    2. 次のコマンドを実行してx11vncサーバーを起動し、受信接続を待ちます。
      runuser -l "ctxsrvr" -s /bin/bash -c "websockify <port> -v --cert  /etc/xdl/shadowingssl/shadowingcert.pem --key  /etc/xdl/shadowingssl/shadowingkey.key -- x11vnc  -viewonly  -shared -passwd <passwd> -rfbport <port> -display <display-num> -many -o /var/log/xdl/x11vnc.log"
    3. 次のようにnoVNCを使用して接続し、SSLモードを確認します。VDAのFQDNとポート番号を入力します。この例では、ポート番号は6009です。
      noVNCを使用して接続(/en-us/linux-virtual-delivery-agent/current-release/media/connect-using-novnc.png)
    4. VDA上のWebsockifyによって出力されたエラー、またはクライアント上のブラウザによって報告されたエラーを解決します。
      接続確立時の主要なチェックポイント:
      1. セッションシャドウイングがポートを開くのを妨げるファイアウォール制限がないか確認します。
      2. SSLシナリオの場合、証明書とキーファイルが適切に命名され、正しいパスに配置されていることを確認します。
      3. 新しいシャドウイング要求のために、6001~6099の間に十分なポートが残っていることを確認します。
      4. /var/xdl/sessionshadowing.shで必要となるため、「netstat」がインストールされていることを確認します。
      5. 証明書が正しく構成されていることを確認するためにopenssl x509 -in shadowingcert.pem -text -nooutを実行し、特にCNフィールドとSANフィールドに注意してください。
      6. RHEL 8では、rebind.soが見つからないという問題が発生する可能性があります。この問題を解決するには、次のコマンドを実行します。
        ln -s /usr/bin/rebind.so /usr/local/bin/rebind.so