HKENTO's Blog

日々の記録をつけます セキュリティとかその他のこと

ラズパイはSELinuxが(デフォルトでは)使えない

TL;DR

ラズパイのカーネルSELinuxの設定をせずにコンパイルされている

SELinuxを使いたければ自力でコンパイルしましょう

環境

カーネル

$ 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を触るのは初めてなのでなにか見落としが…?と思ったがとくにそういう気配もなく。

調べていると、こんな記事を発見

raspberrypi.stackexchange.com

SELinux requires kernel support, and the default Raspberry Pi kernel does not include it.

カーネルがサポートしてない(╯•﹏•╰)

SELinuxを有効にしたければ自分でカーネルコンパイルして入れなければならないとのこと。

[Guide] SELinux {Get/Install/Setup} - Raspberry Pi Forums

ここに詳しい設定・コンパイルの仕方が書いてあるので、まぁヒマができたらやってみようかなぁ…とりあえず後回しで。