Linux Virtual Delivery Agent

Debian 用 Linux Virtual Delivery Agent の手動インストール

重要:

新規インストールの場合、迅速なインストールには 簡易インストール の使用をお勧めします。簡易インストールは、時間と労力を節約し、この記事で詳述されている手動インストールよりもエラーが発生しにくいです。

ステップ 1: VDA インストールのための Debian の準備

ステップ 1a: ネットワーク構成の確認

ネットワークが正しく接続され、構成されていることを確認してください。たとえば、Linux VDA 上で DNS サーバーを構成する必要があります。

ステップ 1b: ホスト名の設定

マシンのホスト名が正しく報告されるように、/etc/hostname ファイルをマシンのホスト名のみを含むように変更します。

hostname

ステップ 1c: ホスト名へのループバックアドレスの割り当て

マシンの DNS ドメイン名と完全修飾ドメイン名 (FQDN) が正しく報告されることを確認してください。そのためには、/etc/hosts ファイルの次の行を、FQDN とホスト名を最初の 2 つのエントリとして含むように変更します。

127.0.0.1 hostname-fqdn hostname localhost

例:

127.0.0.1 vda01.example.com vda01 localhost

ファイル内の他のエントリから、hostname-fqdn または hostname への他の参照をすべて削除します。

注:

Linux VDA は現在、NetBIOS 名の切り捨てをサポートしていません。ホスト名は 15 文字を超えてはなりません。

ヒント:

a~z、A~Z、0~9、およびハイフン (-) の文字のみを使用してください。アンダースコア (_)、スペース、その他の記号は避けてください。ホスト名を数字で始めたり、ハイフンで終わらせたりしないでください。このルールは Delivery Controller のホスト名にも適用されます。

ステップ 1d: ホスト名の確認

ホスト名が正しく設定されていることを確認します。

hostname
<!--NeedCopy-->

このコマンドは、マシンのホスト名のみを返し、FQDN は返しません。

FQDN が正しく設定されていることを確認します。

hostname -f
<!--NeedCopy-->

このコマンドは、マシンの FQDN を返します。

ステップ 1e: マルチキャスト DNS の無効化

デフォルト設定ではマルチキャスト DNS (mDNS) が有効になっており、名前解決の結果が一貫しない可能性があります。

mDNS を無効にするには、/etc/nsswitch.conf を編集し、次の行を変更します。

hosts: files mdns_minimal [NOTFOUND=return] dns

次のように変更します。

hosts: files dns

ステップ 1f: 名前解決とサービス到達性の確認

FQDN を解決し、ドメインコントローラーと Delivery Controller™ に ping を実行できることを確認します。

nslookup domain-controller-fqdn

ping domain-controller-fqdn

nslookup delivery-controller-fqdn

ping delivery-controller-fqdn
<!--NeedCopy-->

FQDN を解決できない場合、またはこれらのマシンのいずれかに ping を実行できない場合は、続行する前に手順を確認してください。

ステップ 1g: クロック同期の設定 (chrony)

VDA、Delivery Controller、およびドメインコントローラー間で正確なクロック同期を維持することは非常に重要です。Linux VDA を仮想マシンとしてホストすると、クロックスキューの問題が発生する可能性があります。このため、リモート時刻サービスとの時刻同期が推奨されます。

  • chrony をインストールします。
apt-get install chrony
<!--NeedCopy-->

root ユーザーとして、/etc/chrony/chrony.conf を編集し、各リモート時刻サーバーのサーバーエントリを追加します。

server peer1-fqdn-or-ip-address iburst server peer2-fqdn-or-ip-address iburst

一般的な展開では、パブリック NTP プールサーバーから直接ではなく、ローカルのドメインコントローラーから時刻を同期します。ドメイン内の各 Active Directory ドメインコントローラーのサーバーエントリを追加します。

ループバック IP アドレス、localhost、およびパブリックサーバーの *.pool.ntp.org エントリを含む、リストされている他の server または pool エントリをすべて削除します。

変更を保存し、Chrony デーモンを再起動します。

sudo systemctl restart chrony
<!--NeedCopy-->

ステップ 1h: パッケージのインストール

sudo apt-get install -y libsasl2-2

sudo apt-get install -y libgtk2.0-0
<!--NeedCopy-->

ステップ 1i: oldstable リポジトリの追加

Debian ディストリビューションに必要な依存関係をインストールするには、/etc/apt/sources.list ファイルに deb http://deb.debian.org/debian/ oldstable main の行を追加します。

  • ステップ 1j: PostgreSQL のインストール

  • Linux VDA は Debian 上で PostgreSQL バージョン 11 を必要とします。
sudo apt-get install -y postgresql

sudo apt-get install -y libpostgresql-jdbc-java
<!--NeedCopy-->

ステップ 2: ハイパーバイザーの準備

サポートされているハイパーバイザー上で Linux VDA を仮想マシンとして実行する場合、いくつかの変更が必要です。使用中のハイパーバイザープラットフォームに基づいて、以下の変更を行ってください。Linux マシンをベアメタルハードウェアで実行している場合、変更は不要です。

Citrix Hypervisor™ での時刻同期の修正

Citrix Hypervisor の時刻同期機能が有効になっている場合、各準仮想化 Linux VM 内で NTP と Citrix Hypervisor の両方がシステムクロックを管理しようとするため、問題が発生します。クロックが他のサーバーと同期しなくなるのを避けるため、各 Linux ゲスト内のシステムクロックが NTP と同期していることを確認してください。この場合、ホストの時刻同期を無効にする必要があります。HVM モードでは変更は不要です。

Citrix VM Tools がインストールされた準仮想化 Linux カーネルを実行している場合、Linux VM 内から Citrix Hypervisor の時刻同期機能が存在し、有効になっているかどうかを確認できます。

su -
cat /proc/sys/xen/independent_wallclock
<!--NeedCopy-->

このコマンドは 0 または 1 を返します。

  • 0 - 時刻同期機能が有効になっているため、無効にする必要があります。
  • 1 - 時刻同期機能は無効になっており、それ以上の操作は不要です。

/proc/sys/xen/independent_wallclock ファイルが存在しない場合、以下の手順は不要です。

有効になっている場合は、ファイルに 1 を書き込むことで時刻同期機能を無効にします。

