13,005
回編集
179行目: | 179行目: | ||
<br> | <br> | ||
==== モジュール宣言 ==== | ==== モジュール宣言 ==== | ||
policy_module(モジュール名, バージョン) | ポリシーパッケージの名前とバージョンを定義する。<br> | ||
これは、TEファイルの最初に記述する必要がある。<br> | |||
<br> | |||
* モジュール名 | |||
*: ポリシーパッケージの名前 | |||
* バージョン | |||
*: ポリシーの更新管理に使用される。 | |||
<br> | |||
policy_module(<モジュール名>, <バージョン>) | |||
例: | 例: | ||
185行目: | 193行目: | ||
<br> | <br> | ||
==== タイプ定義 ==== | ==== タイプ定義 ==== | ||
type タイプ名; | セキュリティコンテキストの一部となるタイプを定義する。<br> | ||
<br> | |||
* タイプ | |||
*: SELinuxのセキュリティコンテキストの一部である。 | |||
*: 一般的に、プロセス用のタイプ (_t)、実行ファイル用のタイプ (_exec_t)、データ用のタイプ (_data_t) 等を定義する。 | |||
*: タイプ名は、アンダースコアで区切られた意味のある名前にすること。 | |||
<br> | |||
type <タイプ名>; | |||
例: | 例: | ||
193行目: | 208行目: | ||
<br> | <br> | ||
==== ドメイン遷移ルール ==== | ==== ドメイン遷移ルール ==== | ||
domain_auto_trans(ソースドメイン, 実行ファイルタイプ, ターゲットドメイン) | プロセスのドメイン変更を自動化する。<br> | ||
<br> | |||
このルールにより、特定のタイプの実行ファイルが実行された時に、プロセスのドメインが自動的に変更される。<br> | |||
以下の例では、unconfined_tドメインのプロセスがmyapp_exec_tタイプの実行ファイルを実行する時、新しいプロセスはmyapp_tドメインで動作する。<br> | |||
<br> | |||
domain_auto_trans(<ソースドメイン>, <実行ファイルタイプ>, <ターゲットドメイン>) | |||
例: | 例: | ||
199行目: | 219行目: | ||
<br> | <br> | ||
==== allowルール ==== | ==== allowルール ==== | ||
allow ソースタイプ ターゲットタイプ:クラス { パーミッション }; | 基本的なアクセス制御を定義する。<br> | ||
ソースタイプ (通常はプロセス) がターゲットタイプ (ファイルやディレクトリ等) に対して特定の操作を行うことを許可する。<br> | |||
<br> | |||
* クラス | |||
*: ファイル、ディレクトリ、ソケット等のリソースタイプを指定する。 | |||
* パーミッション | |||
*: read、write、execute等の操作を指定する。 | |||
<br> | |||
allow <ソースタイプ> <ターゲットタイプ>:<クラス> { <パーミッション> }; | |||
例: | 例: | ||
205行目: | 233行目: | ||
<br> | <br> | ||
==== インタフェース使用 ==== | ==== インタフェース使用 ==== | ||
インタフェース名(タイプ1, タイプ2, ...) | 再利用可能なポリシールールを活用する。<br> | ||
インタフェースは、再利用可能なポリシールールの集合である。<br> | |||
<br> | |||
共通の操作 (例: 設定ファイルの読み取り、ログの書き込み) に対して定義されている。<br> | |||
これにより、ポリシーの記述が簡潔になり、一貫性が保たれる。<br> | |||
<br> | |||
インタフェース名(<タイプ1>, <タイプ2>, ...) | |||
例: | 例: | ||
211行目: | 245行目: | ||
<br> | <br> | ||
==== 属性の定義と割り当て ==== | ==== 属性の定義と割り当て ==== | ||
attribute 属性名; | 複数のタイプをグループ化する。<br> | ||
typeattribute タイプ名 属性名; | <br> | ||
* 属性名 | |||
*: 複数のタイプをグループ化するために使用される。 | |||
*: これにより、複数のタイプに対して1度にルールを適用できる。 | |||
*: 例えば、全てのネットワークデーモンに共通のルールを適用する場合等に便利である。 | |||
<br> | |||
attribute <属性名>; | |||
typeattribute <タイプ名> <属性名>; | |||
例: | 例: | ||
219行目: | 260行目: | ||
<br> | <br> | ||
==== ブール値の定義 ==== | ==== ブール値の定義 ==== | ||
bool ブール名 default 初期値; | ランタイムでのポリシー調整を可能にする。<br> | ||
ブール値は、ランタイムでポリシーの動作を変更するために使用される。<br> | |||
<br> | |||
管理者は、<code>setsebool</code>コマンドを使用してこれらの値を変更できる。<br> | |||
これにより、システムの再起動やポリシーの再コンパイル無しでポリシーを調整できる。<br> | |||
<br> | |||
bool <ブール名> default <初期値>; | |||
例: | 例: | ||
225行目: | 272行目: | ||
<br> | <br> | ||
==== 条件付きポリシー ==== | ==== 条件付きポリシー ==== | ||
if (条件) { | 動的なポリシー適用を実現する。<br> | ||
条件付きポリシーは、ブール値の状態に基づいてポリシールールを動的に適用または除外する。<br> | |||
<br> | |||
これにより、単一のポリシーモジュール内で異なる設定をサポートすることができる。<br> | |||
<br> | |||
if (<条件>) { | |||
// ポリシールール | // ポリシールール | ||
} | } | ||
238行目: | 290行目: | ||
<br> | <br> | ||
==== ロールの割り当て ==== | ==== ロールの割り当て ==== | ||
role ロール名 types タイプ名; | ユーザのアクセス可能なドメインを制限する。<br> | ||
<br> | |||
* ロール | |||
*: ユーザがアクセスできるドメイン (タイプ) を制限するために使用される。 | |||
*: 特定のロールにタイプを関連付けることにより、そのロールを持つユーザのみがそのタイプのプロセスを実行できる。 | |||
<br> | |||
role <ロール名> types <タイプ名>; | |||
例: | 例: | ||
244行目: | 302行目: | ||
<br> | <br> | ||
==== ファイルコンテキストの指定 ==== | ==== ファイルコンテキストの指定 ==== | ||
files_type(タイプ名) | ファイルシステムのラベリングルールを定義する。<br> | ||
これは、指定されたタイプをファイルタイプとして宣言する。<br> | |||
<br> | |||
ファイルタイプには、ファイルシステム関連の共通属性が自動的に割り当てられる。<br> | |||
これにより、ファイルシステムのラベリングルールを簡単に定義できる。<br> | |||
<br> | |||
files_type(<タイプ名>) | |||
例: | 例: |