13.6. fapolicyd に関連する問題のトラブルシューティング
fapolicyd アプリケーションフレームワークは、最も一般的な問題のトラブルシューティングを行うツールを提供します。また、rpm コマンドでインストールされたアプリケーションを信頼データベースに追加することもできます。
- コンテナーシステム上で
fapolicyd を実行する fapolicydフレームワークは名前空間とコンテナーを完全にサポートしていないため、コンテナーを実行しているシステムでは回避策を使用する必要があります。fapolicydが原因でコンテナーの起動に失敗するのを防ぐため、/etc/fapolicyd/rules.d/25-runc.rules ファイルを作成し、以下の内容を記述してください。allow perm=any pattern=ld_so exe=/usr/bin/runc : all allow perm=any uid=0 pattern=ld_so exe=/runc : trust=1ファイルを保存し、
fagenrulesスクリプトを実行してから、fapolicyd-cli --reload-rulesコマンドを入力して変更を適用します。または、/etc/fapolicyd/fapolicyd.conf ファイルのwatch_fsオプションからtmpfs の値を削除し、systemctl restart fapolicydコマンドを使用してfapolicydサービスを再起動することもできますが、この方法ではシステムのセキュリティーが低下します。- RPM を使用したアプリケーションのインストール
rpmコマンドを使用してアプリケーションをインストールする場合は、fapolicydRPM データベースを手動で更新する必要があります。<application> をインストールします。
# rpm -i <application>.rpmデータベースを更新します。
# fapolicyd-cli --updateこの手順を飛ばすとシステムがフリーズする可能性があるため、再起動する必要があります。
- サービスのステータス
fapolicydが正しく機能しない場合は、サービスステータスを確認します。# systemctl status fapolicydfapolicyd-cliチェックとリスト--check-config、--check-watch_fs、および--check-trustdbオプションは、構文エラー、まだ監視されていないファイルシステム、およびファイルの不一致を見つけるのに役立ちます。次に例を示します。# fapolicyd-cli --check-config Daemon config is OK # fapolicyd-cli --check-trustdb /etc/selinux/targeted/contexts/files/file_contexts miscompares: size sha256 /etc/selinux/targeted/policy/policy.31 miscompares: size sha256--listオプションを使用して、ルールの現在のリストとその順序を確認します。# fapolicyd-cli --list … 9. allow perm=execute all : trust=1 10. allow perm=open all : ftype=%languages trust=1 11. deny_audit perm=any all : ftype=%languages 12. allow perm=any all : ftype=text/x-shellscript 13. deny_audit perm=execute all : all …
- デバッグモード
デバッグモードは、一致したルール、データベースステータスなどに関する詳細情報を提供します。
fapolicydをデバッグモードに切り替えるには、以下を行います。fapolicydサービスを停止します。# systemctl stop fapolicydデバッグモードを使用して、対応するルールを識別します。
# fapolicyd --debugfapolicyd --debugコマンドの出力は冗長であるため、エラー出力をファイルにリダイレクトできます。# fapolicyd --debug 2> fapolicy.outputまたは、
fapolicydがアクセスを拒否した場合にのみ出力をエントリーに制限するには、--debug-denyオプションを使用します。# fapolicyd --debug-deny
fapolicydデータベースの削除fapolicydデータベースに関連する問題を解決するには、データベースファイルを削除してください。# systemctl stop fapolicyd # fapolicyd-cli --delete-db警告/var/lib/fapolicyd/ディレクトリーを削除しないでください。fapolicydフレームワークは、このディレクトリー内のデータベースファイルのみを自動的に復元します。fapolicydデータベースのダンプfapolicydには、有効なすべての信頼ソースからのエントリーが含まれます。データベースをダンプした後にエントリーを確認できます。# fapolicyd-cli --dump-db- アプリケーションパイプ
まれに、
fapolicydパイプファイルを削除するとロックアップが解決する場合があります。# rm -f /var/run/fapolicyd/fapolicyd.fifo