Use the getenforce or sestatus commands
to check the status of SELinux. The getenforce command
returns Enforcing, Permissive, or Disabled.
The sestatus command returns the SELinux status and
the SELinux policy being used:
~]$ sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
On systems with SELinux disabled,
the
SELINUX=disabled
option is configured in /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. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
Also, the
getenforce
command returns Disabled
:~]$ getenforce
Disabled
To enable SELinux:
1. Use the rpm -qa | grep selinux, rpm -q policycoreutils, and rpm -qa | grep setroubleshoot commands to confirm
that the SELinux packages are installed. This guide assumes the following
packages are installed: selinux-policy-targeted, selinux-policy, libselinux, libselinux-python, libselinux-utils, policycoreutils, policycoreutils-python,setroubleshoot, setroubleshoot-server, setroubleshoot-plugins. If these packages are not
installed, as the Linux root user, install them via the yum install package-namecommand. The following
packages are optional: policycoreutils-gui, setroubleshoot, andmcstrans.
2. Before SELinux is enabled, each file on the file system must
be labeled with an SELinux context. Before this happens, confined domains may
be denied access, preventing your system from booting correctly. To prevent
this, configure SELINUX=permissive in /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. SELINUX=permissive # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
- As the Linux root user, run the
reboot
command to restart the system. During the next boot, file systems are labeled. The label process labels all files with an SELinux context:*** Warning -- SELinux targeted policy relabel is required. *** Relabeling could take a very long time, depending on file *** system size and speed of hard drives. ****
Each * (asterisk) character on the bottom line
represents 1000 files that have been labeled. In the above example, four * characters represent 4000 files have been
labeled. The time it takes to label all files depends upon the number of files
on the system, and the speed of the hard disk drives. On modern systems, this
process can take as little as 10 minutes.
1. In permissive mode, SELinux policy is not enforced, but
denials are still logged for actions that would have been denied if running in
enforcing mode. Before changing to enforcing mode, as the Linux root user, run
the grep "SELinux is preventing" /var/log/messages command
to confirm that SELinux did not deny actions during the last boot. If SELinux
did not deny actions during the last boot, this command does not return any
output. If there were no denial messages in /var/log/messages,
configure SELINUX=enforcing in /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. SELINUX=enforcing # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
Reboot your system. After reboot, confirm that
getenforce
returnsEnforcing
:~]$
getenforce
Enforcing- As the Linux root user, run the
semanage login -l
command to view the mapping between SELinux and Linux users. The output should be as follows:Login Name SELinux User MLS/MCS Range __default__ unconfined_u s0-s0:c0.c1023 root unconfined_u s0-s0:c0.c1023 system_u system_u s0-s0:c0.c1023