TeamViewer ポリシーを使用すると、リモート コントロール セッションの記録をセルフホストまたはクラウド ホストの SFTP ストレージに自動的にアップロードできます。後で確認するために記録を保存しておくと、品質評価、トレーニング、監査に役立ちます。この記事では、これを実現するために必要な TeamViewer ポリシー ルールを設定する方法について説明します。リモート コントロール セッションの記録を開始する方法の詳細については、こちらの記事を参照してください 。
この記事は、Windows および Linux を使用している Tensorライセンス所有者に適用されます。
リモート コントロール セッションの記録を自動アップロードするように設定するには、新しい TeamViewer ポリシーを作成するか、既存のポリシーを更新して、次のポリシー ルールを追加する必要があります。ポリシー内で複数のポリシー ルールを組み合わせて、特定の目標を達成することができます。ポリシーが目的のデバイスに適用されると、設定が有効になります。デバイスにポリシーを適用する方法については、こちらをご覧ください。
次のガイドでは、主に、セッション記録をカスタム ストレージにアップロードするポリシー ルールの設定に焦点を当てます。このルールは、記録を SFTP サーバーにアップロードする機能を提供します。記録の開始と停止のタイミングをさらに制御できるため、評価する必要がある他の 2 つのルールがあります。
リモート コントロール セッションの自動記録を強制します。これにより、ポリシーが適用されたデバイスから発信接続が確立されるとすぐに、自動的に記録が開始されます。リモート コントロール セッションが終了する前に、デバイスの前にいるユーザーが記録を停止または一時停止できないようにするには、セッション記録の停止と一時停止を無効にするポリシー ルールを追加することもできます。どちらのルールも、追加の設定を必要とせずに追加して有効にすることができます。
セッション記録をカスタム ストレージにアップロードするルールをポリシーに追加する場合は、構成する必要がある必須フィールドとオプション フィールドがいくつかあります。これらについては、次の段落で詳しく説明します。
現在、オンプレミスのデータセンターまたは Azure や Amazon Web Services などのクラウドベースの環境でホストできる SFTP サーバーのみがサービス タイプとしてサポートされています。
利用できる認証タイプは 2 つあります:
希望するオプションを選択し、それが SFTP サーバーまたはサービスでサポートされていることを確認します。次の段落ではパスワードまたは秘密鍵が必要になるため、続行する前に新しいアカウントとその認証を構成する必要があります。
サーバーで認証して録画をアップロードするために使用するアカウントのユーザー名を入力します。宛先 URL を指定します。宛先 URL は、リモート コントロール セッションの録画をアップロードするフォルダーへのパスを含む、サーバーをターゲットとする SFTP URL である必要があります。選択したアカウントの権限を最小限に抑え、録画のアップロード用に指定された特定のフォルダーへの書き込みアクセスのみを許可することをお勧めします。
暗号化されたパスワードまたは暗号化された秘密鍵フィールド
SFTP アカウントの資格情報に安全にアクセスできるのは、あなたとアップロードするデバイスのみであり、SFTP アカウントの資格情報を安全に提供するには、パスワードまたは秘密キーをユーザー定義の証明書を使用して暗号化する必要があります。
暗号化された資格情報は、暗号化されたパスワードまたは暗号化された秘密鍵としてポリシー ルールに追加されます。暗号化に証明書が必要な理由は、後で複数のデバイスに展開して復号化するためです。TeamViewer アプリケーションが事前に暗号化を復号化するため、SFTP サーバーは暗号化された資格情報を処理しません。このセットアップでは、システムに OpenSSL をインストールすることをお勧めします。
証明書を生成する方法は、オペレーティング システムと使用するツールに応じて多数あります。x509 証明書に必要な重要なパラメータが正しく指定されていれば、どの方法も実行可能です:
キーの使用: KeyEncipherment, DataEncipherment, KeyAgreement
タイプ/拡張キーの使用: DocumentEncryptionCert 別名 1.3.6.1.4.1.311.80.1
自己署名証明書を使用する場合は、openssl req コマンド (ドキュメントはこちらを参照) を使用し、<CertificateAndKeyName> を任意の名前に置き換えます:
openssl req -x509 \
-newkey rsa:2048 \
-keyout <CertificateAndKeyName>.pem \
-out <CertificateAndKeyName>.crt \
-addext keyUsage='keyEncipherment, dataEncipherment, keyAgreement' \
-addext extendedKeyUsage='1.3.6.1.4.1.311.80.1'
このコマンドは、データの暗号化と復号化が可能な証明書 CRT と秘密キー PEM ファイルを生成します。これらのファイルは、Windows デバイスに展開する前に PFX に変換する必要があります。これについては、後の段落で説明します。
証明書ファイルを入手したら、次のコマンドを実行してキー パラメータを確認し、<CertificateAndKeyName> を実際の証明書に置き換えて互換性があるかどうかを確認します。これは、既存の証明書またはサード パーティの証明書が使用できるかどうかを確認する場合に特に重要です:
openssl x509 -text -in <CertificateAndKeyName>.crt
キーの生成が成功した場合、ターミナルの出力に次の行が表示されます。これらの行が存在しない場合は、資格情報の暗号化と復号化は失敗します。
X509v3 Key Usage: critical
Key Encipherment, Data Encipherment, Key Agreement
X509v3 Extended Key Usage:
1.3.6.1.4.1.311.80.1
選択した資格情報は、証明書を使用して暗号化メッセージ構文 (CMS、詳細は RFC 5652 を参照) に暗号化する必要があります。これは、openssl cms コマンドを実行することで実行できます (ドキュメントはこちらを参照)。次のコマンドでは、-out <FileName> を指定して、ターミナルからの出力をファイルにリダイレクトすることもできます。
暗号化されたパスワードを生成するには、<Password> を SFTP サーバー アカウントのパスワードに、<CertificateAndKeyName> を証明書ファイルの名前に置き換える必要があります。パスワードの末尾に改行文字が追加されないようにするには、Linux で echo -n を使用してください:
echo "<Password>" | openssl cms -encrypt -outform PEM <CertificateAndKeyName>.crt
代わりに暗号化された秘密キーを使用する場合は、<PathToPrivateKey> を SFTP サーバー アカウントの秘密キーへの相対パスまたは絶対パスに置き換える必要があります。
openssl cms -encrypt -in <PathToPrivateKey> -outform PEM <CertificateAndKeyName>.crt
資格情報が正常に暗号化されると、結果の出力は次の例のようになります:
-----BEGIN CMS-----
MIIBwgYJKoZIhvcNAQcDoIIBszCCAa8CAQAxggFqMIIBZgIBADBOMDoxCzAJBgNVBAYTAkRFMSsw
(...)
hvcNAQcBMB0GCWCGSAFlAwQBKgQQddXx6ufF4KafytY5RKIZqYAQtpGNqX/eU+Oz+lxUnYUTJQ==
-----END CMS-----
選択したコマンドのそれぞれの出力を取得し、メッセージの始まりと終わりを示す出力のヘッダーとフッターを含めて、ルール フィールドにコピーします。
この証明書を使用するポリシー ルールの準備は完了していますが、証明書をデバイスに展開するときに、生成された PEM ファイルと CRT ファイルが引き続き必要になります。ポリシー ルールには追加のオプション フィールドがあり、次の段落で説明します。
Download prefix URL はオプションのフィールドで、サーバーから録画を直接ダウンロードできるように指定できます。この情報は、Web API (詳細はこちら) または Salesforce および ServiceNowとの統合で利用できます。このフィールドには、録画が含まれるパスを含む Web URL が必要です。TeamViewer はストレージにアクセスできないため、パスを有効に保つには、録画はアップロード時の元の名前を維持する必要があります。
TeamViewer は最初の接続時に SFTP サーバーの公開ホストキーをキャッシュしてサーバーの ID を確認し、中間者攻撃を防ぎますが、オプションの SSH 公開ホストキー設定で明示的に指定することもできます。これは、代わりにサーバー ID を検証するために使用されます。これは、ある時点で SFTP サーバーのホスト キーを置き換える必要があり、最初にキャッシュしたものとは異なるホスト キーを予期するようにデバイスに指示する必要がある場合に特に便利です。
ほとんどの場合、SFTP サーバーのセットアップ時に公開ホスト キーを指定するか、SFTP サーバーの構成ファイルまたはダッシュボードで検索できます。これらの値にアクセスできない場合は、現在のデバイスから取得することもできます。
ssh を使用する前にサーバーに接続している場合は、.ssh フォルダー内の known_hosts ファイルから取得できます。または、<SftpServerDomain> をサーバーに置き換えて、次のコマンドを使用することもできます:
ssh-keyscan <SftpServerDomain>
ホスト キーを設定フィールドにコピーするときは、サーバーの名前、IP アドレス、キーの種類、コメントではなく、ホスト キーのフィンガープリントのみをコピーするようにしてください。
これでポリシー設定のセットアップは完了です。さらに設定を追加してポリシーを拡張することも、今すぐ保存することもできます。
TeamViewer アプリケーションがリモート コントロール セッションの記録を SFTP サーバーにアップロードできるようにするには、資格情報を復号化できる必要があります。そのためには、作成された証明書を、ロールアウトする前に受信デバイスのオペレーティング システムの形式に変換する必要があります。基礎となるキーが同じであれば、同じポリシーを Windows マシンと Linux マシンの両方に展開できます。
これを Windows デバイスに展開する場合は、<CertificateAndKeyName> と <CertificateName> をそれぞれのファイル名に置き換えて、次のコマンドを使用して PEM ファイルと CRT ファイルを PFX 形式に変換する必要があります:
openssl pkcs12 \
-inkey <CertificateAndKeyName>.pem \
-in <CertificateAndKeyName>.crt \
-export \
-out <CertificateName>.pfx
生成された PFX 証明書は、エンドポイント管理ソリューションを使用して、ターゲット デバイスのローカル マシン証明書ストレージ (cert:\LocalMachine\My) に展開できます。秘密キーへのアクセスを最小限に抑えるには、SYSTEM アカウントへのアクセスを制限することをお勧めします。
Testing `backticks` feature.
Linux デバイスにこれを展開する場合、変更は必要ありません。秘密鍵 PEM を /etc/teamviewer/ssl/private に、公開証明書 CRT を /etc/teamviewer/ssl/certs に配置する必要があります。公開証明書と対応する秘密鍵の両方に同じベース ファイル名 (<CertificateAndKeyName>.pem と <CertificateAndKeyName>.crt など) があることを確認してください。ルートが秘密鍵ファイルの所有者であることを確認してください。ルート自体へのアクセスは最小限に抑えることをお勧めします。
この機能のセットアップ プロセスは複雑なため、他のデバイスに完全に展開する前に、このセットアップをテストする必要があります。これは、ローカル デバイスに証明書をインストールし、同じデバイスにポリシーを適用し、リモート コントロール セッションを開始して録画を開始し、録画が停止した後にファイルが SFTP サーバーに正常にアップロードされていることを確認することでテストできます。これにより、暗号化、復号化、SFTP セットアップ、およびアップロード デバイスからサーバーへの接続が機能していることが確認できます。
アップロードが失敗した場合、アップロードは短時間後に再試行され、その後試行が失敗するたびに最大 1 時間増加します。タイムアウトにより、SFTP サーバーに対する誤ったリクエストの数が減ります。特にテスト中は、構成がまだアクティブに調整されているため、次の再試行は記録が停止した直後ではない可能性があります。すぐに別のアップロードを試行するには、TeamViewer を完全に再起動します (たとえば、コンピューターを再起動します)。
テストが成功したら、まずエンドポイント管理ソリューションを使用してすべての対象デバイスに証明書を展開し、次にそれらのデバイスにポリシーを適用します。これらのデバイスがリモート コントロール セッションを記録すると、これらのデバイスからのすべての記録が自動的にサーバーにアップロードされます。