7.9. パッケージから Keylime エージェントをデプロイする
Keylime エージェントは、Keylime によって監視されるすべてのシステムにデプロイされるコンポーネントです。
デフォルトでは、Keylime エージェントはすべてのデータを監視対象システムの /var/lib/keylime/
ディレクトリーに保存します。
設定ファイルをドロップインディレクトリー内で整理するには、/etc/keylime/agent.conf.d/00-registrar-ip.conf
のように、2 桁の数字の接頭辞を付けたファイル名を使用します。設定処理は、ドロップインディレクトリー内のファイルを辞書順で読み取り、各オプションを最後に読み取った値に設定します。
前提条件
-
監視対象システムに対する
root
権限がある。 -
監視対象システムに Trusted Platform Module (TPM) が搭載されている。確認するには、
tpm2_pcrread
コマンドを入力します。出力が複数のハッシュを返す場合は、TPM が使用可能です。 他の Keylime コンポーネントが設定されているシステムへのネットワークアクセスがある。
- verifier
- 詳細は、Keylime verifier の設定 を参照してください。
- registrar
- 詳細は、Keylime registrar の設定 を参照してください。
- テナント
- 詳細は、Keylime テナントの設定 を参照してください。
- 監視対象システムで Integrity Measurement Architecture (IMA) が有効になっている。詳細は、整合性測定アーキテクチャーと拡張検証モジュールの有効化 を参照してください。
手順
Keylime エージェントをインストールします。
# dnf install keylime-agent
このコマンドは、
keylime-agent-rust
パッケージをインストールします。設定ファイルでエージェントの IP アドレスとポートを定義します。
/etc/keylime/agent.conf.d/
ディレクトリーに、次の内容の新しい.conf
ファイル (/etc/keylime/agent.conf.d/00-agent-ip.conf
など) を作成します。[agent] ip = '<agent_ip>'
注記Keylime エージェントの設定では TOML 形式が使用されます。これは、他のコンポーネントの設定に使用される INI 形式とは異なります。したがって、値は有効な TOML 構文で入力してください。たとえば、パスは一重引用符で囲み、複数のパスの配列は角括弧で囲みます。
-
<agent_IP_address>
は、エージェントの IP アドレスに置き換えます。あるいは、ip = '*'
またはip = '0.0.0.0'
を使用して、使用可能なすべての IP アドレスにエージェントをバインドします。 -
必要に応じて、
port = '<agent_port>'
オプションを使用して、エージェントのポートをデフォルト値9002
から変更することもできます。
-
設定ファイルで registrar の IP アドレスとポートを定義します。
/etc/keylime/agent.conf.d/
ディレクトリーに、次の内容の新しい.conf
ファイル (/etc/keylime/agent.conf.d/00-registrar-ip.conf
など) を作成します。[agent] registrar_ip = '<registrar_IP_address>'
-
<registrar_IP_address>
を registrar の IP アドレスに置き換えます。 -
必要に応じて、
registrar_port = '<registrar_port>'
オプションを使用して、registrar のポートをデフォルト値8890
から変更することもできます。
-
オプション:エージェントの汎用一意識別子(UUID)を定義します。定義されていない場合は、デフォルトの UUID が使用されます。
/etc/keylime/agent.conf.d/
ディレクトリーに、次の内容の新しい.conf
ファイル (/etc/keylime/agent.conf.d/00-agent-uuid.conf
など) を作成します。[agent] uuid = '<agent_UUID>'
-
<agent_UUID>
は、エージェントの UUID に置き換えます (例:d432fbb3-d2f1-4a97-9ef7-abcdef012345)
。uuidgen
ユーティリティーを使用して UUID を生成できます。
-
オプション:エージェントの既存の鍵と証明書を読み込みます。エージェントが
server_key
とserver_cert
を受信しない場合、エージェントは独自の鍵と自己署名証明書を生成します。設定で鍵と証明書の場所を定義します。
/etc/keylime/agent.conf.d/
ディレクトリーに、次の内容の新しい.conf
ファイル (/etc/keylime/agent.conf.d/00-keys-and-certs.conf
など) を作成します。[agent] server_key = '</path/to/server_key>' server_key_password = '<passphrase1>' server_cert = '</path/to/server_cert>' trusted_client_ca = '[</path/to/ca/cert3>, </path/to/ca/cert4>]'
注記絶対パスを使用して、鍵と証明書の場所を定義します。Keylim エージェントは相対パスを受け入れません。
ファイアウォールでポートを開きます。
# firewall-cmd --add-port 9002/tcp # firewall-cmd --runtime-to-permanent
別のポートを使用する場合は、
9002
を.conf
ファイルで定義されているポート番号に置き換えます。keylime_agent
サービスを有効にして起動します。# systemctl enable --now keylime_agent
オプション:Keylime テナントが設定されているシステムから、エージェントが正しく設定されており、registrar に接続できることを確認します。
# keylime_tenant -c regstatus --uuid <agent_uuid> Reading configuration from ['/etc/keylime/logging.conf'] ... ==\n-----END CERTIFICATE-----\n", "ip": "127.0.0.1", "port": 9002, "regcount": 1, "operational_state": "Registered"}}}
<agent_uuid>
は、エージェントの UUID に置き換えます。registrar と agent が正しく設定されている場合、出力にはエージェントの IP アドレスとポートが表示され、その後に
"operational_state": "Registered"
が表示されます。
/etc/ima/ima-policy
ファイルに次の内容を入力して、新しい IMA ポリシーを作成します。# PROC_SUPER_MAGIC = 0x9fa0 dont_measure fsmagic=0x9fa0 # SYSFS_MAGIC = 0x62656572 dont_measure fsmagic=0x62656572 # DEBUGFS_MAGIC = 0x64626720 dont_measure fsmagic=0x64626720 # TMPFS_MAGIC = 0x01021994 dont_measure fsmagic=0x1021994 # RAMFS_MAGIC dont_measure fsmagic=0x858458f6 # DEVPTS_SUPER_MAGIC=0x1cd1 dont_measure fsmagic=0x1cd1 # BINFMTFS_MAGIC=0x42494e4d dont_measure fsmagic=0x42494e4d # SECURITYFS_MAGIC=0x73636673 dont_measure fsmagic=0x73636673 # SELINUX_MAGIC=0xf97cff8c dont_measure fsmagic=0xf97cff8c # SMACK_MAGIC=0x43415d53 dont_measure fsmagic=0x43415d53 # NSFS_MAGIC=0x6e736673 dont_measure fsmagic=0x6e736673 # EFIVARFS_MAGIC dont_measure fsmagic=0xde5e81e4 # CGROUP_SUPER_MAGIC=0x27e0eb dont_measure fsmagic=0x27e0eb # CGROUP2_SUPER_MAGIC=0x63677270 dont_measure fsmagic=0x63677270 # OVERLAYFS_MAGIC # when containers are used we almost always want to ignore them dont_measure fsmagic=0x794c7630 # MEASUREMENTS measure func=BPRM_CHECK measure func=FILE_MMAP mask=MAY_EXEC measure func=MODULE_CHECK uid=0
このポリシーは、実行されたアプリケーションのランタイム監視をターゲットとしています。このポリシーは状況に応じて調整できます。MAGIC 定数については、システム上の
statfs(2)
man ページを参照してください。カーネルパラメーターを更新します。
# grubby --update-kernel DEFAULT --args 'ima_appraise=fix ima_canonical_fmt ima_policy=tcb ima_template=ima-ng'
- システムを再起動して、新しい IMA ポリシーを適用します。
検証
エージェントが実行されていることを確認します。
# systemctl status keylime_agent ● keylime_agent.service - The Keylime compute agent Loaded: loaded (/usr/lib/systemd/system/keylime_agent.service; enabled; preset: disabled) Active: active (running) since ...
次のステップ
監視対象のすべてのシステムでエージェントを設定したら、Keylime をデプロイして、次の機能のいずれかまたは両方を実行できます。