mzgkworks.com

Stack the little bets.

SELinuxの基礎知識と確認・設定方法

   [Knowledge]    #Linux

SELinux

Security-Enhanced Linuxの略。
米NSA(National Security Agency=米国国家安全保障局)が中心となって、不正侵入の被害を極力少なくすることを目的に開発。
オープンソースとして提供されており、主要なLinuxディストリビューションに組み込まれている。
基本的にはすべてのアクセスを拒否し、ポリシー(アクセス制御設定)でアクセスコントロールを行う仕組み。
root権限も無効化する。

Permissiveモード

デフォルトのポリシーで通常は動作するが、インストールしたソフトウェアやWebコンテンツなどがうまく動作しない場合がある。
その際の問題切り分け(SELinuxのせいなのか、他に原因があるか)に、一時的にSELinuxをPermissiveモードにして確認を行ったりする。

状態の確認

$ getenforce

現在の状態を表示する。

状態 説明
Enforcing 有効化されており、ポリシーに違反するアクセスを拒否する
Permissive 有効化されているが、ポリシー違反はログに出力するのみ
Disable 無効化されている
$ getenforce
Permissive

/etc/sysconfig/selinux

システム起動時の設定が書かれている。
システム再起動後も設定を反映させる場合は、このファイルの定義を変更すること。

$ sudo vi /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= 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
...

設定変更(一時的)

一時的な変更は $ setenforceコマンドを使用する。
※Disableにする場合は、/etc/sysconfig/selinuxファイルの値を変更する。

引数 説明
0 Permissiveへ
1 Enforcingへ
# Permissiveに変更
$ sudo setenforce 0

# Enforcingに変更
$ sudo setenforce 1

設定変更(恒久的)

/etc/sysconfig/selinuxファイルの定義を変更する。

# 変更する
$ sudo vi /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= 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
...


# Linuxを再起動する
$ shutdown -r now