Red Hat Training
A Red Hat training course is available for RHEL 8
第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 ページ