sudo echo 1 > /proc/sys/xen/independent_wallclock
<!--NeedCopy-->

この変更を再起動後も永続的に維持するには、/etc/sysctl.conf ファイルを編集し、以下の行を追加します。

xen.independent_wallclock = 1

これらの変更を確認するには、システムを再起動します。

su -
cat /proc/sys/xen/independent_wallclock
<!--NeedCopy-->

このコマンドは値 1 を返します。

Microsoft Hyper-Vでの時刻同期の修正

Hyper-V Linux Integration ServicesがインストールされているLinux VMは、Hyper-Vの時刻同期機能を使用してホストオペレーティングシステムの時刻を使用できます。システムクロックの正確性を確保するため、NTPサービスと並行してこの機能を有効にしてください。

管理オペレーティングシステムから:

  1. Hyper-Vマネージャーコンソールを開きます。
  2. Linux VMの設定で、統合サービスを選択します。
  3. 時刻同期が選択されていることを確認します。

注記:

このアプローチは、NTPとの競合を避けるためにホスト時刻同期を無効にするVMwareおよびCitrix Hypervisorとは異なります。Hyper-Vの時刻同期は、NTPの時刻同期と共存し、補完することができます。

ESXおよびESXiでの時刻同期の修正

VMwareの時刻同期機能が有効になっている場合、各準仮想化Linux VM内でNTPとハイパーバイザーに関する問題が発生します。両方がシステムクロックを同期しようとします。クロックが他のサーバーと同期しなくなるのを避けるため、各Linuxゲスト内のシステムクロックがNTPと同期していることを確認してください。このケースでは、ホスト時刻同期を無効にする必要があります。

VMware Toolsがインストールされた準仮想化Linuxカーネルを実行している場合:

  1. vSphere Clientを開きます。
  2. Linux VMの設定を編集します。
  3. 仮想マシンプロパティダイアログで、オプションタブを開きます。
  4. VMware Toolsを選択します。
  5. 詳細設定ボックスで、ゲストの時刻をホストと同期のチェックを外します。

ステップ3: Linux仮想マシン (VM) をWindowsドメインに追加

Linux VDAは、LinuxマシンをActive Directory (AD) ドメインに追加するためのいくつかの方法をサポートしています。

選択した方法に基づいて指示に従ってください。

注記:

Linux VDAのローカルアカウントとADのアカウントで同じユーザー名を使用すると、セッションの起動に失敗する可能性があります。

Samba Winbind

必要なパッケージのインストールまたは更新

sudo apt-get install winbind samba libnss-winbind libpam-winbind krb5-config krb5-locales krb5-user
<!--NeedCopy-->

マシン起動時にWinbindデーモンを有効化

Winbindデーモンは、マシン起動時に開始するように構成する必要があります。

sudo systemctl enable winbind
<!--NeedCopy-->

注記:

winbind スクリプトが /etc/init.d の下にあることを確認してください。

Kerberosの構成

ルートユーザーとして /etc/krb5.conf を開き、以下の設定を行います。

注記:

ADインフラストラクチャに基づいてKerberosを構成してください。以下の設定は、単一ドメイン、単一フォレストモデルを対象としています。

[libdefaults]

default_realm = REALM

dns_lookup_kdc = false

[realms]

REALM = {

admin_server = domain-controller-fqdn

kdc = domain-controller-fqdn

}

[domain_realm]

domain-dns-name = REALM

.domain-dns-name = REALM

このコンテキストにおける domain-dns-name パラメーターは、example.com のようなDNSドメイン名です。REALM は、EXAMPLE.COM のような大文字のKerberosレルム名です。

Winbind認証の構成

/etc/samba/smb.conf を開き、以下の設定を行います。

[global]

workgroup = WORKGROUP

security = ADS

realm = REALM

encrypt passwords = yes

idmap config *:range = 16777216-33554431

winbind trusted domains only = no

kerberos method = secrets and keytab

winbind refresh tickets = yes

template shell = /bin/bash

WORKGROUPREALM の最初のフィールドであり、REALM は大文字の Kerberos レルム名です。

nsswitch の構成

/etc/nsswitch.conf を開き、以下の行に winbind を追加します。

passwd: systemd winbind group: systemd winbind

Windows ドメインへの参加

ドメインコントローラーに到達可能であり、コンピューターをドメインに追加する権限を持つ Active Directory ユーザーアカウントが必要です。

sudo net ads join REALM -U user
<!--NeedCopy-->

ここで、REALM は大文字の Kerberos レルム名であり、user はコンピューターをドメインに追加する権限を持つドメインユーザーです。

Winbind の再起動

sudo systemctl restart winbind
<!--NeedCopy-->

Winbind 用 PAM の構成

次のコマンドを実行し、Winbind NT/Active Directory authenticationCreate home directory on login オプションが選択されていることを確認します。

sudo pam-auth-update
<!--NeedCopy-->

ヒント:

winbind デーモンは、マシンがドメインに参加している場合にのみ実行され続けます。

ドメインメンバーシップの確認

Delivery Controller は、Windows または Linux のいずれであっても、すべての VDA マシンが Active Directory 内にコンピューターオブジェクトを持つことを要求します。

マシンがドメインに参加していることを確認するには、Samba の net ads コマンドを実行します。

sudo net ads testjoin
<!--NeedCopy-->

追加のドメインおよびコンピューターオブジェクト情報を確認するには、次のコマンドを実行します。

sudo net ads info
<!--NeedCopy-->

Kerberos 構成の確認

Linux VDA で使用するために Kerberos が正しく構成されていることを確認するには、システム keytab ファイルが作成され、有効なキーが含まれていることを確認します。

sudo klist -ke
<!--NeedCopy-->

このコマンドは、プリンシパル名と暗号スイートのさまざまな組み合わせで利用可能なキーのリストを表示します。これらのキーを使用してドメインコントローラーでマシンを認証するには、Kerberos kinit コマンドを実行します。

sudo kinit -k MACHINE\$@REALM
<!--NeedCopy-->

マシン名とレルム名は大文字で指定する必要があります。シェルによる置換を防ぐために、ドル記号 ($) はバックスラッシュ (\) でエスケープする必要があります。一部の環境では、DNS ドメイン名が Kerberos レルム名と異なる場合があります。レルム名が使用されていることを確認してください。このコマンドが成功した場合、出力は表示されません。

