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) が有効になっている。詳細は、整合性測定アーキテクチャーと拡張検証モジュールの有効化 を参照してください。

手順

  1. Keylime エージェントをインストールします。

    # dnf install keylime-agent

    このコマンドは、keylime-agent-rust パッケージをインストールします。

  2. 設定ファイルでエージェントの 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 から変更することもできます。
  3. 設定ファイルで 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 から変更することもできます。
  4. オプション:エージェントの汎用一意識別子(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 を生成できます。
  5. オプション:エージェントの既存の鍵と証明書を読み込みます。エージェントが server_keyserver_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 エージェントは相対パスを受け入れません。

  6. ファイアウォールでポートを開きます。

    # firewall-cmd --add-port 9002/tcp
    # firewall-cmd --runtime-to-permanent

    別のポートを使用する場合は、9002.conf ファイルで定義されているポート番号に置き換えます。

  7. keylime_agent サービスを有効にして起動します。

    # systemctl enable --now keylime_agent
  8. オプション: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" が表示されます。

  9. /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 ページを参照してください。

  10. カーネルパラメーターを更新します。

    # grubby --update-kernel DEFAULT --args 'ima_appraise=fix ima_canonical_fmt ima_policy=tcb ima_template=ima-ng'
  11. システムを再起動して、新しい IMA ポリシーを適用します。

検証

  1. エージェントが実行されていることを確認します。

    # 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 をデプロイして、次の機能のいずれかまたは両方を実行できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.