SELinux : ブール値を変更する2021/03/02 |
デフォルト設定の [targeted]
ポリシーなどのあらかじめ提供されているポリシーでは、一般的によく利用されるアプリケーションが一般的に使用する資源に対して、SELinux
によるアクセス制御の設定を容易に切り替え可能なようにブール値が用意されています。
以下では [targeted] ポリシー適用下の環境で例示しています。
|
|
[1] | ブール値の一覧は以下のようにして確認可能です。 |
# ブール値の一覧と現在の ON/OFF 状況を表示 [root@dlp ~]# getsebool -a abrt_anon_write --> off abrt_handle_event --> off abrt_upload_watch_anon_write --> on antivirus_can_scan_system --> off antivirus_use_jit --> off auditadm_exec_content --> on ..... ..... zabbix_can_network --> off zabbix_run_sudo --> off zarafa_setrlimit --> off zebra_write_config --> off zoneminder_anon_write --> off zoneminder_run_sudo --> off # ブール値の一覧を概要付きで表示 [root@dlp ~]# semanage boolean -l SELinux boolean State Default Description abrt_anon_write (off , off) Allow abrt to anon write abrt_handle_event (off , off) Allow abrt to handle event abrt_upload_watch_anon_write (on , on) Allow abrt to upload watch anon write antivirus_can_scan_system (off , off) Allow antivirus to can scan system antivirus_use_jit (off , off) Allow antivirus to use jit auditadm_exec_content (on , on) Allow auditadm to exec content ..... ..... zabbix_can_network (off , off) Allow zabbix to can network zabbix_run_sudo (off , off) Allow zabbix to run sudo zarafa_setrlimit (off , off) Allow zarafa to setrlimit zebra_write_config (off , off) Allow zebra to write config zoneminder_anon_write (off , off) Allow zoneminder to anon write zoneminder_run_sudo (off , off) Allow zoneminder to run sudo * semanage コマンドが無い場合はインストール [root@dlp ~]# dnf -y install policycoreutils-python-utils
|
[2] |
例として [samba_enable_home_dirs] というブール値について設定します。
[samba_enable_home_dirs] はデフォルトでは [off] となっており、SELinux によるアクセス制御を受ける設定となっています。
この状態で、例えば Samba の共有で [/home/share] に対して [777] のフルアクセス権を設定したとしても、SELinux
によりアクセスは拒否されます。
これは [samba_enable_home_dirs] が [off] の状態では、Samba が [/home] 配下にアクセスするために必要な SELinux コンテキストが割り当てられないためです。
|
# デフォルトはオフの設定 [root@dlp ~]# semanage boolean -l | grep samba_enable_home_dirs samba_enable_home_dirs (off , off) Allow samba to enable home dirs |
以下のように、設定した共有フォルダへアクセスしても、DAC で読み取り権が付与されているファイルは見えず、上位ディレクトリ [/home/share] に [777] を設定していても書き込みアクセスは拒否されます。 |
[3] | この状態からブール値 [samba_enable_home_dirs] を [on] に変更し、正常にアクセスできるようにするには、以下のように設定します。 |
# [samba_enable_home_dirs] をオンにする [root@dlp ~]# setsebool -P samba_enable_home_dirs on [root@dlp ~]# getsebool samba_enable_home_dirs samba_enable_home_dirs --> on # 変更された
# [samba_enable_home_dirs] で設定されるデフォルトの SELinux コンテキストにリストア [root@dlp ~]# restorecon -R /home/share
|
以上で、SELinux によるアクセス制限が許可され、以下のように通常の DAC アクセス権に沿ったアクセスが可能となります。
なお、ブール値 [samba_enable_home_dirs] を [on] に変更した後に対象ディレクトリ配下で作成したファイル/ディレクトリには、自動で
必要な SELinux コンテキストが割り当てられるため、毎回 [restorecon] を実行する必要はありません。
|
Sponsored Link |