ポリシー・ルールについて
ポリシー・ルールは、信頼データベース内に明示的にリストされていないファイルをfapolicydが処理する方法を制御します。 ポリシー・ルールを使用して、信頼データベース内にあるファイルのシステムでの動作をさらに制限することもできます。 ポリシー・ルールを使用して、fapolicydの制限を厳しくしたり緩くしたりできます。 ポリシー・ルールを定義して、指定したシナリオの特定のアプリケーションを許可または拒否する例外を作成できます。 たとえば、特定のユーザーまたはグループに対してアプリケーションを明示的に許可するが、それ以外のすべてのユーザーに対してアプリケーションを拒否するルールを作成できます。
fapolicydパッケージには、次の2つのポリシー・ルール・セットが含まれています:
- known-libsポリシー
known-libsポリシーはデフォルトのルール・セットであり、既知のアプリケーションまたはライブラリの実行のみを許可することによってシステムを保護するように設計されています。 このポリシーは、Elfバイナリ、pythonプログラムおよびシェル・スクリプトを信頼できるアプリケーションおよびライブラリに対して実行できるため、少し許容度が高くなります。
- restrictiveポリシー
restrictiveポリシーは、known-libsポリシーとほとんど同じルールを提供しますが、信頼データベース内にないアプリケーションまたはライブラリの実行を妨げる、より制限的なルールがいくつか含まれています。 このポリシーは、信頼されていない実行可能ファイルを実行する可能性をブロックします。
これらのポリシーのルールは、/usr/share/fapolicyd/sample-rules/に含まれています。 known-libsポリシーに適用されるルールは、パッケージのインストール時に/etc/fapolicyd/rules.d/にコピーされ、アクティブになります。 各ポリシーに適用されるファイルについては、/usr/share/fapolicyd/sample-rules/README-rulesを参照してください。
fapolicydは、自然なソート順序に基づいてルールを処理するため、ルール・ファイルには、次の接頭辞規則に従って名前が付けられます:
10-: 他のルールで使用できるマクロの定義。20-: dracutがカーネルのinitramfsファイルをビルドする場合や、DNFが更新のために特定のツールを実行する必要がある場合など、システム・クリティカル・アクティビティに対してfapolicydを処理するルール。30-: プログラムの起動方法を示すアクセス・パターンを識別するルール。 デフォルト・ルールは、実行時リンカー(ld.so)によって起動されるプログラムをチェックします。40-: ELFライブラリおよび信頼できるELFバイナリ実行可能ファイルに対して信頼できるルールであっても、不正な形式のELFファイルが実行されないようにするルールなどのELFバイナリファイルのルール。50-: 特定のプログラムを実行したり、特定のファイルにアクセスしたりする際に信頼するユーザーまたはグループを設定するルール。60-: アプリケーションが信頼データベースにない場合の特定のアプリケーションにアクセスするためのルール。70-: Python、Perl、PHP、Ruby、Luaなどの様々なプログラミング言語またはスクリプト言語に関連するルール。80-: 高度なアクセス制御が必要になる可能性のある信頼できるアプリケーションのルール。90-: 一般的なキャッチオール許可および拒否ルール。
ルールは、実行時にfapolicyd読取りを行う/etc/fapolicyd/compiled.rules内の単一のファイルにコンパイルされます。
ルール構造の詳細は、fapolicyd.rules(5)マニュアル・ページを参照してください。