7.4. パッケージから Keylime registrar をデプロイする
registrar は、すべてのエージェントのデータベースを含む Keylime コンポーネントであり、TPM ベンダーの公開鍵をホストします。registrar の HTTPS サービスは、Trusted Platform Module (TPM) 公開鍵を受け入れると、クォートを確認するためにこれらの公開鍵を取得するインターフェイスを提供します。
信頼の連鎖を維持するには、registrar を実行するシステムをセキュアに管理してください。
要件に応じて、registrar を別のシステムにインストールすることも、Keylime verifier と同じシステムにインストールすることもできます。verifier と registrar を別々のシステムで実行すると、パフォーマンスが向上します。
設定ファイルをドロップインディレクトリー内に整理するには、/etc/keylime/registrar.conf.d/00-registrar-ip.conf
のように、2 桁の数字の接頭辞を付けたファイル名を使用します。設定処理は、ドロップインディレクトリー内のファイルを辞書順で読み取り、各オプションを最後に読み取った値に設定します。
前提条件
- Keylime verifier がインストールされ実行されているシステムへのネットワークアクセスがある。詳細は、「パッケージから Keylime verifier をデプロイする」 を参照してください。
-
root
権限と、Keylime コンポーネントをインストールするシステムへのネットワーク接続がある。 Keylime が registrar からのデータを保存するデータベースにアクセスできる。次のデータベース管理システムのいずれかを使用できます。
- SQLite (デフォルト)
- PostgreSQL
- MySQL
- MariaDB
- 認証局からの有効な鍵と証明書がある。
手順
Keylime registrar をインストールします。
# dnf install keylime-registrar
/etc/keylime/registrar.conf.d/
ディレクトリーに、次の内容の新しい.conf
ファイル (/etc/keylime/registrar.conf.d/00-registrar-ip.conf
など) を作成して、registrar の IP アドレスとポートを定義します。[registrar] ip = <registrar_IP_address>
-
<registrar_IP_address>
を registrar の IP アドレスに置き換えます。あるいは、ip = *
またはip = 0.0.0.0
を使用して、使用可能なすべての IP アドレスに registrar をバインドします。 -
必要に応じて、
port
オプションを使用して、Keylime エージェントが接続するポートを変更します。デフォルト値は8890
です。 -
必要に応じて、
tls_port
オプションを使用して、Keylime verifier とテナントが接続する TLS ポートを変更します。デフォルト値は8891
です。
-
オプション:エージェントのリスト用に registrar のデータベースを設定します。デフォルト設定では、registrar の
/var/lib/keylime/reg_data.sqlite
ディレクトリーにある SQLite データベースを使用します。/etc/keylime/registrar.conf.d/
ディレクトリーに、次の内容の新しい.conf
ファイル (/etc/keylime/registrar.conf.d/00-db-url.conf
など) を作成できます。[registrar] database_url = <protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>
<protocol>://<name>:<password>@<ip_address_or_hostname>/<properties>
は、データベースの URL (例:postgresql://registrar:EKYYX-bqY2?#raXm@198.51.100.1/registrardb
) に置き換えます。使用する認証情報に、Keylime がデータベース構造を作成するための権限があることを確認してください。
registrar に証明書と鍵を追加します。
-
デフォルトの設定を使用して、鍵と証明書を
/var/lib/keylime/reg_ca
ディレクトリーにロードできます。 または、設定で鍵と証明書の場所を定義することもできます。
/etc/keylime/registrar.conf.d/
ディレクトリーに新しい.conf
ファイルを作成します (例:/etc/keylime/registrar.conf.d/00-keys-and-certs.conf
の内容は次のとおりです)。[registrar] tls_dir = /var/lib/keylime/reg_ca server_key = </path/to/server_key> server_key_password = <passphrase1> server_cert = </path/to/server_cert> trusted_client_ca = ['</path/to/ca/cert1>', '</path/to/ca/cert2>']
注記絶対パスを使用して、鍵と証明書の場所を定義します。または、
tls_dir
オプションでディレクトリーを定義し、そのディレクトリーからの相対パスを使用することもできます。
-
デフォルトの設定を使用して、鍵と証明書を
ファイアウォールでポートを開きます。
# firewall-cmd --add-port 8890/tcp --add-port 8891/tcp # firewall-cmd --runtime-to-permanent
別のポートを使用する場合は、
8890
または8891
を.conf
ファイルで定義されているポート番号に置き換えます。keylime_registrar
サービスを起動します。# systemctl enable --now keylime_registrar
注記デフォルト設定では、verifier が他の Keylime コンポーネントの CA と証明書を作成するため、
keylime_registrar
サービスを起動する前にkeylime_verifier
を起動します。カスタム証明書を使用する場合、この順序で起動する必要はありません。
検証
keylime_registrar
サービスがアクティブで実行中であることを確認します。# systemctl status keylime_registrar ● keylime_registrar.service - The Keylime registrar service Loaded: loaded (/usr/lib/systemd/system/keylime_registrar.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2022-11-09 10:10:17 EST; 1min 42s ago ...