# KCM バージョン 2.20.0

## 概要

Keeperコネクションマネージャー2.20.0には、以下の重要なアップデートが反映されています。アップグレードの前に、必ずリリースノート全体をご確認ください。

1. リモートブラウザ分離 (RBI) をサポートするための必須変更
2. EL7のサポート終了
3. RBIにおけるHTTPS証明書エラーの無視に対応
4. クリップボードサイズの制限を設定可能に
5. SSHの証明書認証サポートの追加
6. バグ修正

***

## リモートブラウザ分離 (RBI) 対応のための必須変更

{% hint style="info" %}
**重要:** 本リリースにおけるRBI関連の一部変更には、これまで不要だった追加サービスやサンドボックス機構が必要になります。これに伴い、Dockerのデプロイで使用される`seccomp`プロファイルの更新と、AppArmorプロファイルの作成が求められます。

**このAppArmorプロファイルは、UbuntuなどAppArmorを使用しているプラットフォームでRBIを動作させるために必ず読み込む必要があります。**
{% endhint %}

必須作業: 最新バージョンの`kcm-setup.run`スクリプトをダウンロードします。

```
curl -O https://keepersecurity.com/kcm/kcm-setup.run
```

続いて、以下のいずれかの方法で対応します。

1. **`setup.run`を使用してAppArmorプロファイルを自動追加する方法**

KCMインストール後に`docker-compose.yml`を手動で変更していない場合は、以下の手順で変更を自動適用できます。

1. Keeper Securityから最新の`kcm-setup.run`をダウンロードします。
2. コマンド`sudo ./kcm-setup.run upgrade`で最新版へアップグレードします。
3. コマンド`sudo ./kcm-setup.run reconfigure`で`docker-compose.yml`を再生成します。

{% hint style="info" %}
`docker-compose.yml`を手動で変更している場合は、**以下の手順**に従ってください。
{% endhint %}

2. **カスタマイズされた`docker-compose.yml`にAppArmorプロファイルを追加する方法**

`docker-compose.yml`を手動で変更している場合は、以下の手順に従って、guacdコンテナが新しいプロファイルを参照するように、`docker-compose.yml`を手動で編集する必要があります。

1. Keeper Securityから最新の`kcm-setup.run`をダウンロードします。
2. コマンド`sudo ./kcm-setup.run upgrade`で最新版へアップグレードします。
3. `/etc/kcm-setup/docker-compose.yml` を編集し、guacdコンテナの`security_opt`セクションに`"apparmor:..."`オプションを追加して、次のような構成にします。

   ```yaml
   security_opt:
       - "seccomp:/etc/kcm-setup/guacd-docker-seccomp.json"
       - "apparmor:guacd-apparmor-profile"
   ```
4. コマンド`sudo ./kcm-setup.run apply`を実行して、`docker-compose.yml`に加えた変更を適用します。

#### **AppArmorプロファイルの手動抽出 (必要な場合のみ)**&#x20;

AppArmorプロファイルは標準の場所にバンドルされており、Dockerイメージから手動で抽出できます。

```
sudo docker run --rm --entrypoint=/bin/cat keeper/guacd /opt/keeper/share/guacd/guacd-apparmor-profile > guacd-apparmor-profile
```

抽出したプロファイルは`/etc/apparmor.d`配下にコピーしてください。これにより、起動時に自動的に読み込まれるようになります。

```bash
sudo cp guacd-apparmor-profile /etc/apparmor.d/
```

新しいプロファイルは、システムの再起動または`apparmor_parser`を手動で実行することで読み込めます。

```bash
sudo apparmor_parser -r /etc/apparmor.d/guacd-apparmor-profile
```

***

{% hint style="danger" %}
**Ubuntu環境でのDockerインストールに関する重要なお知らせ**
{% endhint %}

**Ubuntuが提供する`docker.io`パッケージは使用しないでください。**&#x30C6;ストの結果、この旧バージョンのDockerパッケージではAppArmorプロファイルとの互換性に問題がある可能性があることが確認されています。特に、再起動後にコンテナが設定されたAppArmorプロファイルを正しく再適用できない事象が報告されています。

