SELinux

Support HackTricks

コンテナにおけるSELinux

Redhatのドキュメントからの紹介と例

SELinuxラベリング システムです。すべてのプロセスとすべてのファイルシステムオブジェクトにはラベルがあります。SELinuxポリシーは、プロセスラベルがシステム上の他のすべてのラベルに対して何をすることが許可されているかに関するルールを定義します。

コンテナエンジンは、通常container_tという単一の制限されたSELinuxラベルでコンテナプロセスを起動し、その後、コンテナ内のコンテナをcontainer_file_tというラベルに設定します。SELinuxポリシールールは基本的に、container_tプロセスはcontainer_file_tというラベルが付けられたファイルをのみ読み書き/実行できると言っています。コンテナプロセスがコンテナから脱出し、ホスト上のコンテンツに書き込もうとすると、Linuxカーネルはアクセスを拒否し、コンテナプロセスがcontainer_file_tというラベルが付けられたコンテンツにのみ書き込むことを許可します。

$ podman run -d fedora sleep 100
d4194babf6b877c7100e79de92cd6717166f7302113018686cea650ea40bd7cb
$ podman top -l label
LABEL
system_u:system_r:container_t:s0:c647,c780

SELinuxユーザー

通常のLinuxユーザーに加えて、SELinuxユーザーも存在します。SELinuxユーザーはSELinuxポリシーの一部です。各Linuxユーザーはポリシーの一部としてSELinuxユーザーにマッピングされます。これにより、LinuxユーザーはSELinuxユーザーに課せられた制限やセキュリティルール、メカニズムを継承することができます。

Support HackTricks

Last updated