ファイルの信頼の管理

信頼データベースを管理して、信頼できるファイルとのfapolicydの同期を維持します。

ファイルの信頼は信頼データベースに格納されます。信頼は、RPMデータベースの情報に基づいて生成することも、ファイル・システムで構成エントリを追加することによって手動で定義することも可能です。信頼データベースの内容および信頼の仕組みの詳細は、「信頼データベースについて」を参照してください。

信頼データベースのリフレッシュ

システム上のファイルがDNFフレームワークの外部で追加または更新された場合は、信頼データベースをリフレッシュします。

fapolicyd信頼データベースを手動で更新します。
sudo fapolicyd-cli --update

信頼ファイル・データベースへのファイルの追加

DNFを使用してインストールされていないファイルをファイル・データベースに手動で追加できます。

  1. 信頼ファイル・データベースにファイルを追加します。
    sudo fapolicyd-cli --file add <path_to_file> --trust-file trust_entry

    ファイルがまだ信頼データベースに存在しない場合、コマンドは/etc/fapolicyd/trust.d/<trust_entry>にエントリを作成して、ファイルを信頼ファイル構成に追加します。

  2. オプションで、サンプル・エントリを追加します。

    たとえば、/home/user/demo.bin/etc/fapolicyd/trust.d/demoに追加するには、次を実行します:

    sudo fapolicyd-cli --file add /home/user/demo.bin --trust-file demo
ヒント

findなどのコマンドライン・ツールを使用して、複数のエントリを信頼ファイル・データベースに同時に追加できます。例:

find /home/user/bin/ -type f -exec fapolicyd-cli --file add {} --trust-file trusted_user_bin \;
ヒント

信頼ファイル・データベースからファイルを削除するには、テキスト・ファイルを直接編集してエントリを削除するか、次を実行します:

sudo fapolicyd-cli --file delete <path_to_file>
重要

信頼ファイル・データベースに変更を加えた後、それらの変更をfapolicydが登録する前に信頼データベースをリフレッシュする必要があります。「信頼データベースのリフレッシュ」を参照してください。

信頼ファイル・データベース内のすべてのエントリは、プレーン・テキスト・ファイルとして/etc/fapolicyd/trust.d/に格納され、必要に応じてテキスト・エディタを使って編集できます。ファイル・サイズまたはハッシュ値を更新する必要がある場合は、「信頼ファイル・データベースの更新」を参照してください。

信頼ファイル・データベースの更新

ファイル信頼データベース内のファイルのサイズまたはハッシュを変更する場合は、ファイル信頼データベースを更新する必要があります。

  1. 信頼ファイル・データベースを更新します。

    信頼ファイル・データベース内のすべてのファイルの変更について信頼ファイル・データベースを更新するには、次を実行します:

    fapolicyd-cli -f update

    ファイルへのパスを指定すると、そのファイルの値のみがデータベースで更新されます。

  2. 信頼データベースをリフレッシュします。

    信頼ファイル・データベースに変更を加えた後、信頼データベースを更新してfapolicydに変更を登録する必要があります。「信頼データベースのリフレッシュ」を参照してください。

信頼の不一致の確認

信頼の不一致は、ファイル・システム上のファイルのファイル・サイズまたはSHA-256ハッシュ値が、信頼データベース内のファイルに格納されている情報と一致しなくなった場合に発生します。DNFを使用しないでファイルを変更すると、信頼の不一致が発生する可能性があります。たとえば、rpmコマンドを使用してファイルを直接インストールまたは更新した場合、またはユーザーまたはプロセスがファイルを変更した場合です。

ノート

サイズまたはSHA-256ハッシュに基づいてファイル整合性チェック用にfapolicydを構成できますが、システムのデッドロックの可能性が高くなるため、このオプションをグローバルに適用することをお薦めしません。

システムで信頼の不一致をチェックします。
sudo fapolicyd-cli --check-trustdb

出力には、不一致が発生したファイルと不一致の内容が記載されます。例:

/etc/selinux/targeted/contexts/files/file_contexts miscompares: size sha256
/etc/selinux/targeted/policy/policy.33 miscompares: size sha256
/opt/rh/gcc-toolset-12/root/usr/bin/ld miscompares: size sha256
/usr/lib64/gconv/gconv-modules.cache miscompares: size sha256
...

一部のファイルのサイズまたは内容は、特定のコマンドまたはサービスの実行後にRPMデータベースの値から変化するため、不一致が予想されます。それでも不一致をチェックすると、信頼データベース内に存在する可能性があるが、データベースへの追加後に変更されたファイルを警告できます。

信頼データベースのエントリのリスト

データベースに含まれるデータをダンプすることで、信頼データベース内のすべての情報を表示できます。

信頼データベースのエントリをリストします。
sudo fapolicyd-cli -D

出力には、信頼のタイプ、信頼できるファイルへのパス、ファイルのサイズ(バイト)およびファイルのSHA-256ハッシュが表示されます。

ヒント

grepなどのコマンドライン・ツールを使用して、ダンプ出力で返されるデータを制限できます。例:

sudo fapolicyd-cli -D|grep '/usr/bin/dnf-3'

信頼データベースのリセット

信頼データベースをリセットするには、fapolicydサービスを停止し、データベースを削除します。これはfapolicydの問題をデバッグするのに役立ちます。

  1. fapolicydサービスを停止します。
    sudo systemctl stop fapolicyd
  2. 信頼データベースを削除します。
    sudo fapolicyd-cli --delete-db

    信頼データベースが完全に削除され、次にfapolicydサービスを起動したときに作成および更新します。

注意

fapolicydが正常に機能しなくなり、システム・ロックアウトが発生する可能性があるため、/var/lib/fapolicyd/ディレクトリを直接削除しないでください。