マシンアカウントの TGT チケットがキャッシュされていることを確認するには、次を使用します。

sudo klist
<!--NeedCopy-->

マシンのアカウントの詳細を確認するには、次を使用します。

sudo net ads status
<!--NeedCopy-->

ユーザー認証の確認

ドメインユーザーがドメインで認証できることを確認するには、wbinfo ツールを使用します。

-  wbinfo --krb5auth=domain\\username%password
<!--NeedCopy-->

ここで指定するドメインは AD ドメイン名であり、Kerberos レルム名ではありません。bash シェルでは、バックスラッシュ (\) 文字は別のバックスラッシュでエスケープする必要があります。このコマンドは、成功または失敗を示すメッセージを返します。

Winbind PAM モジュールが正しく構成されていることを確認するには、以前に使用したことのないドメインユーザーアカウントを使用して Linux VDA にログオンします。

ssh localhost -l domain\\username

id -u
<!--NeedCopy-->

注:

SSH コマンドを正常に実行するには、SSH が有効で正しく機能していることを確認してください。

  • id -u コマンドによって返された uid に対応する Kerberos 資格情報キャッシュファイルが作成されたことを確認します。
ls /tmp/krb5cc_uid
<!--NeedCopy-->

ユーザーの Kerberos 資格情報キャッシュ内のチケットが有効で期限切れになっていないことを確認します。

klist
<!--NeedCopy-->

セッションを終了します。

exit
<!--NeedCopy-->

同様のテストは、Gnome または KDE コンソールに直接ログオンすることで実行できます。ドメイン参加の確認後、手順 6: Linux VDA のインストールに進みます。

ヒント:

ユーザー認証に成功しても、ドメインアカウントでログオンしたときにデスクトップが表示されない場合は、マシンを再起動して再試行してください。

Quest 認証サービス

ドメインコントローラーでの Quest の構成

Active Directory ドメインコントローラーに Quest ソフトウェアをインストールおよび構成済みであり、Active Directory でコンピューターオブジェクトを作成するための管理者権限が付与されているものとします。

ドメインユーザーによる Linux VDA マシンへのログオンの有効化

ドメインユーザーが Linux VDA マシンで HDX™ セッションを確立できるようにするには:

  1. Active Directory ユーザーとコンピューター管理コンソールで、そのユーザーアカウントの Active Directory ユーザープロパティを開きます。
  2. Unix Account タブを選択します。
  3. Unix-enabled をオンにします。
  4. Primary GID Number を実際のドメインユーザーグループのグループ ID に設定します。

注:

これらの手順は、コンソール、RDP、SSH、またはその他のリモートプロトコルを使用してログオンするドメインユーザーを設定する場合にも同様に適用されます。

Linux VDA での Quest の構成

SELinux ポリシー強制の回避策

デフォルトの RHEL 環境では、SELinux が完全に強制されています。この強制は、Quest が使用する Unix ドメインソケット IPC メカニズムと干渉し、ドメインユーザーのログオンを妨げます。

この問題の便利な回避策は、SELinux を無効にすることです。root ユーザーとして、/etc/selinux/config を編集し、SELinux 設定を変更します。

SELINUX=disabled

この変更にはマシンの再起動が必要です。

reboot
<!--NeedCopy-->

重要:

この設定は慎重に使用してください。無効にした後に SELinux ポリシーの適用を再度有効にすると、root ユーザーや他のローカルユーザーであっても、完全にロックアウトされる可能性があります。

VAS デーモンの構成

Kerberos チケットの自動更新は有効にし、切断する必要があります。認証 (オフラインログオン) は無効にする必要があります。

sudo /opt/quest/bin/vastool configure vas vasd auto-ticket-renew-interval 32400

sudo /opt/quest/bin/vastool configure vas vas_auth allow-disconnected-auth false
<!--NeedCopy-->

このコマンドは、更新間隔を 9 時間 (32,400 秒) に設定します。これは、デフォルトの 10 時間のチケット有効期間よりも 1 時間短いです。チケット有効期間が短いシステムでは、このパラメーターをより低い値に設定してください。

PAM と NSS の構成

HDX および su、ssh、RDP などの他のサービスを介したドメインユーザーログオンを有効にするには、次のコマンドを実行して PAM と NSS を手動で構成します。

-  sudo /opt/quest/bin/vastool configure pam  
-  sudo /opt/quest/bin/vastool configure nss
<!--NeedCopy-->

Windows ドメインへの参加

Quest の vastool コマンドを使用して、Linux マシンを Active Directory ドメインに参加させます。

sudo /opt/quest/bin/vastool -u user join domain-name
<!--NeedCopy-->

ユーザーは、コンピューターを Active Directory ドメインに参加させる権限を持つ任意のドメインユーザーです。ドメイン名 (domain-name) は、ドメインの DNS 名です (例: example.com)。

ドメインメンバーシップの確認

Delivery Controller は、Windows または Linux のいずれであっても、すべての VDA マシンが Active Directory にコンピューターオブジェクトを持つことを要求します。Quest に参加している Linux マシンがドメイン上にあることを確認するには:

sudo /opt/quest/bin/vastool info domain
<!--NeedCopy-->

マシンがドメインに参加している場合、このコマンドはドメイン名を返します。マシンがどのドメインにも参加していない場合、次のエラーが表示されます。

ERROR: No domain could be found. ERROR: VAS_ERR_CONFIG: at ctx.c:414 in _ctx_init_default_realm default_realm not configured in vas.conf. Computer may not be joined to domain

ユーザー認証の確認

Quest が PAM を介してドメインユーザーを認証できることを確認するには、これまで使用されていないドメインユーザーアカウントを使用して Linux VDA にログオンします。

ssh localhost -l domain\\username

id -u
<!--NeedCopy-->

id -u コマンドによって返された UID に対応する Kerberos 資格情報キャッシュファイルが作成されたことを確認します。

ls /tmp/krb5cc_uid
<!--NeedCopy-->

Kerberos 資格情報キャッシュ内のチケットが有効で、期限切れになっていないことを確認します。

/opt/quest/bin/vastool klist
<!--NeedCopy-->

