SELinux : 動作モードの設定2023/02/20 |
SELinux (Security-Enhanced Linux) の基本操作/設定です。
SELinux を設定することにより、各種リソースへの強制アクセス制御 (MAC - Mandatory Access Control) 機能が利用可能となります。
|
|
[1] | SELinux が現在利用可能かどうかは、現在の動作モードを表示することで確認できます。 (システムインストール時のデフォルト動作モードは Enforcing) |
# 現在の動作モード表示 [root@dlp ~]# getenforce Enforcing # enforcing ⇒ MAC 有効な状態 (デフォルト) # permissive ⇒ ポリシーに従って監査ログの記録のみを行う (アクセス拒否はしない) # disabled ⇒ 無効な状態 # 以下でも確認可 # [Current mode] 行が該当 [root@dlp ~]# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Memory protection checking: actual (secure) Max kernel policy version: 33 |
[2] | [permissive] ⇔ [enforcing] の動作モード切り替えは [setenforce] コマンドで変更可能です。 ただし、システム再起動すると元々の設定に戻ります。また [disabled] への一時的な切り替えはできません。 |
[root@dlp ~]#
getenforce Enforcing # [setenforce 0] で [Permissive] に切り替え [root@dlp ~]# setenforce 0 [root@dlp ~]# getenforce Permissive # [setenforce 1] で [Enforcing] に切り替え [root@dlp ~]# setenforce 1 [root@dlp ~]# getenforce Enforcing |
[3] | 動作モードを恒久的に変更する場合は設定ファイルで設定します。 |
[root@dlp ~]#
vi /etc/selinux/config # 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. # See also: # https://docs.fedoraproject.org/en-US/quick-docs/getting-started-with-selinux/#getting-started-with-selinux-selinux-states-and-modes # # NOTE: In earlier Fedora kernel builds, SELINUX=disabled would also # fully disable SELinux during boot. If you need a system with SELinux # fully disabled instead of SELinux running with no policy loaded, you # need to pass selinux=0 to the kernel command line. You can use grubby # to persistently set the bootloader to boot with selinux=0: # # grubby --update-kernel ALL --args selinux=0 # # To revert back to SELinux enabled: # # grubby --update-kernel ALL --remove-args selinux # # 設定する動作モードに変更 SELINUX=enforcing # SELINUXTYPE= can take one of these three values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted # 変更後はシステム再起動 [root@dlp ~]# |
[4] | SELinux を無効化する場合、設定ファイル中の注釈にもある通り、従来の設定ファイルでの [SELINUX=disabled] 指定では、SELinux
は起動するがポリシーがロードされていない状態での無効化となります。 SELinux を完全に無効化する場合はカーネルパラメーターに無効化の設定を追加します。 |
# SELinux を無効にする [root@localhost ~]# grubby --update-kernel ALL --args selinux=0
# SELinux 有効に戻す場合は以下 (変更後は要再起動) [root@localhost ~]# grubby --update-kernel ALL --remove-args selinux |
[5] | 動作モードが無効な状態 (disabled) から 有効な状態 (enforcing/permissive) に変更する場合は、リラべリングが必要になります。 これは、無効な状態の時に作成されたファイルは SELinux のラベル付けが行われていないため、それらについても SELinux によるアクセス制御を有効にするためには、後述する SELinux コンテキストと呼ばれる情報でラベル付けをする必要があるためです。 リラべリングは、システム再起動時の起動中に実行されますが、相応の時間がかかるため注意が必要です。 |
# 以下のように設定して再起動すると次回起動時にリラべリングされる [root@dlp ~]# fixfiles -F onboot System will relabel on next boot # 上記コマンドで以下のファイルが作成される [root@dlp ~]# ll /.autorelabel -rw-r--r--. 1 root root 3 Mar 10 19:34 /.autorelabel |
Sponsored Link |