Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.2. SELinux ポリシーモジュールの生成: sepolicy generate

以前のバージョンの Red Hat Enterprise Linux では、SELinux ポリシーを生成するのに sepolgen またはユーティリティー selinux-polgengui ユーティリティーが使用されていました。このツールは、sepolicy スイートに統合されています。Red Hat Enterprise Linux 7 では、sepolicy generate コマンドを使用して最初の SELinux ポリシーモジュールテンプレートを生成します。
sepolgen とは異なり、root ユーザーとして sepolicy generate を実行する必要はありません。また、このユーティリティーは、RPM 仕様ファイルを作成します。これを使用して、ポリシーパッケージファイル (NAME.pp) とインターフェイスファイル (NAME.if) を正しい場所にインストールする RPM パッケージを構築し、SELinux ポリシーをカーネルにインストールして、ラベリングを修正します。セットアップスクリプトは、引き続き SELinux ポリシーをインストールし、ラベリングを設定します。また、インストールしたポリシーに基づく man ページは、sepolicy manpage コマンドを使用して生成されます。[7] 最後に、sepolicy generate が SELinux ポリシーと man ページを構築してコンパイルし、RPM パッケージを作成します。これにより、別のシステムにインストールできるようになります。
sepolicy generate を実行すると、以下のファイルが生成されます。
NAME.te – Type Enforcement ファイル
このファイルは、特定のドメインに対するすべてのタイプとルールを定義します。
NAME.if - インターフェイスファイル
このファイルは、システムのデフォルトのファイルコンテキストを定義します。これは、NAME.te ファイルで作成されるファイルタイプを取り、ファイルのパスをタイプに関連付けます。restorecon および rpm などのユーティリティーは、このパスを使用してラベルを書き込みます。
NAME_selinux.spec – RPM SPEC ファイル
このファイルは、SELinux ポリシーをインストールし、ラベリングを設定する RPM SPEC ファイルです。このファイルでは、インターフェイスファイルと、ポリシーを説明する man ページもインストールされます。sepolicy manpage -d NAME コマンドを使用すると、man ページを生成できます。
NAME.sh - ヘルパーシェルスクリプト
このスクリプトは、システムでラベリングをコンパイル、インストール、および修正するのに役立ちます。また、インストールしたポリシーに基づいて man ページを生成し、他のシステムにインストールするのに適した RPM パッケージをコンパイルして構築します。
SELinux ポリシーモジュールを生成できる場合、sepolicy generate はソースドメインからターゲットドメインに生成されたすべてのパスを出力します。sepolicy generate の詳細は、sepolicy-generate(8) man ページを参照してください。


[7] sepolicy manpage の詳細は 「手動ページの生成: sepolicy manpage を参照してください。