セッションを終了します。

exit
<!--NeedCopy-->

ドメイン参加の確認後、手順 6: Linux VDA のインストールに進みます。

Centrify DirectControl

Windows ドメインへの参加

Centrify DirectControl Agent がインストールされている状態で、Centrify の adjoin コマンドを使用して Linux マシンを Active Directory ドメインに参加させます。

su –
adjoin -w -V -u user domain-name
<!--NeedCopy-->

user パラメーターは、コンピューターを Active Directory ドメインに参加させる権限を持つ任意の Active Directory ドメインユーザーです。domain-name パラメーターは、Linux マシンを参加させるドメインの名前です。

ドメインメンバーシップの確認

Delivery Controller は、Windows または Linux のいずれであっても、すべての VDA マシンが Active Directory にコンピューターオブジェクトを持つことを要求します。Centrify に参加している Linux マシンがドメイン上にあることを確認するには:

su –

adinfo
<!--NeedCopy-->

Joined to domain の値が有効であり、CentrifyDC modeconnected を返すことを確認します。モードが開始状態のままになっている場合、Centrify クライアントはサーバー接続または認証の問題を抱えています。

より包括的なシステムおよび診断情報は、以下を使用して利用できます。

adinfo --sysinfo all

adinfo --diag
<!--NeedCopy-->

さまざまな Active Directory および Kerberos サービスへの接続をテストします。

adinfo --test
<!--NeedCopy-->

ドメイン参加の確認後、手順 6: Linux VDA のインストールに進みます。

SSSD

Kerberos の構成

Kerberos をインストールするには、次のコマンドを実行します。

sudo apt-get install krb5-user
<!--NeedCopy-->

Kerberos を構成するには、root として /etc/krb5.conf を開き、パラメーターを設定します。

注:

Kerberos は AD インフラストラクチャに基づいて構成してください。以下の設定は、単一ドメイン、単一フォレストモデルを対象としています。

[libdefaults]

default_realm = REALM

dns_lookup_kdc = false

[realms]

REALM = {

admin_server = domain-controller-fqdn

  • kdc = domain-controller-fqdn

}

[domain_realm]

domain-dns-name = REALM

.domain-dns-name = REALM

このコンテキストにおける domain-dns-name パラメーターは、example.com のような DNS ドメイン名です。REALM は、EXAMPLE.COM のような大文字の Kerberos レルム名です。

ドメインへの参加

SSSD は、ID プロバイダーとして Active Directory を使用し、認証に Kerberos を使用するように構成する必要があります。ただし、SSSD はドメインへの参加やシステムキータブファイルの管理のための AD クライアント機能を提供しません。代わりに adclirealmd、または Samba を使用できます。

注記:

このセクションでは、adcliSamba の情報のみを提供します。

  • adcli を使用してドメインに参加する場合、次の手順を実行します。

    1. adcli のインストール
     sudo apt-get install adcli
    
     <!--NeedCopy-->
    
      1. adcli を使用したドメインへの参加
    • 古いシステムキータブファイルを削除し、次を使用してドメインに参加します。
    
     -  su -
    
     -  rm -rf /etc/krb5.keytab
    
     -  adcli join domain-dns-name -U user -H hostname-fqdn
    
     <!--NeedCopy-->
    

    user は、マシンをドメインに追加する権限を持つドメインユーザーです。hostname-fqdn は、マシンの FQDN 形式のホスト名です。

    -H オプションは、Linux VDA が必要とする host/hostname-fqdn@REALM の形式で SPN を生成するために adcli にとって必要です。

  1. システムキータブの確認

    sudo klist -ket コマンドを実行して、システムキータブファイルが作成されていることを確認します。

    -  各キーのタイムスタンプが、マシンがドメインに参加した時刻と一致することを確認します。
    
    • Samba を使用してドメインに参加する場合、次の手順を実行します。
  2. パッケージのインストール

    sudo apt-get install samba krb5-user
    <!--NeedCopy-->
    
  3. Samba の構成

  • /etc/samba/smb.conf を開き、次の設定を行います。

  • [global]

    workgroup = WORKGROUP

    security = ADS

    realm = REALM

    client signing = yes

    client use spnego = yes

    kerberos method = secrets and keytab

    WORKGROUPREALM の最初のフィールドであり、REALM は大文字の Kerberos レルム名です。

  1. Samba を使用したドメインへの参加

    ドメインコントローラーに到達可能であり、コンピューターをドメインに追加する権限を持つ Windows アカウントが必要です。

    sudo net ads join REALM -U user
    <!--NeedCopy-->
    

    ここで、REALM は大文字の Kerberos レルム名であり、user はコンピューターをドメインに追加する権限を持つドメインユーザーです。

SSSD のセットアップ

必要なパッケージのインストールまたは更新

まだインストールされていない場合は、必要な SSSD および構成パッケージをインストールします。

sudo apt-get install sssd
<!--NeedCopy-->

パッケージがすでにインストールされている場合は、更新をお勧めします。

sudo apt-get install --only-upgrade sssd
<!--NeedCopy-->

注記:

デフォルトでは、Ubuntu のインストールプロセスは nsswitch.conf と PAM ログインモジュールを自動的に構成します。

SSSD の構成

SSSD デーモンを開始する前に、SSSD 構成の変更が必要です。SSSD の一部のバージョンでは、/etc/sssd/sssd.conf 構成ファイルはデフォルトでインストールされておらず、手動で作成する必要があります。root として、/etc/sssd/sssd.conf を作成または開き、次の設定を行います。

[sssd]

services = nss, pam

config_file_version = 2

domains = domain-dns-name

[domain/domain-dns-name]

id_provider = ad

access_provider = ad

auth_provider = krb5

krb5_realm = REALM

# TGTの更新ライフタイムが14日を超える場合は、krb5_renewable_lifetimeを高く設定します

krb5_renewable_lifetime = 14d

# TGTチケットのライフタイムが2時間未満の場合は、krb5_renew_intervalを低い値に設定します

krb5_renew_interval = 1h

krb5_ccachedir = /tmp

krb5_ccname_template = FILE:%d/krb5cc_%U

# このldap_id_mapping設定はデフォルト値でもあります

ldap_id_mapping = true

override_homedir = /home/%d/%u

