SELinux を有効にするメリットとは?

SELinux を有効にするメリットとは? Linuxサーバ

~RHELサーバ運用で「本当に助かる理由」を限界まで分かりやすく解説~

本記事では、
「SELinuxを有効にすると、実際に何が良いのか?」
という疑問に対して、

  • 抽象論ではなく
  • 実際のサーバ運用で起こりがちな事故を例に
  • コマンド実行例とその結果(ログ)を交えながら

初心者でも腹落ちするレベルまで解説します。

対象読者:

  • RHEL / Rocky / AlmaLinux を運用している方
  • Apache / Web サーバ管理者
  • SELinux を「切るべきか悩んでいる」方

スポンサーリンク

結論:SELinux を有効にする最大のメリット

SELinux を有効にする最大のメリットは、
「設定ミス・侵害・想定外の挙動を OS が自動的に止めてくれる」ことです。

つまり、

人間がミスしても、最後は OS が守ってくれる

これが SELinux の本質です。


メリット1:Web サーバ侵害時の被害拡大を防げる

よくある事故(SELinux 無効)
  1. Apache に脆弱性が存在
  2. Web シェルが設置される
  3. httpd プロセス権限で OS 内を自由に探索
cat /etc/passwd
ls /var/lib/mysql
find / -name "*.key"

👉 被害は OS 全体に拡大


SELinux 有効時(Enforcing)

Apache のプロセスは httpd_t として動作します。
許可されているのは Web 用に定義された領域のみです。

実際の拒否ログ(根拠)

avc: denied { read } for comm="httpd"
tcontext=system_u:object_r:shadow_t:s0

意味
 httpdが「/etc/shadow」を読もうとしてOSに拒否された

👉 侵害されても Web 領域から外へ出られない




メリット2:chmod 777 のような危険運用を防げる

よくある現場対応
chmod -R 777 /var/www/html
  • 動く
  • でも誰でも書き換え可能
  • 改ざんリスクが急上昇


SELinux 有効時の挙動
ls -Z /var/www/html/index.html
unconfined_u:object_r:default_t:s0

この状態では、たとえ 777 でも Apache は読めません。

AVC ログ

avc: denied { read }
scontext=system_u:system_r:httpd_t:s0
tcontext=unconfined_u:object_r:default_t:s0

👉 SELinuxが「最後の安全装置」として働く




メリット3:設定ミスをログで即座に発見できる

SELinux 無効の場合
  • 設定ミスでも動いてしまう
  • 間違いに気づかない
  • 後から事故になる


SELinux 有効の場合

設定ミスは必ず AVC ログ として記録されます。

例:独自ディレクトリを設定し忘れた

avc: denied { read }
scontext=system_u:system_r:httpd_t:s0
tcontext=unconfined_u:object_r:default_t:s0

👉

  • 誰が
  • 何に
  • 何を

原因が一目で分かる




メリット4:サービスとサービス(Web と DB) の責任範囲を OS が強制分離

SELinux 無効の場合
  • Web 侵害
  • DB ディレクトリを直接参照
  • DB データ漏洩


SELinux 有効の場
対象type
Apachehttpd_t
MySQLmysqld_t
DBデータmysqld_db_t

拒否ログ例

avc: denied { read write }
scontext=system_u:system_r:httpd_t:s0
tcontext=system_u:object_r:mysqld_db_t:s0

👉 Web から DB ファイルには触れない




メリット5:root でも「できないこと」を作れる

SELinux 無効
  • root = 何でも可能
  • 侵害されたら終了


SELinux 有効
  • root でもポリシー外操作は拒否
  • サービスの責任範囲を超えられない

👉 最悪の事態でも全破壊を防ぐ




メリット6:「正しい構成」だけが自然に残る

SELinux を有効にすると、

  • 正しい構成 → 何もしなくても動く
  • 間違った構成 → 必ず止まる

つまり、

「動いている = 構成がだいたい正しい」

という状態を作れます。





SELinux を無効にしていると起きがちなこと

状況結果
設定ミス気づかない
chmod 777常態化
Web 侵害横展開
DB 漏洩防げない
原因調査困難





よくある誤解

  • SELinux はセキュリティだけ → ❌
  • SELinux は邪魔 → ❌

👉 SELinux は「運用ミス検知装置」でもある





まとめ

SELinux を有効にするメリットとは、
「人間のミスを OS がカバーしてくれること」です。

  • 想定外の操作を止める
  • 被害拡大を防ぐ
  • 設定ミスを可視化する

👉 本番サーバほど、SELinux は価値を発揮します。


コメント

タイトルとURLをコピーしました