Guide to the Secure Configuration of Red Hat Enterprise Linux 8
Rules, Groups, and Values defined within the XCCDF Benchmark
-
Verify Permissions On /etc/crypttab File
To properly set the permissions of/etc/crypttab
, run the command:$ sudo chmod 0600 /etc/crypttab
Rule Medium Severity -
Verify Permissions on System.map Files
The System.map files are symbol map files generated during the compilation of the Linux kernel. They contain the mapping between kernel symbols and their corresponding memory addresses. In general,...Rule Low Severity -
Verify User Who Owns /etc/selinux Directory
To properly set the owner of/etc/selinux
, run the command:$ sudo chown root /etc/selinux
Rule Medium Severity -
Ensure All Files Are Owned by a Group
If any file is not group-owned by a group present in /etc/group, the cause of the lack of group-ownership must be investigated. Following this, those files should be deleted or assigned to an appro...Rule Medium Severity -
Ensure All Files Are Owned by a User
If any files are not owned by a user, then the cause of their lack of ownership should be investigated. Following this, the files should be deleted or assigned to an appropriate user. Locate the m...Rule Medium Severity -
Enable Kernel Parameter to Enforce DAC on Hardlinks
To set the runtime status of the <code>fs.protected_hardlinks</code> kernel parameter, run the following command: <pre>$ sudo sysctl -w fs.protected_hardlinks=1</pre> To make sure that the setting ...Rule Medium Severity -
Enable Kernel Parameter to Enforce DAC on Symlinks
To set the runtime status of the <code>fs.protected_symlinks</code> kernel parameter, run the following command: <pre>$ sudo sysctl -w fs.protected_symlinks=1</pre> To make sure that the setting is...Rule Medium Severity -
Verify Permissions and Ownership of Old Passwords File
To properly set the owner of <code>/etc/security/opasswd</code>, run the command: <pre>$ sudo chown root /etc/security/opasswd </pre> To properly set the group owner of <code>/etc/security/opasswd...Rule Medium Severity -
Verify Group Who Owns Backup gshadow File
To properly set the group owner of/etc/gshadow-
, run the command:$ sudo chgrp root /etc/gshadow-
Rule Medium Severity -
Verify Group Who Owns Backup passwd File
To properly set the group owner of/etc/passwd-
, run the command:$ sudo chgrp root /etc/passwd-
Rule Medium Severity -
Verify User Who Owns Backup shadow File
To properly set the group owner of/etc/shadow-
, run the command:$ sudo chgrp root /etc/shadow-
Rule Medium Severity -
Verify Group Who Owns group File
To properly set the group owner of/etc/group
, run the command:$ sudo chgrp root /etc/group
Rule Medium Severity -
Verify Group Who Owns gshadow File
To properly set the group owner of/etc/gshadow
, run the command:$ sudo chgrp root /etc/gshadow
Rule Medium Severity -
Verify that Shared Library Directories Have Restrictive Permissions
System-wide shared library directories, which contain are linked to executables during process load time or run time, are stored in the following directories by default: <pre>/lib /lib64 /usr/lib /...Rule Medium Severity -
Verify Group Who Owns /etc/sysctl.d Directory
To properly set the group owner of/etc/sysctl.d
, run the command:$ sudo chgrp root /etc/sysctl.d
Rule Medium Severity -
Verify User Who Owns /etc/sysctl.d Directory
To properly set the owner of/etc/sysctl.d
, run the command:$ sudo chown root /etc/sysctl.d
Rule Medium Severity -
Verify Permissions On /etc/sysctl.d Directory
To properly set the permissions of/etc/sysctl.d
, run the command:$ sudo chmod 0755 /etc/sysctl.d
Rule Medium Severity -
Verify that System Executables Have Root Ownership
System executables are stored in the following directories by default: <pre>/bin /sbin /usr/bin /usr/libexec /usr/local/bin /usr/local/sbin /usr/sbin</pre> All files in these directories should be ...Rule Medium Severity -
Verify that Shared Library Files Have Root Ownership
System-wide shared library files, which are linked to executables during process load time or run time, are stored in the following directories by default: <pre>/lib /lib64 /usr/lib /usr/lib64 </pr...Rule Medium Severity -
Verify that Shared Library Files Have Restrictive Permissions
System-wide shared library files, which are linked to executables during process load time or run time, are stored in the following directories by default: <pre>/lib /lib64 /usr/lib /usr/lib64 </pr...Rule Medium Severity -
Restrict Dynamic Mounting and Unmounting of Filesystems
Linux includes a number of facilities for the automated addition and removal of filesystems on a running system. These facilities may be necessary in many environments, but this capability also ca...Group -
Verify Permissions On /etc/selinux Directory
To properly set the permissions of/etc/selinux
, run the command:$ sudo chmod 0755 /etc/selinux
Rule Medium Severity -
Disable the Automounter
The <code>autofs</code> daemon mounts and unmounts filesystems, such as user home directories shared via NFS, on demand. In addition, autofs can be used to handle removable media, and the default c...Rule Medium Severity -
Disable Mounting of squashfs
To configure the system to prevent the <code>squashfs</code> kernel module from being loaded, add the following line to the file <code>/etc/modprobe.d/squashfs.conf</code>: <pre>install squashfs /...Rule Low Severity -
Disable Modprobe Loading of USB Storage Driver
To prevent USB storage devices from being used, configure the kernel module loading system to prevent automatic loading of the USB storage driver. To configure the system to prevent the <code>usb-...Rule Medium Severity -
Add noexec Option to /boot
The <code>noexec</code> mount option can be used to prevent binaries from being executed out of <code>/boot</code>. Add the <code>noexec</code> option to the fourth column of <code>/etc/fstab</code...Rule Medium Severity -
Disable storing core dumps
To set the runtime status of the <code>kernel.core_pattern</code> kernel parameter, run the following command: <pre>$ sudo sysctl -w kernel.core_pattern=|/bin/false</pre> To make sure that the sett...Rule Medium Severity -
Configure file name of core dumps
To set the runtime status of the <code>kernel.core_uses_pid</code> kernel parameter, run the following command: <pre>$ sudo sysctl -w kernel.core_uses_pid=0</pre> To make sure that the setting is p...Rule Medium Severity -
Disable loading and unloading of kernel modules
To set the runtime status of the <code>kernel.modules_disabled</code> kernel parameter, run the following command: <pre>$ sudo sysctl -w kernel.modules_disabled=1</pre> To make sure that the settin...Rule Medium Severity -
Prevent applications from mapping low portion of virtual memory
To set the runtime status of the <code>vm.mmap_min_addr</code> kernel parameter, run the following command: <pre>$ sudo sysctl -w vm.mmap_min_addr=65536</pre> To make sure that the setting is persi...Rule Medium Severity -
Disable Core Dumps
A core dump file is the memory image of an executable program when it was terminated by the operating system due to errant behavior. In most cases, only software developers legitimately need to acc...Group -
Set Daemon Umask
The file <code>/etc/init.d/functions</code> includes initialization parameters for most or all daemons started at boot time. Many daemons on the system already individually restrict themselves to a...Rule Unknown Severity -
Restrict Exposed Kernel Pointer Addresses Access
To set the runtime status of the <code>kernel.kptr_restrict</code> kernel parameter, run the following command: <pre>$ sudo sysctl -w kernel.kptr_restrict=<xccdf-1.2:sub idref="xccdf_org.ssgproject...Rule Medium Severity -
Enable page allocator poisoning
To enable poisoning of free pages, add the argument <code>page_poison=1</code> to the default GRUB 2 command line for the Linux operating system. To ensure that <code>page_poison=1</code> is added ...Rule Medium Severity -
Enable SLUB/SLAB allocator poisoning
To enable poisoning of SLUB/SLAB objects, add the argument <code>slub_debug=<xccdf-1.2:sub idref="xccdf_org.ssgproject.content_value_var_slub_debug_options" use="legacy"></xccdf-1.2:sub> ...Rule Medium Severity -
Uninstall setroubleshoot-plugins Package
The SETroubleshoot plugins are used to analyze SELinux AVC data. The service provides information around configuration errors, unauthorized intrusions, and other potential errors. The <code>setroub...Rule Low Severity -
Uninstall setroubleshoot Package
The SETroubleshoot service notifies desktop users of SELinux denials. The service provides information around configuration errors, unauthorized intrusions, and other potential errors. The <code>se...Rule Low Severity -
Configure SELinux Policy
The SELinux <code>targeted</code> policy is appropriate for general-purpose desktops and servers, as well as systems in many other roles. To configure the system to use this policy, add or correct ...Rule Medium Severity -
Map System Users To The Appropriate SELinux Role
Configure the operating system to prevent non-privileged users from executing privileged functions to include disabling, circumventing, or altering implemented security safeguards/countermeasures. ...Rule Medium Severity -
Disable the abrt_anon_write SELinux Boolean
By default, the SELinux boolean <code>abrt_anon_write</code> is disabled. If this setting is enabled, it should be disabled. To disable the <code>abrt_anon_write</code> SELinux boolean, run the fo...Rule Medium Severity -
Disable the abrt_upload_watch_anon_write SELinux Boolean
By default, the SELinux boolean <code>abrt_upload_watch_anon_write</code> is enabled. This setting should be disabled as it allows the Automatic Bug Report Tool (ABRT) to modify public files used f...Rule Medium Severity -
Disable the awstats_purge_apache_log_files SELinux Boolean
By default, the SELinux boolean <code>awstats_purge_apache_log_files</code> is disabled. If this setting is enabled, it should be disabled. To disable the <code>awstats_purge_apache_log_files</cod...Rule Medium Severity -
Disable the cluster_can_network_connect SELinux Boolean
By default, the SELinux boolean <code>cluster_can_network_connect</code> is disabled. If this setting is enabled, it should be disabled. To disable the <code>cluster_can_network_connect</code> SEL...Rule Medium Severity -
Disable the cron_system_cronjob_use_shares SELinux Boolean
By default, the SELinux boolean <code>cron_system_cronjob_use_shares</code> is disabled. If this setting is enabled, it should be disabled. To disable the <code>cron_system_cronjob_use_shares</cod...Rule Medium Severity -
Enable the cron_userdomain_transition SELinux Boolean
By default, the SELinux boolean <code>cron_userdomain_transition</code> is enabled. This setting should be enabled as end user cron jobs run in their default associated user domain(s) instead of th...Rule Medium Severity -
Enable the domain_fd_use SELinux Boolean
By default, the SELinux boolean <code>domain_fd_use</code> is enabled. If this setting is disabled, it should be enabled. To enable the <code>domain_fd_use</code> SELinux boolean, run the followin...Rule Medium Severity -
Disable the domain_kernel_load_modules SELinux Boolean
By default, the SELinux boolean <code>domain_kernel_load_modules</code> is disabled. If this setting is enabled, it should be disabled. To disable the <code>domain_kernel_load_modules</code> SELin...Rule Medium Severity -
Disable the ftpd_use_nfs SELinux Boolean
By default, the SELinux boolean <code>ftpd_use_nfs</code> is disabled. If this setting is enabled, it should be disabled. To disable the <code>ftpd_use_nfs</code> SELinux boolean, run the followin...Rule Medium Severity -
Disable the ssh_sysadm_login SELinux Boolean
By default, the SELinux boolean <code>ssh_sysadm_login</code> is disabled. If this setting is enabled, it should be disabled. To disable the <code>ssh_sysadm_login</code> SELinux boolean, run the ...Rule Medium Severity -
Enable the unconfined_login SELinux Boolean
By default, the SELinux boolean <code>unconfined_login</code> is enabled. If this setting is disabled, it should be enabled. To enable the <code>unconfined_login</code> SELinux boolean, run the fo...Rule Medium Severity
Node 2
The content of the drawer really is up to you. It could have form fields, definition lists, text lists, labels, charts, progress bars, etc. Spacing recommendation is 24px margins. You can put tabs in here, and can also make the drawer scrollable.