default_shell = /bin/bash

ad_gpo_map_remote_interactive = +ctxhdx

注:

ldap_id_mapping は true に設定されており、SSSD自体がWindows SIDをUnix UIDにマッピングします。そうでない場合、Active DirectoryはPOSIX拡張機能を提供できる必要があります。PAMサービス ctxhdx は ad_gpo_map_remote_interactive に追加されます。

このコンテキストにおける domain-dns-name パラメーターは、example.comのようなDNSドメイン名です。REALM は、EXAMPLE.COMのような大文字のKerberosレルム名です。NetBIOSドメイン名を設定する必要はありません。

設定情報については、sssd.conf および sssd-ad のmanページを参照してください。

SSSDデーモンは、設定ファイルが所有者による読み取り権限のみを持つことを要求します。

sudo chmod 0600 /etc/sssd/sssd.conf
<!--NeedCopy-->

SSSDデーモンの起動

SSSDデーモンを今すぐ起動し、マシンの起動時にデーモンが開始されるようにするには、次のコマンドを実行します。

sudo systemctl start sssd

sudo systemctl enable sssd
<!--NeedCopy-->

PAM構成

-  次のコマンドを実行し、**SSS認証**と**ログイン時にホームディレクトリを作成**オプションが選択されていることを確認します。
sudo pam-auth-update
<!--NeedCopy-->

ドメインメンバーシップの確認

Delivery Controllerは、すべてのVDAマシン(WindowsおよびLinux VDA)がActive Directory内にコンピューターオブジェクトを持つことを要求します。

  • adcli を使用してドメインメンバーシップを確認する場合は、sudo adcli info domain-dns-name コマンドを実行してドメイン情報を表示します。

  • Samba を使用してドメインメンバーシップを確認する場合は、sudo net ads testjoin コマンドを実行してマシンがドメインに参加していることを確認し、sudo net ads info コマンドを実行して追加のドメインおよびコンピューターオブジェクト情報を確認します。

  • Kerberos構成の確認

  • KerberosがLinux VDAで使用するために正しく構成されていることを確認するには、システムキータブファイルが作成され、有効なキーが含まれていることを確認します。
sudo klist -ke
<!--NeedCopy-->

このコマンドは、プリンシパル名と暗号スイートのさまざまな組み合わせで利用可能なキーのリストを表示します。これらのキーを使用してドメインコントローラーでマシンを認証するには、Kerberos kinit コマンドを実行します。

sudo kinit -k MACHINE\$@REALM
<!--NeedCopy-->

マシン名とレルム名は大文字で指定する必要があります。ドル記号 ($) は、シェルによる置換を防ぐためにバックスラッシュ (\) でエスケープする必要があります。一部の環境では、DNSドメイン名がKerberosレルム名と異なる場合があります。レルム名が使用されていることを確認してください。このコマンドが成功した場合、出力は表示されません。

マシンアカウントのTGTがキャッシュされていることを確認するには、次を使用します。

sudo klist
<!--NeedCopy-->

ユーザー認証の確認

SSSDは、デーモンと直接認証をテストするためのコマンドラインツールを提供しておらず、PAMを介してのみ実行できます。

SSSD PAMモジュールが正しく構成されていることを確認するには、これまで使用したことのないドメインユーザーアカウントを使用してLinux VDAにログオンします。

ssh localhost -l domain\\username

id -u

klist

exit
<!--NeedCopy-->

klist コマンドによって返されるKerberosチケットがそのユーザーに対して正しく、期限切れになっていないことを確認します。

ルートユーザーとして、以前の id -u コマンドによって返されたuidに対応するチケットキャッシュファイルが作成されたことを確認します。

ls /tmp/krb5cc_uid
<!--NeedCopy-->

同様のテストは、KDEまたはGnomeディスプレイマネージャーにログオンすることで実行できます。ドメイン参加の確認後、ステップ6:Linux VDAのインストールに進みます。

PBIS

必要なPBISパッケージのダウンロード

例:

sudo wget https://github.com/BeyondTrust/pbis-open/releases/download/8.8.0/pbis-open-8.8.0.506.linux.x86_64.deb.sh
<!--NeedCopy-->

PBISインストールスクリプトの実行可能化

例:

sudo chmod +x pbis-open-8.8.0.506.linux.x86_64.deb.sh
<!--NeedCopy-->

PBISインストールスクリプトの実行

例:

sudo sh pbis-open-8.8.0.506.linux.x86_64.deb.sh
<!--NeedCopy-->

Windowsドメインへの参加

ドメインコントローラーに到達可能であり、ドメインにコンピューターを追加する権限を持つActive Directoryユーザーアカウントが必要です。

sudo /opt/pbis/bin/domainjoin-cli join domain-name user
<!--NeedCopy-->

user は、Active Directoryドメインにコンピューターを追加する権限を持つドメインユーザーです。domain-name は、example.comのようなドメインのDNS名です。

注: Bashをデフォルトシェルとして設定するには、sudo /opt/pbis/bin/config LoginShellTemplate/bin/bash コマンドを実行します。

ドメインメンバーシップの確認

Delivery Controller は、すべての VDA マシン (Windows および Linux VDA) が Active Directory にコンピューターオブジェクトを持つことを要求します。PBIS に参加している Linux マシンがドメイン上にあることを確認するには:

/opt/pbis/bin/domainjoin-cli query
<!--NeedCopy-->

マシンがドメインに参加している場合、このコマンドは現在参加している AD ドメインと OU に関する情報を返します。それ以外の場合は、ホスト名のみが表示されます。

ユーザー認証の確認

PBIS が PAM を介してドメインユーザーを認証できることを確認するには、以前使用したことのないドメインユーザーアカウントを使用して Linux VDA にログオンします。

sudo ssh localhost -l domain\\user

id -u
<!--NeedCopy-->

id -u コマンドによって返された UID に対応する Kerberos 資格情報キャッシュファイルが作成されたことを確認します。

ls /tmp/krb5cc_uid
<!--NeedCopy-->

セッションを終了します。

exit
<!--NeedCopy-->

ドメイン参加の検証後、手順 6: Linux VDA のインストールに進みます。

手順 4: 前提条件としての .NET Runtime 6.0 のインストール

