~RHELサーバ運用で「本当に助かる理由」を限界まで分かりやすく解説~
本記事では、
「SELinuxを有効にすると、実際に何が良いのか?」
という疑問に対して、
- 抽象論ではなく
- 実際のサーバ運用で起こりがちな事故を例に
- コマンド実行例とその結果(ログ)を交えながら
初心者でも腹落ちするレベルまで解説します。
対象読者:
- RHEL / Rocky / AlmaLinux を運用している方
- Apache / Web サーバ管理者
- SELinux を「切るべきか悩んでいる」方
結論:SELinux を有効にする最大のメリット
SELinux を有効にする最大のメリットは、
「設定ミス・侵害・想定外の挙動を OS が自動的に止めてくれる」ことです。
つまり、
人間がミスしても、最後は OS が守ってくれる
これが SELinux の本質です。
メリット1:Web サーバ侵害時の被害拡大を防げる
よくある事故(SELinux 無効)
- Apache に脆弱性が存在
- Web シェルが設置される
- 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 |
|---|---|
| Apache | httpd_t |
| MySQL | mysqld_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 は価値を発揮します。

コメント