第8章 カスタム SELinux ポリシーの作成
SELinux によって制限されたアプリケーションを実行するには、カスタムポリシーを作成して使用する必要があります。
8.1. カスタム SELinux ポリシーおよび関連ツール
SELinux セキュリティーポリシーは、SELinux ルールのコレクションです。ポリシーは、SELinux の中核となるコンポーネントで、SELinux ユーザー空間ツールによりカーネルに読み込まれます。カーネルは、SELinux ポリシーを使用して、システム上のアクセス要求を評価します。デフォルトでは、SELinux は、読み込んだポリシーで指定されたルールに対応するリクエストを除き、すべてのリクエストを拒否します。
各 SELinux ポリシールールは、プロセスとシステムリソースとの対話を説明します。
ALLOW apache_process apache_log:FILE READ;
このルールの例は、Apache プロセスが、その ログファイル を 読む ことのように読み取ることができます。このルールでは、apache_process
と apache_log
が labels になります。SELinux セキュリティーポリシーは、プロセスにラベルを割り当て、システムリソースに関係を定義します。これにより、ポリシーはオペレーティングシステムエンティティーを SELinux レイヤーにマッピングします。
SELinux ラベルは、ext2
などのファイルシステムの拡張属性として保存されます。getfattr
ユーティリティーまたは ls -Z
コマンドを使用すると、これをリスト表示できます。以下に例を示します。
$ ls -Z /etc/passwd
system_u:object_r:passwd_file_t:s0 /etc/passwd
ここでの system_u
は SELinux ユーザーで、object_r
は SELinux ロールの例になります。passwd_file_t
は SELinux ドメインです。
selinux-policy
パッケージが提供するデフォルトの SELinux ポリシーには、Red Hat Enterprise Linux 8 の一部であるアプリケーションおよびデーモンのルールが含まれ、リポジトリーのパッケージにより提供されます。このディストリビューションポリシーに記載されていないアプリケーションは、SELinux によって制限されません。これを変更するには、追加の定義およびルールが含まれるポリシーモジュールを使用してポリシーを変更する必要があります。
Red Hat Enterprise Linux 8 では、インストールした SELinux ポリシーに問い合わせ、sepolicy
ツールを使用して新しいポリシーモジュールを生成できるようになります。sepolicy
がポリシーモジュールとともに生成するスクリプトには、restorecon
ユーティリティーを使用するコマンドが常に含まれます。このユーティリティーは、ファイルシステムの選択した部分で問題のラベル付けを行う基本的なツールです。
関連情報
-
システム上の
sepolicy (8)
およびgetfattr (1) の
man ページ - ナレッジベースの記事 Quick start to write a custom SELinux policy