Linux VDA をインストールする前に、https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-managers の指示に従って .NET Runtime 6.0 をインストールします。

.NET Runtime 6.0 のインストール後、which dotnet コマンドを実行してランタイムパスを見つけます。

コマンド出力に基づいて、.NET ランタイムバイナリパスを設定します。たとえば、コマンド出力が /aa/bb/dotnet の場合、/aa/bb を .NET バイナリパスとして使用します。

手順 5: Linux VDA パッケージのダウンロード

Citrix Virtual Apps and Desktops™ のダウンロードページにアクセスします。Citrix Virtual Apps and Desktops の適切なバージョンを展開し、Components をクリックして、お使いの Linux ディストリビューションに一致する Linux VDA パッケージをダウンロードします。

手順 6: Linux VDA のインストール

手順 6a: Linux VDA のインストール

Debian パッケージマネージャーを使用して Linux VDA ソフトウェアをインストールします。

sudo dpkg -i xendesktopvda_<version>.debian10_amd64.deb
<!--NeedCopy-->

Debian 10.9 の Debian 依存関係リスト:

libqt5widgets5          >= 5.5~
ibus                    >= 1.5
postgresql              >= 11
libpostgresql-jdbc-java >= 42.2
openjdk-11-jdk           >= 11
imagemagick             >= 8:6.9.10
ufw                     >= 0.36
desktop-base            >= 10.0.2
libxrandr2              >= 2:1.5.1
libxtst6                >= 2:1.2.3
libxm4                  >= 2.3.8
util-linux              >= 2.33
gtk3-nocsd              >= 3
bash                    >= 5.0
findutils               >= 4.6.0
sed                     >= 4.7
cups                    >= 2.2
ghostscript             >= 9.27~
libmspack0              >= 0.10
libgoogle-perftools4    >= 2.7~
libpython2.7            >= 2.7~
libsasl2-modules-gssapi-mit >= 2.1.~
<!--NeedCopy-->

注:

このバージョンの Linux VDA がサポートする Linux ディストリビューションと Xorg バージョンのマトリックスについては、「システム要件」を参照してください。

手順 6b: Linux VDA のアップグレード (オプション)

既存のインストールを以前の 2 つのバージョンおよび LTSR リリースからアップグレードできます。

sudo dpkg -i <PATH>/<Linux VDA deb>
<!--NeedCopy-->

注:

既存のインストールをアップグレードすると、/etc/xdl の下の構成ファイルが上書きされます。アップグレードを実行する前に、ファイルをバックアップしてください。

手順 7: NVIDIA GRID ドライバーのインストール

HDX 3D Pro を有効にするには、ハイパーバイザーと VDA マシンに NVIDIA GRID ドライバーをインストールする必要があります。

特定のハイパーバイザーに NVIDIA GRID Virtual GPU Manager (ホストドライバー) をインストールおよび構成するには、次のガイドを参照してください。

NVIDIA GRID ゲスト VM ドライバーをインストールおよび構成するには、次の一般的な手順を実行します。

  1. ゲスト VM がシャットダウンされていることを確認します。
  2. ハイパーバイザーのコントロールパネルで、VM に GPU を割り当てます。
  3. VM を起動します。
  4. VM にゲスト VM ドライバーをインストールします。

手順 8: Linux VDA の構成

パッケージのインストール後、ctxsetup.sh スクリプトを実行して Linux VDA を構成する必要があります。変更を加える前に、スクリプトは環境を検証し、すべての依存関係がインストールされていることを確認します。必要に応じて、いつでもスクリプトを再実行して設定を変更できます。

プロンプトに従って手動でスクリプトを実行することも、事前設定された応答で自動的に実行することもできます。続行する前に、スクリプトに関するヘルプを確認してください。

sudo /opt/Citrix/VDA/sbin/ctxsetup.sh --help
<!--NeedCopy-->

プロンプトによる構成

プロンプトが表示される質問で手動構成を実行します。

sudo /opt/Citrix/VDA/sbin/ctxsetup.sh
<!--NeedCopy-->

自動構成

自動インストールの場合、セットアップスクリプトで必要なオプションは環境変数で指定できます。必要なすべての変数が存在する場合、スクリプトはユーザーに情報を要求せず、スクリプトによるインストールプロセスを可能にします。

