SElinuxソースコンテキストとターゲットコンテキスト間のマッピングはどこにありますか?

SElinuxソースコンテキストとターゲットコンテキスト間のマッピングはどこにありますか?

SELinuxを学んでいますが、質問があります。

ソースフィールドとターゲットフィールドの間には直接的な相関関係がないようです。たとえば、ApacheはTypeとして実行でき、httpd_t/var/www/html/の下のファイルにはtypeタグがに設定されている可能性がありますhttpd_sys_content_t。私が間違っていない限り、これらの「タグ」は人が読める文字列のように見えます。

では、マッピングはどこにありますか?特定のソースコンテキストを持つプロセスがアクセスできるターゲットコンテキストが何であるか、システムはどのように知っていますか?

semanage fcontext -aカスタムファイルコンテキストポリシーを設定して一致するファイルに追加することはできますが、restoreconどのタイプを使用する必要があるかはわかりません。

ユーザー、役割、レベルのフィールドの「目的」とは何ですか?操作を許可するには、どのフィールドが一致する必要がありますか?

関連注意:特定のソースコンテキストでプロセスにタグを付ける方法は?

答え1

そのフィールドの説明はここで確認できます。コンテキスト

ただし、使用していない一般ユーザーの場合MLS私たちのほとんどはタイプ強制()にのみ興味がありますhttpd_t

SELinux コンテキストには、ユーザー、ロール、タイプ、セキュリティレベルなど、いくつかのフィールドがあります。 SELinuxタイプの情報は、SELinuxポリシーに関しておそらく最も重要です。プロセスとシステムリソースの間で許容される対話を定義する最も一般的なポリシールールは、SELinux コンテキスト全体ではなく SELinux タイプを使用するためです。 SELinuxタイプは_tで終わります。たとえば、Webサーバーのタイプ名はhttpd_tです。通常、/var/www/html/にあるファイルとディレクトリの種類のコンテキストはhttpd_sys_content_tです。通常、/tmpおよび/var/tmp/にあるファイルとディレクトリのタイプコンテキストはtmp_tです。 Webサーバーポートのタイプコンテキストはhttp_port_tです。

考慮できるhttpd_sys_content_tサブファイルのコンテキストタイプは、httpd_t次に定義されています。ファイルコンテキスト

通常、クイック検索でコードを検索することをお勧めします。参照方針買戻契約組み込みタイプの定義方法に関する情報です。私の考えでは、これが答えを得るための最速の方法の1つです。

次の使用

seinfo --all|grep httpd_sys_content_t

または

sesearch -t httpd_t -A

または

sesearch -s httpd_t -A

または

semanage fcontext -l | grep httpd_sys_content_t

より良い方法は、デプロイメントポリシーのソースコードを取得し、そのタイプのソースツリーをgrepして、デプロイメントポリシーに適用されるリビジョンに関するより正確な情報を取得することです。

マクロは参照ポリシーソースに表示されると少し脅威になる可能性がありますが、その定義を検索することもできます。

関連情報