アプリ版:「スタンプのみでお礼する」機能のリリースについて

Dockerコンテナ CentOS7.9 で SELINUX を有効化したいのですが有効化することができません。
通常の「有効化・無効化」以前の問題のように見えます。
有効化対処方法を知っていたら教えてください。

■ホスト環境
Windows10 Pro 2021/09/04 現在 Windows Update最新
Dockerバージョン: 20.10.7
Dockerエンジン:WSL2
 c:\> wsl -l -v
   NAME STATE VERSION
   docker-desktop Running 2

Dockerコンテナ:centos:centos7(公式イメージ)
 NAME DESCRIPTION STARS OFFICIAL AUTOMATED
 centos The official build of CentOS. 6733 [OK]

■コンテナ環境
SELINUX関連パッケージ導入済リスト
・selinux-policy-3.13.1-268.el7_9.2.noarch
・policycoreutils-devel-2.5-34.el7.x86_64
・libselinux-2.5-15.el7.x86_64
・libselinux-devel-2.5-15.el7.x86_64
・audit-libs-2.8.5-4.el7.x86_64
・libselinux-python-2.5-15.el7.x86_64
・policycoreutils-2.5-34.el7.x86_64
・audit-libs-python-2.8.5-4.el7.x86_64
・selinux-policy-devel-3.13.1-268.el7_9.2.noarch
・policycoreutils-newrole-2.5-34.el7.x86_64
・selinux-policy-targeted-3.13.1-268.el7_9.2.noarch
・selinux-policy-mls-3.13.1-268.el7_9.2.noarch
・libselinux-utils-2.5-15.el7.x86_64
・policycoreutils-python-2.5-34.el7.x86_64

■動作現況
コンテナ側 CentOS7.9
コンテナ起動時は systemctl が機能するよう --previleged 指定で /sbin/init を実行してます
> docker run -itd --privileged -p 22222:22 centos:centos7 /sbin/init

# cat /etc/selinux/config
-----------------------------
SELINUX=enforcing
SELINUXTYPE=targeted
-----------------------------

# setenforce 1 ; getenforce ; sestatus
setenforce: SELinux is disabled     ←有効化しない
Disabled
SELinux status: disable

A 回答 (1件)

SELINUXはLinuxカーネル全体の動作モードであり、dockerコンテナは究極的にはLinuxプロセスに過ぎません。

なのでDockerコンテナでSELINUXというのは根本的に無理があります。ホスト側でやることになるでしょう。
ただそもそもwsl2のLinuxカーネルはSELINUXモードにできるんですかね。wsl2ってWindowsファイルも見えるので強制アクセス制御って難しいと思うんですけど。

DockerコンテナってLinuxプロセスの隔離環境に過ぎないのでカーネル自体に手を入れる必要がある機能を扱うのは難しいのです。
こういうことをやるならWSL2やDockerではなく、Hyper-V上の仮想マシンにCentOS7.9を入れてやりましょう。これなら小細工しなくてもsystemctlも普通に機能しますし。
    • good
    • 0
この回答へのお礼

ありがとうございます。
そういうことですね。
文献が見つからないのでで、コマンド結果からの判断になりますが現時点では WSL LinuxカーネルがSELINUXに対応してなさそうです。


# uname -msrv ; id -Z
Linux 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64
id: --context (-Z) works only on an SELinux-enabled kernel


p.s.
>Hyper-V上の仮想マシンにCentOS7.9を入れてやりましょう。これなら小細工しなくてもsystemctlも普通に機能しますし。

まぁそうなんですけど、各種検証時にサクッと linux 環境上げる事ができる/コンテナ落とせば検証ゴミ残らない/母艦PCリソース節約したい/ など諸事情がありまして。

お礼日時:2021/09/05 18:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!