サポートされている環境変数には次のものがあります。

    -  **CTX\_XDL\_SUPPORT\_DDC\_AS\_CNAME=Y \| N** – Linux VDA は、DNS CNAME レコードを使用して Delivery Controller 名を指定することをサポートします。デフォルトでは N に設定されています。
  • CTX_XDL_DDC_LIST=’list-ddc-fqdns’ – Linux VDA は、Delivery Controller への登録に使用する Delivery Controller の完全修飾ドメイン名 (FQDN) のスペース区切りリストを必要とします。少なくとも 1 つの FQDN または CNAME エイリアスを指定する必要があります。
  • CTX_XDL_VDA_PORT=port-number – Linux VDA は、TCP/IP ポート (デフォルトではポート 80) を介して Delivery Controller と通信します。
  • CTX_XDL_REGISTER_SERVICE=Y | N – Linux Virtual Desktop サービスは、マシンの起動後に開始されます。デフォルトでは Y に設定されています。
  • CTX_XDL_ADD_FIREWALL_RULES=Y | N – Linux Virtual Desktop サービスは、システムファイアウォールを介して受信ネットワーク接続が許可されることを必要とします。Linux Virtual Desktop のシステムファイアウォールで必要なポート (デフォルトではポート 80 および 1494) を自動的に開くことができます。デフォルトでは Y に設定されています。
    • CTX_XDL_AD_INTEGRATION=1 | 2 | 3 | 4 |5 – Linux VDA は、Delivery Controller と認証するための Kerberos 構成設定を必要とします。Kerberos 構成は、システムにインストールおよび構成されている Active Directory 統合ツールから決定されます。使用するサポートされている Active Directory 統合方法を指定します。
    • 1 – Samba Winbind
    • 2 – Quest Authentication Service
    • 3 – Centrify DirectControl
    • 4 – SSSD
    • 5 – PBIS
  • CTX_XDL_HDX_3D_PRO=Y | N – Linux VDA は、リッチグラフィックアプリケーションの仮想化を最適化するように設計された GPU アクセラレーションテクノロジーのセットである HDX 3D Pro をサポートします。HDX 3D Pro が選択されている場合、VDA は VDI デスクトップ (シングルセッション) モード (つまり、CTX_XDL_VDI_MODE=Y) 用に構成されます。
  • CTX_XDL_VDI_MODE=Y | N – マシンを専用デスクトップ配信モデル (VDI) として構成するか、ホスト型共有デスクトップ配信モデルとして構成するか。HDX 3D Pro 環境の場合、この変数を Y に設定します。この変数はデフォルトでは N に設定されています。
  • CTX_XDL_SITE_NAME=dns-name – Linux VDA は DNS を介して LDAP サーバーを検出します。DNS 検索結果をローカルサイトに制限するには、DNS サイト名を指定します。この変数はデフォルトで <none> に設定されています。
  • CTX_XDL_LDAP_LIST=’list-ldap-servers’ – Linux VDA は DNS をクエリして LDAP サーバーを検出します。DNS が LDAP サービスレコードを提供できない場合、LDAP ポートを持つ LDAP FQDN のスペース区切りリストを提供できます。たとえば、ad1.mycompany.com:389 です。この変数はデフォルトで <none> に設定されています。
  • CTX_XDL_SEARCH_BASE=search-base-set – Linux VDA は、Active Directory ドメインのルート (例: DC=mycompany,DC=com) に設定された検索ベースを介して LDAP をクエリします。ただし、検索パフォーマンスを向上させるために、検索ベース (例: OU=VDI,DC=mycompany,DC=com) を指定できます。この変数はデフォルトで <none> に設定されています。
  • CTX_XDL_FAS_LIST=’list-fas-servers’ – Federated Authentication Service (FAS) サーバーは、AD グループポリシーを介して構成されます。Linux VDA は AD グループポリシーをサポートしていませんが、代わりにセミコロン区切りの FAS サーバーのリストを提供できます。シーケンスは、AD グループポリシーで構成されているものと同じである必要があります。サーバーアドレスが削除された場合、その空白を <none> テキスト文字列で埋め、サーバーアドレスの順序を変更しないでください。
  • CTX_XDL_DOTNET_ RUNTIME_PATH=path-to-install-dotnet-runtime – 新しいブローカーエージェントサービス (ctxvda) をサポートするための .NET Runtime 6.0 をインストールするパス。デフォルトのパスは /usr/bin です。

  • CTX_XDL_DESKTOP_ENVIRONMENT=gnome/gnome-classic/mate – セッションで使用するGNOME、GNOME Classic、またはMATEデスクトップ環境を指定します。変数を指定しない場合、VDAに現在インストールされているデスクトップが使用されます。ただし、現在インストールされているデスクトップがMATEである場合、変数の値をmateに設定する必要があります。

    ターゲットセッションユーザーのデスクトップ環境は、以下の手順で変更することもできます。

    1. VDA上の$HOME/<username>ディレクトリ下に.xsessionファイルを作成します
    2. ディストリビューションに基づいてデスクトップ環境を指定するように、.xsessionファイルを編集します

      • MATEデスクトップの場合

         MSESSION="$(type -p mate-session)"
         if [ -n "$MSESSION" ]; then
           exec mate-session
         fi
        
      • GNOME Classicデスクトップの場合

         GSESSION="$(type -p gnome-session)"
         if [ -n "$GSESSION" ]; then
         export GNOME_SHELL_SESSION_MODE=classic
         exec gnome-session --session=gnome-classic
         fi
        
      • GNOMEデスクトップの場合

         GSESSION="$(type -p gnome-session)"
         if [ -n "$GSESSION" ]; then
         exec gnome-session
         fi
        
    3. ターゲットセッションユーザーと700のファイル権限を共有します
  • CTX_XDL_START_SERVICE=Y | N – Linux VDAの構成が完了したときにLinux VDAサービスを開始するかどうか。デフォルトはYです。
  • CTX_XDL_TELEMETRY_SOCKET_PORT – Citrix Scoutがリッスンするソケットポート。デフォルトポートは7503です。
  • CTX_XDL_TELEMETRY_PORT – Citrix Scoutとの通信に使用するポート。デフォルトポートは7502です。

環境変数を設定し、構成スクリプトを実行します。

export CTX_XDL_SUPPORT_DDC_AS_CNAME=Y|N

export CTX_XDL_DDC_LIST='list-ddc-fqdns'

export CTX_XDL_VDA_PORT=port-number

export CTX_XDL_REGISTER_SERVICE=Y|N

export CTX_XDL_ADD_FIREWALL_RULES=Y|N

export CTX_XDL_AD_INTEGRATION=1|2|3|4|5

export CTX_XDL_HDX_3D_PRO=Y|N

export CTX_XDL_VDI_MODE=Y|N

export CTX_XDL_SITE_NAME=dns-site-name | '<none>'

export CTX_XDL_LDAP_LIST='list-ldap-servers' | '<none>'

export CTX_XDL_SEARCH_BASE=search-base-set | '<none>'

export CTX_XDL_FAS_LIST='list-fas-servers' | '<none>'

export CTX_XDL_DOTNET_RUNTIME_PATH=path-to-install-dotnet-runtime

export CTX_XDL_DESKTOP_ENVIRONMENT= gnome | gnome-classic | mate | '<none>'

export CTX_XDL_TELEMETRY_SOCKET_PORT=port-number

export CTX_XDL_TELEMETRY_PORT=port-number

export CTX_XDL_START_SERVICE=Y|N

sudo -E /opt/Citrix/VDA/sbin/ctxsetup.sh
<!--NeedCopy-->

sudo コマンドを実行する際は、既存の環境変数を新しく作成されるシェルに渡すために、-E オプションを入力します。前述のコマンドから、最初の行に #!/bin/bash を含むシェルスクリプトファイルを作成することをお勧めします。

または、単一のコマンドを使用してすべてのパラメーターを指定できます。

sudo CTX_XDL_SUPPORT_DDC_AS_CNAME=Y|N \

CTX_XDL_DDC_LIST='list-ddc-fqdns' \

CTX_XDL_VDA_PORT=port-number \

CTX_XDL_REGISTER_SERVICE=Y|N \

