ラズパイはSELinuxが(デフォルトでは)使えない
TL;DR
ラズパイのカーネルはSELinuxの設定をせずにコンパイルされている
環境
- Raspberry Pi 3
- CentOS 7.2
$ uname -a Linux centos-rpi3 4.4.15-v7+ #897 SMP Tue Jul 12 18:42:55 BST 2016 armv7l armv7l armv7l GNU/Linux
概要
外部公開を予定しているラズパイのSELinuxの設定をしようと何気なくgetenforce
したところ、
$ getenforce Disabled
デフォルトでDisabledだと…!
いやな予感がする。
とりあえずpermissiveにしようと/etc/selinux/config
を編集
# This file controls the state of SELinux on the system. # 1= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=permissive #→ disabledになっていたので変更
で、再起動してみたものの…
$ getenforce Disabled
なぜ???
disabledからpermissiveに変更したときに実行されるはずのラベリングも走っている様子がない。。
/.autorelabel
というファイルを作っておけば再起動時にラベリングしてくれるらしいので試してみるが…やはり応答なし。
setenforce
はdisabledのときは(たしか)使えないため
$ setenforce 0 setenforce: SELinux is disabled
うーん…
SELinuxを触るのは初めてなのでなにか見落としが…?と思ったがとくにそういう気配もなく。
調べていると、こんな記事を発見
SELinux requires kernel support, and the default Raspberry Pi kernel does not include it.
カーネルがサポートしてない(╯•﹏•╰)
SELinuxを有効にしたければ自分でカーネルをコンパイルして入れなければならないとのこと。
[Guide] SELinux {Get/Install/Setup} - Raspberry Pi Forums
ここに詳しい設定・コンパイルの仕方が書いてあるので、まぁヒマができたらやってみようかなぁ…とりあえず後回しで。