代わりに、Docker公式が提供する[こちら](https://docs.docker.com/engine/install/ubuntu/)のパッケージを使用してください。

なお、Dockerがまだインストールされていない場合、`kcm-setup.run`を使用することでDockerの公式パッケージが自動でインストールされます。これにより、KCMのインストールと適切なDockerバージョンの導入を同時に行うことができます。

***

## EL7のサポート終了について

CentOS 7およびRHEL 7は、2024年6月をもってサポート終了となりました。これに伴い、KCMではEL7向けのビルド提供を終了します。KCMバージョン2.19.3が最後のEL7対応バージョンとなり、KCM2.20.0以降ではEL7はサポート対象外となります。

現在もRHEL 7、CentOS 7、またはその他のEL7派生ディストリビューション上でKCMをRPMパッケージにより運用している場合は、EL8への移行を推奨します。EL8環境であればKCM 2.20.0へのアップグレードが可能です。なお、EL9およびEL10のサポートについては、今後のリリースで追加予定です。

***

## RBIにおけるHTTPS証明書エラーの無視をサポート

**KCM-404:** 自己署名証明書の無視に対応

リモートブラウザ分離 (RBI) は、SSL/TLS証明書の検証を厳密に行います。ただし、接続先の初期URLのドメインが自己署名証明書など無効な証明書を使用していると事前に分かっており、管理者がそれでもRBI経由でのアクセスを許可したい場合には、初期URLに対して証明書の検証をスキップできるようになりました。

**注意:** このバイパス機能は**初期URLのドメインにのみ適用**されます。以下のような場合には無効となります。

* 初期URLが設定されていない (接続パラメータが空白の) 場合。
* 証明書が無効なドメインが、初期URLのドメインと完全一致しない場合 (リダイレクト等で異なるドメインに遷移するケースなど)。

***

## クリップボードサイズ制限の設定に対応

**KCM-405:** 接続ごとにクリップボードの制限サイズを設定可能に

KCMではこれまで、接続内で使用されるクリップボードの最大サイズは256KBに制限されていました。今回のアップデートにより、接続ごとにこの上限を管理者が変更できるようになりました。これにより、より大きなデータをコピーする場合にも柔軟に対応できます。

***

## SSHの証明書認証に対応

**KCM-433:** SSH接続における証明書認証をサポート

証明書認証を要求するSSHサーバーに対応するため、KCMではこれまでの秘密鍵に加えて、署名済みの公開鍵を指定できるパラメータが追加されました。CAにより署名された公開鍵をこの新しいパラメータとして設定することで、SSHサーバーとの証明書認証ができます。

***

## バグ修正

#### **RBI関連**

* **KCM-390:** YouTubeショート動画の読み込み時にRBI接続が失敗する不具合を修正。
* **KCM-396:** URLパターンが一定数を超えると登録されず、警告も表示されない不具合を修正。
* **KCM-410:** 「autofill-rules.yml」が大きすぎる場合にKCMの自動入力が失敗する不具合を修正。
* **KCM-413:** 日本語入力時にRBIがフリーズする不具合を修正。
* **KCM-417:** TOTPの自動入力時にメモリエラーが発生する不具合を修正。
* **KCM-419:** CloudflareのログインページでreCAPTCHA認証に干渉してログインできなくなる自動入力の不具合を修正。
* **KCM-425:** iPadでのRBIにおいてタッチ操作が機能しない不具合を修正。
* **KCM-431:** 自動入力が手動操作に干渉する不具合を修正。
* **KCM-435:** Googleサービスへのログイン時にRBIが使用できない不具合を修正。

#### **ターミナル関連**

* **KCM-399:** MySQL接続において、バイナリ型のカラムデータがターミナル出力を乱す不具合を修正。
* **KCM-437:** `vim`使用時にKCMのターミナルエミュレーターが文字化けする不具合を修正。

#### **その他のバグ修正**

* **KCM-380:** FIPSモードが有効なRHEL環境でKSM連携が使用できない不具合を修正。
* **KCM-386:** `guacamole-db-mysql`イメージがaarch64環境で正常に動作しない不具合を修正。
* **KCM-392:** Guacamolウェブアプリでポーランド語の言語リソースが存在しないという警告が表示される不具合を修正。
* **KCM-400:** キー入力ログの途中で誤ったタイムスタンプが表示される不具合を修正。
* **KCM-403:** 短い動画で、セッション録画のヒートマップが正しく表示されない不具合を修正。
* **KCM-411:** ファイルアップロードの進捗バーが、実際のアップロード完了前に100%になる不具合を修正。
* **KCM-426:** KSMの静的トークンマッピングがユーザー単位の設定で正しく動作しない不具合を修正。
* **KCM-427:** 録画の再生時にフリーズする不具合を修正。
* **KCM-439:** `__guac_wol_send_packet()`関数がIPv6アドレスに対して誤った構造体を使用していた不具合を修正。

#### **依存関係の更新**

* **KCM-453:** KCMにおけるサードパーティ製の依存ライブラリを更新。