CTX_XDL_ADD_FIREWALL_RULES=Y|N \

CTX_XDL_AD_INTEGRATION=1|2|3|4|5 \

CTX_XDL_HDX_3D_PRO=Y|N \

CTX_XDL_VDI_MODE=Y|N \

CTX_XDL_SITE_NAME=dns-name \

CTX_XDL_LDAP_LIST='list-ldap-servers' \

CTX_XDL_SEARCH_BASE=search-base-set \

CTX_XDL_FAS_LIST='list-fas-servers' \

CTX_XDL_DOTNET_RUNTIME_PATH=path-to-install-dotnet-runtime \

CTX_XDL_DESKTOP_ENVIRONMENT=gnome|gnome-classic|mate \

CTX_XDL_TELEMETRY_SOCKET_PORT=port-number \

CTX_XDL_TELEMETRY_PORT=port-number \

CTX_XDL_START_SERVICE=Y|N \

/opt/Citrix/VDA/sbin/ctxsetup.sh
<!--NeedCopy-->

構成変更の削除

シナリオによっては、Linux VDAパッケージをアンインストールせずに、ctxsetup.sh スクリプトによって行われた構成変更を削除する必要がある場合があります。

続行する前に、このスクリプトに関するヘルプを確認してください。

sudo /opt/Citrix/VDA/sbin/ctxcleanup.sh --help
<!--NeedCopy-->

構成変更を削除するには:

sudo /opt/Citrix/VDA/sbin/ctxcleanup.sh
<!--NeedCopy-->

重要:

このスクリプトは、データベースからすべての構成データを削除し、Linux VDAを動作不能にします。

構成ログ

ctxsetup.sh および ctxcleanup.sh スクリプトは、コンソールにエラーを表示し、追加情報は構成ログファイル /tmp/xdl.configure.log に書き込まれます。

変更を有効にするには、Linux VDAサービスを再起動します。

Linux VDAソフトウェアのアンインストール

Linux VDAがインストールされているかどうかを確認し、インストールされているパッケージのバージョンを表示するには:

dpkg -l xendesktopvda
<!--NeedCopy-->

詳細情報を表示するには:

apt-cache show xendesktopvda
<!--NeedCopy-->

Linux VDAソフトウェアをアンインストールするには:

dpkg -r xendesktopvda
<!--NeedCopy-->

注:

Linux VDAソフトウェアをアンインストールすると、関連するPostgreSQLおよびその他の構成データが削除されます。ただし、Linux VDAのインストール前にセットアップされたPostgreSQLパッケージおよびその他の依存パッケージは削除されません。

ヒント:

このセクションの情報には、PostgreSQLを含む依存パッケージの削除は含まれていません。

ステップ 9: XDPingの実行

sudo /opt/Citrix/VDA/bin/xdping を実行して、Linux VDA環境における一般的な構成の問題を確認します。詳細については、「XDPing」を参照してください。

ステップ 10: Linux VDAの実行

ctxsetup.sh スクリプトを使用してLinux VDAを構成したら、次のコマンドを使用してLinux VDAを制御します。

Linux VDAの開始:

Linux VDAサービスを開始するには:

sudo systemctl start ctxhdx

sudo systemctl start ctxvda
<!--NeedCopy-->

Linux VDAの停止:

Linux VDAサービスを停止するには:

sudo systemctl stop ctxvda

sudo systemctl stop ctxhdx
<!--NeedCopy-->

注:

ctxvda および ctxhdx サービスを停止する前に、service ctxmonitorservice stop コマンドを実行してモニターサービスデーモンを停止してください。そうしないと、モニターサービスデーモンが停止したサービスを再起動します。

Linux VDAの再起動:

Linux VDAサービスを再起動するには:

sudo systemctl stop ctxvda

sudo systemctl restart ctxhdx

sudo systemctl restart ctxvda
<!--NeedCopy-->

Linux VDAステータスの確認:

Linux VDAサービスの実行ステータスを確認するには:

sudo systemctl status ctxvda

sudo systemctl status ctxhdx
<!--NeedCopy-->

ステップ 11: Citrix Virtual AppsまたはCitrix Virtual Desktops™でのマシンカタログの作成

マシンカタログを作成し、Linux VDAマシンを追加するプロセスは、従来のWindows VDAのアプローチと似ています。これらのタスクを完了する方法の詳細については、「マシンカタログの作成」および「マシンカタログの管理」を参照してください。

Linux VDAマシンを含むマシンカタログを作成する場合、Windows VDAマシン用のマシンカタログを作成するプロセスとは異なるいくつかの制限があります。

  • オペレーティングシステムについては、以下を選択します。
    • ホストされた共有デスクトップ配信モデルの場合は、Multi-session OS オプション。
    • VDI専用デスクトップ配信モデルの場合は、Single-session OS オプション。
  • 同じマシンカタログ内でLinux VDAマシンとWindows VDAマシンを混在させないでください。

注:

Citrix Studioの初期バージョンでは、「Linux OS」という概念はサポートされていませんでした。ただし、Windows Server OS または Server OS オプションを選択すると、同等のホストされた共有デスクトップ配信モデルが意味されます。Windows Desktop OS または Desktop OS オプションを選択すると、マシンごとに単一ユーザーの配信モデルが意味されます。

ヒント:

マシンをActive Directoryドメインから削除して再参加させる場合、そのマシンをマシンカタログから削除して再度追加する必要があります。

ステップ 12: Citrix Virtual Apps™またはCitrix Virtual Desktopsでのデリバリーグループの作成

デリバリーグループを作成し、Linux VDAマシンを含むマシンカタログを追加するプロセスは、Windows VDAマシンとほぼ同じです。これらのタスクを完了する方法の詳細については、「デリバリーグループの作成」を参照してください。

Linux VDAマシンカタログを含むデリバリーグループを作成する場合、次の制限が適用されます。

  • 選択したADユーザーとグループが、Linux VDAマシンにログオンするように適切に構成されていることを確認してください。
  • 認証されていない(匿名)ユーザーのログオンを許可しないでください。
  • デリバリーグループを、Windowsマシンを含むマシンカタログと混在させないでください。

マシンカタログとデリバリーグループの作成方法については、「Citrix Virtual Apps and Desktops 7 2203」を参照してください。