Security Enhanced LinuxまたはSELinuxは、RHELベースのディストリビューションで使用されるLinuxカーネルに組み込まれているセキュリティメカニズムです。
SELinuxは、管理者とユーザーがポリシールールに基づいてオブジェクトへのアクセスを制御できるようにすることで、システムにセキュリティの追加レイヤーを追加します。
SELinuxポリシールールは、プロセスとユーザーが相互に対話する方法、およびプロセスとユーザーがファイルと対話する方法を指定します。ファイルを開くプロセスなど、オブジェクトへのアクセスを明示的に許可するルールがない場合、アクセスは拒否されます。
SELinuxには3つの動作モードがあります:
- 強制:SELinuxは、SELinuxポリシールールに基づいてアクセスを許可します。
- Permissive:SELinuxは、強制モードで実行されている場合に拒否されたであろうアクションのみをログに記録します。このモードは、新しいポリシールールのデバッグと作成に役立ちます。
- 無効:SELinuxポリシーはロードされず、メッセージはログに記録されません。
デフォルトでは、CentOS 8では、SELinuxが有効になっており、強制モードになっています。 SELinuxを強制モードに保つことを強くお勧めします。ただし、一部のアプリケーションの機能を妨げる場合があり、許容モードに設定するか、完全に無効にする必要があります。
このチュートリアルでは、CentOS8でSELinuxを無効にする方法を説明します。
前提条件#
rootユーザーまたはsudo権限を持つユーザーのみがSELinuxモードを変更できます。
SELinuxモードの確認#
sestatus
を使用します SELinuxが実行されているステータスとモードを確認するコマンド:
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: 31
上記の出力は、SELinuxが有効になっていて、強制モードに設定されていることを示しています。
有効にすると、SELinuxは強制モードまたは許可モードのいずれかになります。次のコマンドを使用して、モードをターゲットからパーミッシブに一時的に変更できます。
sudo setenforce 0
ただし、この変更は現在のランタイムセッションでのみ有効であり、再起動しても保持されません。
SELinuxモードをパーミッシブに永続的に設定するには、以下の手順に従います。
-
/etc/selinux/config
を開きます ファイルを作成し、SELINUX
を設定しますpermissive
へのmod :# 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 # SELINUXTYPE= can take one of these three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
-
ファイルを保存して、
setenforce 0
を実行します 現在のセッションのSELinuxモードを変更するコマンド:sudo shutdown -r now
SELinuxの無効化#
SELinuxを無効にする代わりに、モードをパーミッシブに変更することを強くお勧めします。アプリケーションが正しく機能するために必要な場合にのみ、SELinuxを無効にします。
CentOS 8システムでSELinuxを永続的に無効にするには、以下の手順を実行します。
-
/etc/selinux/config
を開きます ファイルを作成し、SELINUX
を変更しますdisabled
への値 :# 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=disabled # SELINUXTYPE= can take one of these three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
-
ファイルを保存してシステムを再起動します:
sudo shutdown -r now
-
システムが起動したら、
sestatus
を使用します SELinuxが無効になっていることを確認するコマンド:sestatus
出力は次のようになります。
SELinux status: disabled