Red Hat Enterprise Linux 9 Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates −2 ✎ 20
Comparison against the immediately-prior release (V2R5). Rule matching uses the Group Vuln ID. Content-change detection compares the rule’s description, check, and fix text after stripping inline markup — cosmetic-only edits aren’t flagged.
Removed rules 2
- V-258226 Medium RHEL 9 must generate audit records for all account creations, modifications, disabling, and termination events that affect /var/log/tallylog.
- V-274878 Medium RHEL 9 must audit any script or executable called by cron as root or by any privileged user.
Content changes 20
- V-257778 Medium check RHEL 9 vendor packaged system security patches and updates must be installed and up to date.
- V-257789 High checkfix RHEL 9 must require a unique superusers name upon booting into single-user and maintenance modes.
- V-257812 Medium check RHEL 9 must disable core dump backtraces.
- V-257813 Medium check RHEL 9 must disable storing core dumps.
- V-257814 Medium check RHEL 9 must disable core dumps for all users.
- V-257815 Medium check RHEL 9 must disable acquiring, saving, and processing core dumps.
- V-257830 Medium descriptioncheckfix RHEL 9 must not install packages from the Extra Packages for Enterprise Linux (EPEL) repository.
- V-257862 Medium check RHEL 9 must prevent files with the setuid and setgid bit set from being executed on the /boot/efi directory.
- V-257888 Medium check RHEL 9 permissions of cron configuration files and directories must not be modified from the operating system defaults.
- V-257949 Medium descriptioncheckfix RHEL 9 must configure a DNS processing mode in Network Manager.
- V-257996 Medium check RHEL 9 must be configured so that all network connections associated with SSH traffic are terminated after 10 minutes of becoming unresponsive.
- V-257999 Medium checkfix RHEL 9 SSH server configuration files' permissions must not be modified.
- V-258031 Medium check RHEL 9 must disable the ability of a user to accidentally press Ctrl-Alt-Del and cause a system to shut down or reboot.
- V-258123 Medium check RHEL 9 must implement certificate status checking for multifactor authentication.
- V-258127 Medium check RHEL 9, for PKI-based authentication, must enforce authorized access to the corresponding private key.
- V-258131 Medium check RHEL 9, for PKI-based authentication, must validate certificates by constructing a certification path (which includes status information) to an accepted trust anchor.
- V-258132 Medium check RHEL 9 must map the authenticated identity to the user or group account for PKI-based authentication.
- V-258143 Medium check RHEL 9 must be configured so that the rsyslog daemon does not accept log messages from other servers unless the server is being used for log aggregation.
- V-258171 Medium check RHEL 9 must allow only the information system security manager (ISSM) (or individuals or roles appointed by the ISSM) to select which auditable events are to be audited.
- V-258230 High check RHEL 9 must enable FIPS mode.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-09-211010
- Vuln IDs
-
- V-257777
- Rule IDs
-
- SV-257777r991589_rule
Checks: C-61518r925316_chk
Verify that the version or RHEL 9 is vendor supported with the following command: $ cat /etc/redhat-release Red Hat Enterprise Linux release 9.2 (Plow) If the installed version of RHEL 9 is not supported, this is a finding.
Fix: F-61442r925317_fix
Upgrade to a supported version of RHEL 9.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-211015
- Vuln IDs
-
- V-257778
- Rule IDs
-
- SV-257778r1134892_rule
Checks: C-61519r1134891_chk
Verify RHEL 9 security patches and updates are installed and up to date. Updates are required to be applied with a frequency determined by organizational policy. Obtain the list of available package security updates from Red Hat. The URL for updates is https://access.redhat.com/errata-search/. It is important to note that updates provided by Red Hat may not be present on the system if the underlying packages are not installed. Check that the available package security updates have been installed on the system with the following command: $ sudo dnf history list | more ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 70 | install aide | 2023-03-05 10:58 | Install | 1 69 | update -y | 2023-03-04 14:34 | Update | 18 EE 68 | install vlc | 2023-02-21 17:12 | Install | 21 67 | update -y | 2023-02-21 17:04 | Update | 7 EE Typical update frequency may be overridden by Information Assurance Vulnerability Alert (IAVA) notifications from CYBERCOM. If the system is in noncompliance with the organizational patching policy, this is a finding.
Fix: F-61443r925320_fix
Install RHEL 9 security patches and updates at the organizationally defined frequency. If system updates are installed via a centralized repository that is configured on the system, all updates can be installed with the following command: $ sudo dnf update
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- RHEL-09-211020
- Vuln IDs
-
- V-257779
- Rule IDs
-
- SV-257779r958390_rule
Checks: C-61520r925322_chk
Verify RHEL 9 displays the Standard Mandatory DOD Notice and Consent Banner before granting access to the operating system via a command line user logon. Check that a banner is displayed at the command line login screen with the following command: $ sudo cat /etc/issue If the banner is set correctly it will return the following text: "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details." If the banner text does not match the Standard Mandatory DOD Notice and Consent Banner exactly, or the line is commented out, this is a finding.
Fix: F-61444r925323_fix
Configure RHEL 9 to display the Standard Mandatory DOD Notice and Consent Banner before granting access to the system via command line logon. Edit the "/etc/issue" file to replace the default text with the Standard Mandatory DOD Notice and Consent Banner. The DOD-required text is: "You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests -- not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details."
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-211030
- Vuln IDs
-
- V-257781
- Rule IDs
-
- SV-257781r991589_rule
Checks: C-61522r925328_chk
Verify that RHEL 9 is configured to boot to the command line: $ systemctl get-default multi-user.target If the system default target is not set to "multi-user.target" and the information system security officer (ISSO) lacks a documented requirement for a graphical user interface, this is a finding.
Fix: F-61446r925329_fix
Document the requirement for a graphical user interface with the ISSO or set the default target to multi-user with the following command: $ sudo systemctl set-default multi-user.target
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-09-211035
- Vuln IDs
-
- V-257782
- Rule IDs
-
- SV-257782r991589_rule
Checks: C-61523r942960_chk
Note: For RHEL 9 systems running with kernel FIPS mode enabled as specified by RHEL-09-671010, this requirement is Not Applicable. Verify that RHEL 9 has enabled the hardware random number generator entropy gatherer service with the following command: $ systemctl is-active rngd active If the "rngd" service is not active, this is a finding.
Fix: F-61447r925332_fix
Install the rng-tools package with the following command: $ sudo dnf install rng-tools Then enable the rngd service run the following command: $ sudo systemctl enable --now rngd
- RMF Control
- SC-24
- Severity
- M
- CCI
- CCI-001665
- Version
- RHEL-09-211040
- Vuln IDs
-
- V-257783
- Rule IDs
-
- SV-257783r991562_rule
Checks: C-61524r925334_chk
Verify that "systemd-journald" is active with the following command: $ systemctl is-active systemd-journald active If the systemd-journald service is not active, this is a finding.
Fix: F-61448r925335_fix
To enable the systemd-journald service, run the following command: $ sudo systemctl enable --now systemd-journald
- RMF Control
- AC-6
- Severity
- H
- CCI
- CCI-002235
- Version
- RHEL-09-211045
- Vuln IDs
-
- V-257784
- Rule IDs
-
- SV-257784r1044832_rule
Checks: C-61525r925337_chk
Verify RHEL 9 is configured to not reboot the system when Ctrl-Alt-Delete is pressed seven times within two seconds with the following command: $ grep -i ctrl /etc/systemd/system.conf CtrlAltDelBurstAction=none If the "CtrlAltDelBurstAction" is not set to "none", commented out, or is missing, this is a finding.
Fix: F-61449r925338_fix
Configure the system to disable the CtrlAltDelBurstAction by added or modifying the following line in the "/etc/systemd/system.conf" configuration file: CtrlAltDelBurstAction=none Reload the daemon for this change to take effect. $ sudo systemctl daemon-reload
- RMF Control
- AC-6
- Severity
- H
- CCI
- CCI-002235
- Version
- RHEL-09-211050
- Vuln IDs
-
- V-257785
- Rule IDs
-
- SV-257785r1044833_rule
Checks: C-61526r925340_chk
Verify RHEL 9 is not configured to reboot the system when Ctrl-Alt-Delete is pressed with the following command: $ sudo systemctl status ctrl-alt-del.target ctrl-alt-del.target Loaded: masked (Reason: Unit ctrl-alt-del.target is masked.) Active: inactive (dead) If the "ctrl-alt-del.target" is loaded and not masked, this is a finding.
Fix: F-61450r925341_fix
Configure RHEL 9 to disable the ctrl-alt-del.target with the following command: $ sudo systemctl disable --now ctrl-alt-del.target $ sudo systemctl mask --now ctrl-alt-del.target
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002235
- Version
- RHEL-09-211055
- Vuln IDs
-
- V-257786
- Rule IDs
-
- SV-257786r1044834_rule
Checks: C-61527r925343_chk
Verify RHEL 9 is configured to mask the debug-shell systemd service with the following command: $ sudo systemctl status debug-shell.service debug-shell.service Loaded: masked (Reason: Unit debug-shell.service is masked.) Active: inactive (dead) If the "debug-shell.service" is loaded and not masked, this is a finding.
Fix: F-61451r943025_fix
Configure RHEL 9 to mask the debug-shell systemd service with the following command: $ sudo systemctl disable --now debug-shell.service $ sudo systemctl mask --now debug-shell.service
- RMF Control
- AC-3
- Severity
- M
- CCI
- CCI-000213
- Version
- RHEL-09-212010
- Vuln IDs
-
- V-257787
- Rule IDs
-
- SV-257787r1117265_rule
Checks: C-61528r1044835_chk
Verify the boot loader superuser password has been set with the following command: $ sudo grep password_pbkdf2 /etc/grub2.cfg password_pbkdf2 <superusers-accountname> ${GRUB2_PASSWORD} To verify the boot loader superuser account password has been set and the password encrypted, run the following command: $ sudo cat /boot/grub2/user.cfg GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.C4E08AC72FBFF7E837FD267BFAD7AEB3D42DDC 2C99F2A94DD5E2E75C2DC331B719FE55D9411745F82D1B6CFD9E927D61925F9BBDD1CFAA0080E0 916F7AB46E0D.1302284FCCC52CD73BA3671C6C12C26FF50BA873293B24EE2A96EE3B57963E6D7 0C83964B473EC8F93B07FE749AA6710269E904A9B08A6BBACB00A2D242AD828 If a "GRUB2_PASSWORD" is not set, this is a finding.
Fix: F-61452r925347_fix
Configure RHEL 9 to require a grub bootloader password for the grub superuser account. Generate an encrypted grub2 password for the grub superuser account with the following command: $ sudo grub2-setpassword Enter password: Confirm password:
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-212015
- Vuln IDs
-
- V-257788
- Rule IDs
-
- SV-257788r1044838_rule
Checks: C-61529r925349_chk
Verify that GRUB 2 is configured to disable interactive boot. Check that the current GRUB 2 configuration disables the ability of systemd to spawn an interactive boot process with the following command: $ sudo grubby --info=ALL | grep args | grep 'systemd.confirm_spawn' If any output is returned, this is a finding.
Fix: F-61453r1044837_fix
Configure the current GRUB 2 configuration to disable the ability of systemd to spawn an interactive boot process with the following command: $ sudo grubby --update-kernel=ALL --remove-args="systemd.confirm_spawn"
- RMF Control
- AC-3
- Severity
- H
- CCI
- CCI-000213
- Version
- RHEL-09-212020
- Vuln IDs
-
- V-257789
- Rule IDs
-
- SV-257789r1134895_rule
Checks: C-61530r1134893_chk
Verify the RHEL 9 boot loader superuser account has been set with the following command: $ sudo grep -A1 "superusers" /etc/grub2.cfg set superusers="<accountname>" export superusers password_pbkdf2 <accountname> ${GRUB2_PASSWORD} Verify <accountname> is not a common name such as root, admin, or administrator. If superusers contains easily guessable usernames, this is a finding.
Fix: F-61454r1134894_fix
Configure RHEL 9 to have a unique username for the grub superuser account. Edit the "/etc/grub.d/01_users" file and add or modify the following lines with a nondefault username for the superuser account: set superusers="<accountname>" export superusers Once the superuser account has been added, update the grub.cfg file by running: In RHEL 9.0, 9.1 and 9.2: sudo grub2-mkconfig -o /boot/grub2/grub.cfg In RHEL 9.3 and later: sudo grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-212025
- Vuln IDs
-
- V-257790
- Rule IDs
-
- SV-257790r991589_rule
Checks: C-61531r925355_chk
Verify the group ownership of the "/boot/grub2/grub.cfg" file with the following command: $ sudo stat -c "%G %n" /boot/grub2/grub.cfg root /boot/grub2/grub.cfg If "/boot/grub2/grub.cfg" file does not have a group owner of "root", this is a finding.
Fix: F-61455r925356_fix
Change the group of the file /boot/grub2/grub.cfg to root by running the following command: $ sudo chgrp root /boot/grub2/grub.cfg
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-212030
- Vuln IDs
-
- V-257791
- Rule IDs
-
- SV-257791r991589_rule
Checks: C-61532r925358_chk
Verify the ownership of the "/boot/grub2/grub.cfg" file with the following command: $ sudo stat -c "%U %n" /boot/grub2/grub.cfg root /boot/grub2/grub.cfg If "/boot/grub2/grub.cfg" file does not have an owner of "root", this is a finding.
Fix: F-61456r925359_fix
Change the owner of the file /boot/grub2/grub.cfg to root by running the following command: $ sudo chown root /boot/grub2/grub.cfg
- RMF Control
- SC-3
- Severity
- M
- CCI
- CCI-001084
- Version
- RHEL-09-212035
- Vuln IDs
-
- V-257792
- Rule IDs
-
- SV-257792r1044842_rule
Checks: C-61533r925361_chk
Verify the current GRUB 2 configuration disables virtual system calls with the following command: $ sudo grubby --info=ALL | grep args | grep -v 'vsyscall=none' If any output is returned, this is a finding. Check that virtual system calls are disabled by default to persist in kernel updates with the following command: $ sudo grep vsyscall /etc/default/grub GRUB_CMDLINE_LINUX="vsyscall=none" If "vsyscall" is not set to "none", is missing or commented out, and is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61457r925362_fix
Document the use of virtual system calls with the ISSO as an operational requirement or disable them with the following command: $ sudo grubby --update-kernel=ALL --args="vsyscall=none" Add or modify the following line in "/etc/default/grub" to ensure the configuration survives kernel updates: GRUB_CMDLINE_LINUX="vsyscall=none"
- RMF Control
- SC-3
- Severity
- M
- CCI
- CCI-001084
- Version
- RHEL-09-212040
- Vuln IDs
-
- V-257793
- Rule IDs
-
- SV-257793r1044843_rule
Checks: C-61534r925364_chk
Verify that GRUB 2 is configured to enable page poisoning to mitigate use-after-free vulnerabilities. Check that the current GRUB 2 configuration has page poisoning enabled with the following command: $ sudo grubby --info=ALL | grep args | grep -v 'page_poison=1' If any output is returned, this is a finding. Check that page poisoning is enabled by default to persist in kernel updates with the following command: $ sudo grep page_poison /etc/default/grub GRUB_CMDLINE_LINUX="page_poison=1" If "page_poison" is not set to "1", is missing or commented out, this is a finding.
Fix: F-61458r925365_fix
Configure RHEL 9 to enable page poisoning with the following commands: $ sudo grubby --update-kernel=ALL --args="page_poison=1" Add or modify the following line in "/etc/default/grub" to ensure the configuration survives kernel updates: GRUB_CMDLINE_LINUX="page_poison=1"
- RMF Control
- SC-3
- Severity
- M
- CCI
- CCI-001084
- Version
- RHEL-09-212045
- Vuln IDs
-
- V-257794
- Rule IDs
-
- SV-257794r1069362_rule
Checks: C-61535r1069360_chk
Verify that GRUB2 is configured to mitigate use-after-free vulnerabilities by employing memory poisoning. Inspect the "GRUB_CMDLINE_LINUX" entry of /etc/default/grub as follows: $ sudo grep -i grub_cmdline_linux /etc/default/grub GRUB_CMDLINE_LINUX="... init_on_free=1" If "init_on_free=1" is missing or commented out, this is a finding.
Fix: F-61459r1069361_fix
Configure RHEL 9 to enable init_on_free with the following command: $ sudo grubby --update-kernel=ALL --args="init_on_free=1" Regenerate the GRUB configuration: $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg Reboot the system: $ sudo reboot
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-09-212050
- Vuln IDs
-
- V-257795
- Rule IDs
-
- SV-257795r1044845_rule
Checks: C-61536r1044844_chk
Verify RHEL 9 enables kernel page-table isolation with the following command: $ sudo grubby --info=ALL | grep args | grep -v 'pti=on' If any output is returned, this is a finding. Check that kernel page-table isolation is enabled by default to persist in kernel updates: $ grep pti /etc/default/grub GRUB_CMDLINE_LINUX="pti=on" If "pti" is not set to "on", is missing or commented out, this is a finding.
Fix: F-61460r925371_fix
Configure RHEL 9 to enable kernel page-table isolation with the following command: $ sudo grubby --update-kernel=ALL --args="pti=on" Add or modify the following line in "/etc/default/grub" to ensure the configuration survives kernel updates: GRUB_CMDLINE_LINUX="pti=on"
- RMF Control
- AU-3
- Severity
- L
- CCI
- CCI-000130
- Version
- RHEL-09-212055
- Vuln IDs
-
- V-257796
- Rule IDs
-
- SV-257796r1044847_rule
Checks: C-61537r1044846_chk
Verify that GRUB 2 is configured to enable auditing of processes that start prior to the audit daemon with the following commands: Check that the current GRUB 2 configuration enables auditing: $ sudo grubby --info=ALL | grep args | grep -v 'audit=1' If any output is returned, this is a finding. Check that auditing is enabled by default to persist in kernel updates: $ grep audit /etc/default/grub GRUB_CMDLINE_LINUX="audit=1" If "audit" is not set to "1", is missing, or is commented out, this is a finding.
Fix: F-61461r925374_fix
Enable auditing of processes that start prior to the audit daemon with the following command: $ sudo grubby --update-kernel=ALL --args="audit=1" Add or modify the following line in "/etc/default/grub" to ensure the configuration survives kernel updates: GRUB_CMDLINE_LINUX="audit=1"
- RMF Control
- SC-2
- Severity
- M
- CCI
- CCI-001082
- Version
- RHEL-09-213010
- Vuln IDs
-
- V-257797
- Rule IDs
-
- SV-257797r1117266_rule
Checks: C-61538r1106424_chk
Verify RHEL 9 is configured to restrict access to the kernel message buffer with the following commands: Check the status of the kernel.dmesg_restrict kernel parameter. $ sudo sysctl kernel.dmesg_restrict kernel.dmesg_restrict = 1 If "kernel.dmesg_restrict" is not set to "1" or is missing, this is a finding. Check that the configuration files are present to enable this kernel parameter. $ sudo grep -r kernel.dmesg_restrict /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:kernel.dmesg_restrict = 1 If "kernel.dmesg_restrict" is not set to "1", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61462r1102065_fix
Configure RHEL 9 to restrict access to the kernel message buffer. Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: kernel.dmesg_restrict = 1 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- SC-2
- Severity
- M
- CCI
- CCI-001082
- Version
- RHEL-09-213015
- Vuln IDs
-
- V-257798
- Rule IDs
-
- SV-257798r1117266_rule
Checks: C-61539r1106426_chk
Verify RHEL 9 is configured to prevent kernel profiling by nonprivileged users with the following commands: Check the status of the kernel.perf_event_paranoid kernel parameter. $ sudo sysctl kernel.perf_event_paranoid kernel.perf_event_paranoid = 2 If "kernel.perf_event_paranoid" is not set to "2" or is missing, this is a finding. Check that the configuration files are present to enable this kernel parameter. $ sudo grep -r kernel.perf_event_paranoid /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:kernel.perf_event_paranoid = 2 If "kernel.perf_event_paranoid" is not set to "2", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61463r1102051_fix
Configure RHEL 9 to prevent kernel profiling by nonprivileged users. Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: kernel.perf_event_paranoid = 2 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- Severity
- M
- CCI
- CCI-003992
- Version
- RHEL-09-213020
- Vuln IDs
-
- V-257799
- Rule IDs
-
- SV-257799r1106273_rule
Checks: C-61540r1106271_chk
Verify RHEL 9 is configured to disable kernel image loading. Check the status of the kernel.kexec_load_disabled kernel parameter. $ sudo sysctl kernel.kexec_load_disabled kernel.kexec_load_disabled = 1 If "kernel.kexec_load_disabled" is not set to "1" or is missing, this is a finding. Check that the configuration files are present to enable this kernel parameter. $ sudo grep -r kernel.kexec_load_disabled /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:kernel.kexec_load_disabled = 1 If "kernel.kexec_load_disabled" is not set to "1", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61464r1106272_fix
Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: kernel.kexec_load_disabled = 1 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- SC-2
- Severity
- M
- CCI
- CCI-001082
- Version
- RHEL-09-213025
- Vuln IDs
-
- V-257800
- Rule IDs
-
- SV-257800r1117266_rule
Checks: C-61541r1106274_chk
Verify RHEL 9 restricts exposed kernel pointer addresses access with the following commands: $ sudo sysctl kernel.kptr_restrict kernel.kptr_restrict = 1 If the returned line does not have a value of "1" or "2", or a line is not returned, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r kernel.kptr_restrict /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: kernel.kptr_restrict = 1 If "kernel.kptr_restrict" is not set to "1" or "2", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61465r1106275_fix
Configure RHEL 9 to restrict exposed kernel pointer addresses access by adding the following line to a file in the "/etc/sysctl.d" directory: kernel.kptr_restrict = 1 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf The system configuration files need to be reloaded for the changes to take effect. To reload the contents of the files, run the following command: $ sudo sysctl --system
- RMF Control
- AC-3
- Severity
- M
- CCI
- CCI-002165
- Version
- RHEL-09-213030
- Vuln IDs
-
- V-257801
- Rule IDs
-
- SV-257801r1106279_rule
Checks: C-61542r1106277_chk
Verify RHEL 9 is configured to enable DAC on hardlinks. Check the status of the fs.protected_hardlinks kernel parameter. $ sudo sysctl fs.protected_hardlinks fs.protected_hardlinks = 1 If "fs.protected_hardlinks" is not set to "1" or is missing, this is a finding. Check that the configuration files are present to enable this kernel parameter. $ sudo grep -r fs.protected_hardlinks /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:fs.protected_hardlinks = 1 If "fs.protected_hardlinks" is not set to "1", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61466r1106278_fix
Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: fs.protected_hardlinks = 1 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- AC-3
- Severity
- M
- CCI
- CCI-002165
- Version
- RHEL-09-213035
- Vuln IDs
-
- V-257802
- Rule IDs
-
- SV-257802r1106282_rule
Checks: C-61543r1106280_chk
Verify RHEL 9 is configured to enable DAC on symlinks. Check the status of the fs.protected_symlinks kernel parameter. $ sudo sysctl fs.protected_symlinks fs.protected_symlinks = 1 If "fs.protected_symlinks" is not set to "1" or is missing, this is a finding. Check that the configuration files are present to enable this kernel parameter. $ sudo grep -r fs.protected_symlinks /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:fs.protected_symlinks = 1 If "fs.protected_symlinks" is not set to "1", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61467r1106281_fix
Configure RHEL 9 to enable DAC on symlinks. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: fs.protected_symlinks = 1 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-213040
- Vuln IDs
-
- V-257803
- Rule IDs
-
- SV-257803r1106429_rule
Checks: C-61544r1106283_chk
Verify RHEL 9 disables storing core dumps with the following commands: $ sudo sysctl kernel.core_pattern kernel.core_pattern = |/bin/false If the returned line does not have a value of "|/bin/false", or a line is not returned and the need for core dumps is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding. Check that the configuration files are present to enable this kernel parameter. $ sudo grep -r kernel.core_pattern /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:kernel.core_pattern = |/bin/false If "kernel.core_pattern" is not set to "|/bin/false", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61468r1106428_fix
Configure RHEL 9 to disable storing core dumps. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: kernel.core_pattern = |/bin/false Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf The system configuration files must reloaded for the changes to take effect. To reload the contents of the files, run the following command: $ sudo sysctl --system
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-213045
- Vuln IDs
-
- V-257804
- Rule IDs
-
- SV-257804r1044853_rule
Checks: C-61545r1044852_chk
Verify that RHEL 9 disables the ability to load the ATM kernel module with the following command: $ grep -r atm /etc/modprobe.conf /etc/modprobe.d/* install atm /bin/false blacklist atm If the command does not return any output, or the line is commented out, and use of ATM is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61469r925398_fix
To configure the system to prevent the atm kernel module from being loaded, add the following line to the file /etc/modprobe.d/atm.conf (or create atm.conf if it does not exist): install atm /bin/false blacklist atm
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-213050
- Vuln IDs
-
- V-257805
- Rule IDs
-
- SV-257805r1044856_rule
Checks: C-61546r1044854_chk
Verify that RHEL 9 disables the ability to load the CAN kernel module with the following command: $ grep -r can /etc/modprobe.conf /etc/modprobe.d/* install can /bin/false blacklist can If the command does not return any output, or the lines are commented out, and use of CAN is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61470r1044855_fix
To configure the system to prevent the can kernel module from being loaded, add the following lines to the file /etc/modprobe.d/can.conf (or create can.conf if it does not exist): install can /bin/false blacklist can
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-213055
- Vuln IDs
-
- V-257806
- Rule IDs
-
- SV-257806r1044859_rule
Checks: C-61547r1044857_chk
Verify that RHEL 9 disables the ability to load the firewire-core kernel module with the following command: $ grep -r firewire-core /etc/modprobe.conf /etc/modprobe.d/* install firewire-core /bin/false blacklist firewire-core If the command does not return any output, or the lines are commented out, and use of firewire-core is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61471r1044858_fix
To configure the system to prevent the firewire-core kernel module from being loaded, add the following lines to the file /etc/modprobe.d/firewire-core.conf (or create firewire-core.conf if it does not exist): install firewire-core /bin/false blacklist firewire-core
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-213060
- Vuln IDs
-
- V-257807
- Rule IDs
-
- SV-257807r1044862_rule
Checks: C-61548r1044860_chk
Verify that RHEL 9 disables the ability to load the sctp kernel module with the following command: $ grep -r sctp /etc/modprobe.conf /etc/modprobe.d/* install sctp /bin/false blacklist sctp If the command does not return any output, or the lines are commented out, and use of sctp is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61472r1044861_fix
To configure the system to prevent the sctp kernel module from being loaded, add the following lines to the file /etc/modprobe.d/sctp.conf (or create sctp.conf if it does not exist): install sctp /bin/false blacklist sctp
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-213065
- Vuln IDs
-
- V-257808
- Rule IDs
-
- SV-257808r1044865_rule
Checks: C-61549r1044863_chk
Verify that RHEL 9 disables the ability to load the tipc kernel module with the following command: $ grep -r tipc /etc/modprobe.conf /etc/modprobe.d/* install tipc /bin/false blacklist tipc If the command does not return any output, or the lines are commented out, and use of tipc is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61473r1044864_fix
To configure the system to prevent the tipc kernel module from being loaded, add the following lines to the file /etc/modprobe.d/tipc.conf (or create tipc.conf if it does not exist): install tipc /bin/false blacklist tipc
- RMF Control
- SI-16
- Severity
- M
- CCI
- CCI-002824
- Version
- RHEL-09-213070
- Vuln IDs
-
- V-257809
- Rule IDs
-
- SV-257809r1106288_rule
Checks: C-61550r1106286_chk
Verify RHEL 9 implements ASLR with the following command: $ sudo sysctl kernel.randomize_va_space kernel.randomize_va_space = 2 If "kernel.randomize_va_space" is not set to "2", this is a finding. Check that the configuration files are present to enable this kernel parameter. $ sudo grep -r kernel.randomize_va_space /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:kernel.randomize_va_space = 2 If "kernel.randomize_va_space" is not set to "2", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61474r1106287_fix
Configure RHEL 9 to implement virtual address space randomization. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: kernel.randomize_va_space=2 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Issue the following command to make the changes take effect: $ sudo sysctl --system
- RMF Control
- SC-2
- Severity
- M
- CCI
- CCI-001082
- Version
- RHEL-09-213075
- Vuln IDs
-
- V-257810
- Rule IDs
-
- SV-257810r1117266_rule
Checks: C-61551r1106289_chk
Verify RHEL 9 prevents privilege escalation through the kernel by disabling access to the bpf syscall with the following commands: $ sudo sysctl kernel.unprivileged_bpf_disabled kernel.unprivileged_bpf_disabled = 1 If the returned line does not have a value of "1", or a line is not returned, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r kernel.unprivileged_bpf_disabled /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: kernel.unprivileged_bpf_disabled = 1 If "kernel.unprivileged_bpf_disabled" is not set to "1", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61475r1106430_fix
Configure RHEL 9 to prevent privilege escalation through the kernel by disabling access to the bpf syscall by adding the following line to a file in the "/etc/sysctl.d" directory: kernel.unprivileged_bpf_disabled = 1 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf The system configuration files must be reloaded for the changes to take effect. To reload the contents of the files, run the following command: $ sudo sysctl --system
- RMF Control
- SC-2
- Severity
- M
- CCI
- CCI-001082
- Version
- RHEL-09-213080
- Vuln IDs
-
- V-257811
- Rule IDs
-
- SV-257811r1117266_rule
Checks: C-61552r1106292_chk
Verify RHEL 9 restricts usage of ptrace to descendant processes with the following commands: $ sudo sysctl kernel.yama.ptrace_scope kernel.yama.ptrace_scope = 1 If the returned line does not have a value of "1", or a line is not returned, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r kernel.yama.ptrace_scope /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: kernel.yama.ptrace_scope = 1 If "kernel.yama.ptrace_scope" is not set to "1", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61476r1106432_fix
Configure RHEL 9 to restrict usage of ptrace to descendant processes by adding the following line to a file in the "/etc/sysctl.d" directory: kernel.yama.ptrace_scope = 1 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf The system configuration files must be reloaded for the changes to take effect. To reload the contents of the files, run the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-213085
- Vuln IDs
-
- V-257812
- Rule IDs
-
- SV-257812r1134897_rule
Checks: C-61553r1134896_chk
Note: If kernel dumps are disabled in accordance with RHEL-09-213040, this requirement is not applicable. Verify RHEL 9 disables core dump backtraces by issuing the following command: $ grep -i ProcessSizeMax /etc/systemd/coredump.conf ProcessSizeMax=0 If the "ProcessSizeMax" item is missing or commented out, or the value is anything other than "0", and the need for core dumps is not documented with the information system security officer (ISSO) as an operational requirement for all domains that have the "core" item assigned, this is a finding.
Fix: F-61477r925422_fix
Configure the operating system to disable core dump backtraces. Add or modify the following line in /etc/systemd/coredump.conf: ProcessSizeMax=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-213090
- Vuln IDs
-
- V-257813
- Rule IDs
-
- SV-257813r1134899_rule
Checks: C-61554r1134898_chk
Note: If kernel dumps are disabled in accordance with RHEL-09-213040, this requirement is not applicable. Verify RHEL 9 disables storing core dumps for all users by issuing the following command: $ grep -i storage /etc/systemd/coredump.conf Storage=none If the "Storage" item is missing or commented out, or the value is anything other than "none", and the need for core dumps is not documented with the information system security officer (ISSO) as an operational requirement for all domains that have the "core" item assigned, this is a finding.
Fix: F-61478r925425_fix
Configure the operating system to disable storing core dumps for all users. Add or modify the following line in /etc/systemd/coredump.conf: Storage=none
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-213095
- Vuln IDs
-
- V-257814
- Rule IDs
-
- SV-257814r1134901_rule
Checks: C-61555r1134900_chk
Note: If kernel dumps are disabled in accordance with RHEL-09-213040, this requirement is not applicable. Verify RHEL 9 disables core dumps for all users by issuing the following command: $ grep -r -s core /etc/security/limits.conf /etc/security/limits.d/*.conf /etc/security/limits.conf:* hard core 0 This can be set as a global domain (with the * wildcard) but may be set differently for multiple domains. If the "core" item is missing or commented out, or the value is anything other than "0", and the need for core dumps is not documented with the information system security officer (ISSO) as an operational requirement for all domains that have the "core" item assigned, this is a finding.
Fix: F-61479r925428_fix
Configure the operating system to disable core dumps for all users. Add the following line to the top of the /etc/security/limits.conf or in a single ".conf" file defined in /etc/security/limits.d/: * hard core 0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-213100
- Vuln IDs
-
- V-257815
- Rule IDs
-
- SV-257815r1134903_rule
Checks: C-61556r1134902_chk
Note: If kernel dumps are disabled in accordance with RHEL-09-213040, this requirement is not applicable. Verify RHEL 9 is not configured to acquire, save, or process core dumps with the following command: $ sudo systemctl status systemd-coredump.socket systemd-coredump.socket Loaded: masked (Reason: Unit systemd-coredump.socket is masked.) Active: inactive (dead) If the "systemd-coredump.socket" is loaded and not masked, and the need for core dumps is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61480r925431_fix
Configure the system to disable the systemd-coredump.socket with the following command: $ sudo systemctl mask --now systemd-coredump.socket Created symlink /etc/systemd/system/systemd-coredump.socket -> /dev/null Reload the daemon for this change to take effect. $ sudo systemctl daemon-reload
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-213105
- Vuln IDs
-
- V-257816
- Rule IDs
-
- SV-257816r1106435_rule
Checks: C-61557r1106295_chk
Verify RHEL 9 disables the use of user namespaces with the following commands: $ sudo sysctl user.max_user_namespaces user.max_user_namespaces = 0 If the returned line does not have a value of "0", or a line is not returned, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r user.max_user_namespaces /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: user.max_user_namespaces = 0 If "user.max_user_namespaces" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding. If the use of namespaces is operationally required and documented with the information system security manager (ISSM), it is not a finding.
Fix: F-61481r1106434_fix
Configure RHEL 9 to disable the use of user namespaces by adding the following line to a file in the "/etc/sysctl.d" directory: user.max_user_namespaces = 0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf The system configuration files must be reloaded for the changes to take effect. To reload the contents of the files, run the following command: $ sudo sysctl --system
- RMF Control
- SI-16
- Severity
- M
- CCI
- CCI-002824
- Version
- RHEL-09-213110
- Vuln IDs
-
- V-257817
- Rule IDs
-
- SV-257817r1069383_rule
Checks: C-61558r1069381_chk
Verify ExecShield is enabled on 64-bit RHEL 9 systems. Run the following command: $ grep ^flags /proc/cpuinfo | grep -Ev '([^[:alnum:]])(nx)([^[:alnum:]]|$)' If any output is returned, this is a finding. Next, run the following command: $ sudo grubby --info=ALL | grep args | grep -E '([^[:alnum:]])(noexec)([^[:alnum:]])' If any output is returned, this is a finding.
Fix: F-61482r1069382_fix
If /proc/cpuinfo shows that one or more processors do not enable ExecShield (lack the "nx" feature flag), verify that the NX/XD feature is not disabled in the BIOS or UEFI. If it is disabled, enable it. If the noexec option is present on the kernel command line, update the GRUB 2 bootloader configuration to remove it by running the following command: $ sudo grubby --update-kernel=ALL --remove-args=noexec
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-213115
- Vuln IDs
-
- V-257818
- Rule IDs
-
- SV-257818r1044876_rule
Checks: C-61559r1044875_chk
Verify that the kdump service is disabled in system boot configuration with the following command: $ sudo systemctl is-enabled kdump disabled Verify that the kdump service is not active (i.e., not running) through current runtime configuration with the following command: $ sudo systemctl is-active kdump masked Verify that the kdump service is masked with the following command: $ sudo systemctl show kdump | grep "LoadState\|UnitFileState" LoadState=masked UnitFileState=masked If the "kdump" service is loaded or active, and is not masked, this is a finding.
Fix: F-61483r925440_fix
Disable and mask the kdump service on RHEL 9. To disable the kdump service run the following command: $ sudo systemctl disable --now kdump To mask the kdump service run the following command: $ sudo systemctl mask --now kdump
- RMF Control
- Severity
- M
- CCI
- CCI-003992
- Version
- RHEL-09-214010
- Vuln IDs
-
- V-257819
- Rule IDs
-
- SV-257819r1015075_rule
Checks: C-61560r925442_chk
Confirm Red Hat package-signing keys are installed on the system and verify their fingerprints match vendor values. Note: For RHEL 9 software packages, Red Hat uses GPG keys labeled "release key 2" and "auxiliary key 3". The keys are defined in key file "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release" by default. List Red Hat GPG keys installed on the system: $ sudo rpm -q --queryformat "%{SUMMARY}\n" gpg-pubkey | grep -i "red hat" Red Hat, Inc. (release key 2) <security@redhat.com> public key Red Hat, Inc. (auxiliary key 3) <security@redhat.com> public key If Red Hat GPG keys "release key 2" and "auxiliary key 3" are not installed, this is a finding. List key fingerprints of installed Red Hat GPG keys: $ sudo gpg -q --keyid-format short --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release If key file "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release" is missing, this is a finding. Example output: pub rsa4096/FD431D51 2009-10-22 [SC] Key fingerprint = 567E 347A D004 4ADE 55BA 8A5F 199E 2F91 FD43 1D51 uid Red Hat, Inc. (release key 2) <security@redhat.com> pub rsa4096/5A6340B3 2022-03-09 [SC] Key fingerprint = 7E46 2425 8C40 6535 D56D 6F13 5054 E4A4 5A63 40B3 uid Red Hat, Inc. (auxiliary key 3) <security@redhat.com> Compare key fingerprints of installed Red Hat GPG keys with fingerprints listed for RHEL 9 on Red Hat "Product Signing Keys" webpage at https://access.redhat.com/security/team/key. If key fingerprints do not match, this is a finding.
Fix: F-61484r925443_fix
Install Red Hat package-signing keys on the system and verify their fingerprints match vendor values. Insert RHEL 9 installation disc or attach RHEL 9 installation image to the system. Mount the disc or image to make the contents accessible inside the system. Assuming the mounted location is "/media/cdrom", use the following command to copy Red Hat GPG key file onto the system: $ sudo cp /media/cdrom/RPM-GPG-KEY-redhat-release /etc/pki/rpm-gpg/ Import Red Hat GPG keys from key file into system keyring: $ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release Using the steps listed in the Check Text, confirm the newly imported keys show as installed on the system and verify their fingerprints match vendor values.
- RMF Control
- Severity
- H
- CCI
- CCI-003992
- Version
- RHEL-09-214015
- Vuln IDs
-
- V-257820
- Rule IDs
-
- SV-257820r1044878_rule
Checks: C-61561r1044877_chk
Verify that dnf always checks the GPG signature of software packages originating from external software repositories before installation: $ grep -w gpgcheck /etc/dnf/dnf.conf gpgcheck=1 If "gpgcheck" is not set to "1", or if the option is missing or commented out, ask the system administrator how the GPG signatures of software packages are being verified. If there is no process to verify GPG signatures that is approved by the organization, this is a finding.
Fix: F-61485r925446_fix
Configure dnf to always check the GPG signature of software packages originating from external software repositories before installation. Add or update the following line in the [main] section of the /etc/dnf/dnf.conf file: gpgcheck=1
- RMF Control
- Severity
- H
- CCI
- CCI-003992
- Version
- RHEL-09-214020
- Vuln IDs
-
- V-257821
- Rule IDs
-
- SV-257821r1015077_rule
Checks: C-61562r925448_chk
Verify that dnf always checks the GPG signature of locally installed software packages before installation: $ grep localpkg_gpgcheck /etc/dnf/dnf.conf localpkg_gpgcheck=1 If "localpkg_gpgcheck" is not set to "1", or if the option is missing or commented out, ask the system administrator how the GPG signatures of local software packages are being verified. If there is no process to verify GPG signatures that is approved by the organization, this is a finding.
Fix: F-61486r925449_fix
Configure dnf to always check the GPG signature of local software packages before installation. Add or update the following line in the [main] section of the /etc/dnf/dnf.conf file: localpkg_gpgcheck=1
- RMF Control
- Severity
- H
- CCI
- CCI-003992
- Version
- RHEL-09-214025
- Vuln IDs
-
- V-257822
- Rule IDs
-
- SV-257822r1044880_rule
Checks: C-61563r1044879_chk
Verify that all software repositories defined in "/etc/yum.repos.d/" have been configured with "gpgcheck" enabled: $ grep -w gpgcheck /etc/yum.repos.d/*.repo | more gpgcheck = 1 If "gpgcheck" is not set to "1" for all returned lines, this is a finding.
Fix: F-61487r925452_fix
Configure all software repositories defined in "/etc/yum.repos.d/" to have "gpgcheck" enabled: $ sudo sed -i 's/gpgcheck\s*=.*/gpgcheck=1/g' /etc/yum.repos.d/*
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-214030
- Vuln IDs
-
- V-257823
- Rule IDs
-
- SV-257823r1051231_rule
Checks: C-61564r1051229_chk
Verify that RHEL 9 is configured so that the cryptographic hashes of system files match vendor values. List files on the system that have file hashes different from what is expected by the RPM database with the following command: $ sudo rpm -Va --noconfig | awk '$1 ~ /..5/ && $2 != "c"' If there is output, this is a finding.
Fix: F-61488r1051230_fix
Configure RHEL 9 so that the cryptographic hashes of system files match vendor values. Given output from the check command, identify the package that provides the output and reinstall it. The following trimmed example output shows a package that has failed verification, been identified, and been reinstalled: $ sudo rpm -Va --noconfig | awk '$1 ~ /..5/ && $2 != "c"' S.5....T. /usr/bin/znew $ sudo dnf provides /usr/bin/znew [...] gzip-1.10-8.el9.x86_64 : The GNU data compression program [...] $ sudo dnf -y reinstall gzip [...] $ sudo rpm -Va --noconfig | awk '$1 ~ /..5/ && $2 != "c"' [no output]
- RMF Control
- SI-2
- Severity
- L
- CCI
- CCI-002617
- Version
- RHEL-09-214035
- Vuln IDs
-
- V-257824
- Rule IDs
-
- SV-257824r1044886_rule
Checks: C-61565r1044884_chk
Verify RHEL 9 removes all software components after updated versions have been installed with the following command: $ grep -i clean_requirements_on_remove /etc/dnf/dnf.conf clean_requirements_on_remove=True If "clean_requirements_on_remove" is not set to "True", this is a finding.
Fix: F-61489r1044885_fix
Configure RHEL 9 to remove all software components after updated versions have been installed. Edit the file /etc/dnf/dnf.conf by adding or editing the following line: clean_requirements_on_remove=True
- RMF Control
- Severity
- M
- CCI
- CCI-003992
- Version
- RHEL-09-215010
- Vuln IDs
-
- V-257825
- Rule IDs
-
- SV-257825r1044888_rule
Checks: C-61566r1044887_chk
Verify that RHEL 9 subscription-manager package is installed with the following command: $ dnf list --installed subscription-manager Example output: subscription-manager.x86_64 1.29.26-3.el9_0 If the "subscription-manager" package is not installed, this is a finding.
Fix: F-61490r925461_fix
The subscription-manager package can be installed with the following command: $ sudo dnf install subscription-manager
- RMF Control
- IA-5
- Severity
- H
- CCI
- CCI-000197
- Version
- RHEL-09-215015
- Vuln IDs
-
- V-257826
- Rule IDs
-
- SV-257826r1106299_rule
Checks: C-61567r1106298_chk
Verify RHEL 9 does not have an FTP server package installed with the following command: $ sudo dnf list --installed vsftpd Error: No matching Packages to list If the "ftp" package is installed, this is a finding.
Fix: F-61491r925464_fix
The ftp package can be removed with the following command (using vsftpd as an example): $ sudo dnf remove vsftpd
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-215020
- Vuln IDs
-
- V-257827
- Rule IDs
-
- SV-257827r1044892_rule
Checks: C-61568r1044891_chk
Verify that the sendmail package is not installed with the following command: $ dnf list --installed sendmail Error: No matching Packages to list If the "sendmail" package is installed, this is a finding.
Fix: F-61492r925467_fix
Remove the sendmail package with the following command: $ sudo dnf remove sendmail
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-215025
- Vuln IDs
-
- V-257828
- Rule IDs
-
- SV-257828r1044894_rule
Checks: C-61569r1044893_chk
Verify that the nfs-utils package is not installed with the following command: $ dnf list --installed nfs-utils Error: No matching Packages to list If the "nfs-utils" package is installed, this is a finding.
Fix: F-61493r925470_fix
Remove the nfs-utils package with the following command: $ sudo dnf remove nfs-utils
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-215030
- Vuln IDs
-
- V-257829
- Rule IDs
-
- SV-257829r1044896_rule
Checks: C-61570r1044895_chk
Verify that the ypserv package is not installed with the following command: $ dnf list --installed ypserv Error: No matching Packages to list If the "ypserv" package is installed, this is a finding.
Fix: F-61494r925473_fix
Remove the ypserv package with the following command: $ sudo dnf remove ypserv
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-215035
- Vuln IDs
-
- V-257830
- Rule IDs
-
- SV-257830r1134906_rule
Checks: C-61571r1134904_chk
Verify that RHEL 9 is not able to install packages from the EPEL with the following command: $ dnf repolist rhel-9-for-x86_64-appstream-rpms Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) rhel-9-for-x86_64-baseos-rpms Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) If any repositories containing the word "epel" in the name exist, this is a finding.
Fix: F-61495r1134905_fix
The repo package can be manually removed with the following command: $ sudo dnf remove epel-release Configure the operating system to disable use of the EPEL repository with the following command: $ sudo dnf config-manager --set-disabled epel
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-215040
- Vuln IDs
-
- V-257831
- Rule IDs
-
- SV-257831r1044898_rule
Checks: C-61572r1044897_chk
Verify that the telnet-server package is not installed with the following command: $ dnf list --installed telnet-server Error: No matching Packages to list If the "telnet-server" package is installed, this is a finding.
Fix: F-61496r925479_fix
Remove the telnet-server package with the following command: $ sudo dnf remove telnet-server
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-215045
- Vuln IDs
-
- V-257832
- Rule IDs
-
- SV-257832r1044900_rule
Checks: C-61573r1044899_chk
Verify that the gssproxy package is not installed with the following command: $ dnf list --installed gssproxy Error: No matching Packages to list If the "gssproxy" package is installed and is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61497r925482_fix
Remove the gssproxy package with the following command: $ sudo dnf remove gssproxy
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-215050
- Vuln IDs
-
- V-257833
- Rule IDs
-
- SV-257833r1044902_rule
Checks: C-61574r1044901_chk
Verify that the iprutils package is not installed with the following command: $ dnf list --installed iprutils Error: No matching Packages to list If the "iprutils" package is installed and is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61498r925485_fix
Remove the iprutils package with the following command: $ sudo dnf remove iprutils
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-215055
- Vuln IDs
-
- V-257834
- Rule IDs
-
- SV-257834r1044904_rule
Checks: C-61575r1044903_chk
Verify that the tuned package is not installed with the following command: $ dnf list --installed tuned Error: No matching Packages to list If the "tuned" package is installed and is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61499r925488_fix
Remove the tuned package with the following command: $ sudo dnf remove tuned
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-09-215060
- Vuln IDs
-
- V-257835
- Rule IDs
-
- SV-257835r1102037_rule
Checks: C-61576r1102036_chk
Verify that RHEL 9 does not have a "tftp-server" package installed with the following command: $ sudo dnf list --installed tftp-server Error: No matching Packages to list If the "tftp-server" package is installed, this is a finding.
Fix: F-61500r952170_fix
The "tftp-server" package can be removed with the following command: $ sudo dnf remove tftp-server
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-215065
- Vuln IDs
-
- V-257836
- Rule IDs
-
- SV-257836r1044908_rule
Checks: C-61577r1044907_chk
Verify that the quagga package is not installed with the following command: $ dnf list --installed quagga Error: No matching Packages to list If the "quagga" package is installed and is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61501r925494_fix
Remove the quagga package with the following command: $ sudo dnf remove quagga
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-215070
- Vuln IDs
-
- V-257837
- Rule IDs
-
- SV-257837r1044910_rule
Checks: C-61578r1044909_chk
Verify that a graphical user interface is not installed with the following command: $ dnf list --installed "xorg-x11-server-common" Error: No matching Packages to list If the "xorg-x11-server-common" package is installed, and the use of a graphical user interface has not been documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61502r925497_fix
Document the requirement for a graphical user interface with the ISSO or remove all xorg packages with the following command: Warning: If you are accessing the system through the graphical user interface, change to the multi-user.target with the following command: $ sudo systemctl isolate multi-user.target Warning: Removal of the graphical user interface will immediately render it useless. The following commands must not be run from a virtual terminal emulator in the graphical interface. $ sudo dnf remove "xorg*" $ sudo systemctl set-default multi-user.target
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000765
- Version
- RHEL-09-215075
- Vuln IDs
-
- V-257838
- Rule IDs
-
- SV-257838r1044912_rule
Checks: C-61579r1044911_chk
Note: If the system administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is Not Applicable. Verify that RHEL 9 has the openssl-pkcs11 package installed with the following command: $ dnf list --installed openssl-pkcs11 Example output: openssl-pkcs.i686 0.4.11-7.el9 openssl-pkcs.x86_64 0.4.11-7.el9 If the "openssl-pkcs11" package is not installed, this is a finding.
Fix: F-61503r925500_fix
The openssl-pkcs11 package can be installed with the following command: $ sudo dnf install openssl-pkcs11
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-215080
- Vuln IDs
-
- V-257839
- Rule IDs
-
- SV-257839r991589_rule
Checks: C-61580r925502_chk
Verify that RHEL 9 has the gnutls-utils package installed with the following command: $ dnf list --installed gnutls-utils Example output: gnutls-utils.x86_64 3.7.3-9.el9 If the "gnutls-utils" package is not installed, this is a finding.
Fix: F-61504r925503_fix
The gnutls-utils package can be installed with the following command: $ sudo dnf install gnutls-utils
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-215085
- Vuln IDs
-
- V-257840
- Rule IDs
-
- SV-257840r991589_rule
Checks: C-61581r925505_chk
Verify that RHEL 9 has the nss-tools package installed with the following command: $ dnf list --installed nss-tools Example output: nss-tools.x86_64 3.71.0-7.el9 If the "nss-tools" package is not installed, this is a finding.
Fix: F-61505r925506_fix
The nss-tools package can be installed with the following command: $ sudo dnf install nss-tools
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-215090
- Vuln IDs
-
- V-257841
- Rule IDs
-
- SV-257841r1044914_rule
Checks: C-61582r1044913_chk
Verify that RHEL 9 has the rng-tools package installed with the following command: $ dnf list --installed rng-tools Example output: rng-tools.x86_64 6.14-2.git.b2b7934e.el9 If the "rng-tools" package is not installed, this is a finding.
Fix: F-61506r925509_fix
The rng-tools package can be installed with the following command: $ sudo dnf install rng-tools
- RMF Control
- CM-3
- Severity
- M
- CCI
- CCI-001744
- Version
- RHEL-09-215095
- Vuln IDs
-
- V-257842
- Rule IDs
-
- SV-257842r1044916_rule
Checks: C-61583r1044915_chk
Verify that RHEL 9 is configured to allow sending email notifications. Note: The "s-nail" package provides the "mail" command that is used to send email messages. Verify that the "s-nail" package is installed on the system: $ dnf list --installed s-nail s-nail.x86_64 14.9.22-6.el9 If "s-nail" package is not installed, this is a finding.
Fix: F-61507r925512_fix
The s-nail package can be installed with the following command: $ sudo dnf install s-nail
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-231010
- Vuln IDs
-
- V-257843
- Rule IDs
-
- SV-257843r991589_rule
Checks: C-61584r925514_chk
Verify that a separate file system/partition has been created for "/home" with the following command: $ mount | grep /home UUID=fba5000f-2ffa-4417-90eb-8c54ae74a32f on /home type ext4 (rw,nodev,nosuid,noexec,seclabel) If a separate entry for "/home" is not in use, this is a finding.
Fix: F-61508r925515_fix
Migrate the "/home" directory onto a separate file system/partition.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-231015
- Vuln IDs
-
- V-257844
- Rule IDs
-
- SV-257844r1044918_rule
Checks: C-61585r1044917_chk
Verify that a separate file system/partition has been created for "/tmp" with the following command: $ mount | grep /tmp /dev/mapper/rhel-tmp on /tmp type xfs (rw,nodev,nosuid,noexec,seclabel) If a separate entry for "/tmp" is not in use, this is a finding.
Fix: F-61509r925518_fix
Migrate the "/tmp" path onto a separate file system.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-09-231020
- Vuln IDs
-
- V-257845
- Rule IDs
-
- SV-257845r1044920_rule
Checks: C-61586r1044919_chk
Verify that a separate file system/partition has been created for "/var" with the following command: $ mount | grep /var /dev/mapper/rootvg-varlv on /var type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota) Note: Options displayed for mount may differ. If a separate entry for "/var" is not in use, this is a finding.
Fix: F-61510r925521_fix
Migrate the "/var" path onto a separate file system.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-09-231025
- Vuln IDs
-
- V-257846
- Rule IDs
-
- SV-257846r1044922_rule
Checks: C-61587r1044921_chk
Verify that a separate file system/partition has been created for "/var/log" with the following command: $ mount | grep /var/log /dev/mapper/rhel-var_log on /var/log type xfs (rw,nosuid,nodev,noexec,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k) Note: Options displayed for mount may differ. If a separate entry for "/var/log" is not in use, this is a finding.
Fix: F-61511r925524_fix
Migrate the "/var/log" path onto a separate file system.
- RMF Control
- AU-4
- Severity
- L
- CCI
- CCI-001849
- Version
- RHEL-09-231030
- Vuln IDs
-
- V-257847
- Rule IDs
-
- SV-257847r1044924_rule
Checks: C-61588r1044923_chk
Verify that a separate file system/partition has been created for the system audit data path with the following command: Note: /var/log/audit is used as the example as it is a common location. $ mount | grep /var/log/audit /dev/mapper/rootvg-varlogaudit on /var/log/audit type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota) Note: Options displayed for mount may differ. If no line is returned, this is a finding.
Fix: F-61512r925527_fix
Migrate the system audit data path onto a separate file system.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-231035
- Vuln IDs
-
- V-257848
- Rule IDs
-
- SV-257848r1044926_rule
Checks: C-61589r1044925_chk
Verify that a separate file system/partition has been created for "/var/tmp" with the following command: $ mount | grep /var/tmp /dev/mapper/rhel-tmp on /var/tmp type xfs (rw,nosuid,nodev,noexec,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k) Note: Options displayed for mount may differ. If a separate entry for "/var/tmp" is not in use, this is a finding.
Fix: F-61513r925530_fix
Migrate the "/var/tmp" path onto a separate file system.
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-000778
- Version
- RHEL-09-231040
- Vuln IDs
-
- V-257849
- Rule IDs
-
- SV-257849r1044928_rule
Checks: C-61590r1044927_chk
Note: If the autofs service is not installed, this requirement is Not Applicable. Verify that the RHEL 9 file system automount function has been disabled with the following command: $ systemctl is-enabled autofs masked If the returned value is not "masked", "disabled", or "Failed to get unit file state for autofs.service for autofs" and is not documented as an operational requirement with the information system security officer (ISSO), this is a finding.
Fix: F-61514r925533_fix
Configure RHEL 9 to disable the ability to automount devices. The autofs service can be disabled with the following command: $ sudo systemctl mask --now autofs.service
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231045
- Vuln IDs
-
- V-257850
- Rule IDs
-
- SV-257850r1044930_rule
Checks: C-61591r1044929_chk
Verify "/home" is mounted with the "nodev" option with the following command: Note: If a separate file system has not been created for the user home directories (user home directories are mounted under "/"), this is automatically a finding, as the "nodev" option cannot be used on the "/" system. $ mount | grep /home tmpfs on /home type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/home" file system is mounted without the "nodev" option, this is a finding.
Fix: F-61515r925536_fix
Modify "/etc/fstab" to use the "nodev" option on the "/home" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231050
- Vuln IDs
-
- V-257851
- Rule IDs
-
- SV-257851r1044932_rule
Checks: C-61592r1044931_chk
Verify "/home" is mounted with the "nosuid" option with the following command: Note: If a separate file system has not been created for the user home directories (user home directories are mounted under "/"), this is automatically a finding, as the "nosuid" option cannot be used on the "/" system. $ mount | grep /home tmpfs on /home type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/home" file system is mounted without the "nosuid" option, this is a finding.
Fix: F-61516r925539_fix
Modify "/etc/fstab" to use the "nosuid" option on the "/home" directory.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-231055
- Vuln IDs
-
- V-257852
- Rule IDs
-
- SV-257852r991589_rule
Checks: C-61593r925541_chk
Verify "/home" is mounted with the "noexec" option with the following command: Note: If a separate file system has not been created for the user home directories (user home directories are mounted under "/"), this is automatically a finding, as the "noexec" option cannot be used on the "/" system. $ mount | grep /home tmpfs on /home type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/home" file system is mounted without the "noexec" option, this is a finding.
Fix: F-61517r925542_fix
Modify "/etc/fstab" to use the "noexec" option on the "/home" directory.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-231065
- Vuln IDs
-
- V-257854
- Rule IDs
-
- SV-257854r1044934_rule
Checks: C-61595r1044933_chk
Note: If no NFS mounts are configured, this requirement is Not Applicable. Verify RHEL 9 has the "nodev" option configured for all NFS mounts with the following command: $ grep nfs /etc/fstab 192.168.22.2:/mnt/export /data nfs4 rw,nosuid,nodev,noexec,sync,soft,sec=krb5:krb5i:krb5p If the system is mounting file systems via NFS and the "nodev" option is missing, this is a finding.
Fix: F-61519r925548_fix
Update each NFS mounted file system to use the "nodev" option on file systems that are being imported via NFS.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-231070
- Vuln IDs
-
- V-257855
- Rule IDs
-
- SV-257855r1044936_rule
Checks: C-61596r1044935_chk
Note: If no NFS mounts are configured, this requirement is Not Applicable. Verify RHEL 9 has the "noexec" option configured for all NFS mounts with the following command: $ grep nfs /etc/fstab 192.168.22.2:/mnt/export /data nfs4 rw,nosuid,nodev,noexec,sync,soft,sec=krb5:krb5i:krb5p If the system is mounting file systems via NFS and the "noexec" option is missing, this is a finding.
Fix: F-61520r925551_fix
Update each NFS mounted file system to use the "noexec" option on file systems that are being imported via NFS.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-231075
- Vuln IDs
-
- V-257856
- Rule IDs
-
- SV-257856r1044938_rule
Checks: C-61597r1044937_chk
Note: If no NFS mounts are configured, this requirement is Not Applicable. Verify RHEL 9 has the "nosuid" option configured for all NFS mounts with the following command: $ grep nfs /etc/fstab 192.168.22.2:/mnt/export /data nfs4 rw,nosuid,nodev,noexec,sync,soft,sec=krb5:krb5i:krb5p If the system is mounting file systems via NFS and the "nosuid" option is missing, this is a finding.
Fix: F-61521r925554_fix
Update each NFS mounted file system to use the "nosuid" option on file systems that are being imported via NFS.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-231080
- Vuln IDs
-
- V-257857
- Rule IDs
-
- SV-257857r991589_rule
Checks: C-61598r925556_chk
Verify file systems that are used for removable media are mounted with the "noexec" option with the following command: $ more /etc/fstab UUID=2bc871e4-e2a3-4f29-9ece-3be60c835222 /mnt/usbflash vfat noauto,owner,ro,nosuid,nodev,noexec 0 0 If a file system found in "/etc/fstab" refers to removable media and it does not have the "noexec" option set, this is a finding.
Fix: F-61522r925557_fix
Configure the "/etc/fstab" to use the "noexec" option on file systems that are associated with removable media.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-231085
- Vuln IDs
-
- V-257858
- Rule IDs
-
- SV-257858r991589_rule
Checks: C-61599r925559_chk
Verify file systems that are used for removable media are mounted with the "nodev" option with the following command: $ more /etc/fstab UUID=2bc871e4-e2a3-4f29-9ece-3be60c835222 /mnt/usbflash vfat noauto,owner,ro,nosuid,nodev,noexec 0 0 If a file system found in "/etc/fstab" refers to removable media and it does not have the "nodev" option set, this is a finding.
Fix: F-61523r925560_fix
Configure the "/etc/fstab" to use the "nodev" option on file systems that are associated with removable media.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-231090
- Vuln IDs
-
- V-257859
- Rule IDs
-
- SV-257859r991589_rule
Checks: C-61600r925562_chk
Verify file systems that are used for removable media are mounted with the "nosuid" option with the following command: $ more /etc/fstab UUID=2bc871e4-e2a3-4f29-9ece-3be60c835222 /mnt/usbflash vfat noauto,owner,ro,nosuid,nodev,noexec 0 0 If a file system found in "/etc/fstab" refers to removable media and it does not have the "nosuid" option set, this is a finding.
Fix: F-61524r925563_fix
Configure the "/etc/fstab" to use the "nosuid" option on file systems that are associated with removable media.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231095
- Vuln IDs
-
- V-257860
- Rule IDs
-
- SV-257860r1044940_rule
Checks: C-61601r1044939_chk
Verify that the "/boot" mount point has the "nodev" option with the following command: $ mount | grep '\s/boot\s' /dev/sda1 on /boot type xfs (rw,nodev,relatime,seclabel,attr2) If the "/boot" file system does not have the "nodev" option set, this is a finding.
Fix: F-61525r925566_fix
Modify "/etc/fstab" to use the "nodev" option on the "/boot" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231100
- Vuln IDs
-
- V-257861
- Rule IDs
-
- SV-257861r1044941_rule
Checks: C-61602r1014833_chk
Verify the /boot directory is mounted with the "nosuid" option with the following command: $ mount | grep '\s/boot\s' /dev/sda1 on /boot type xfs (rw,nosuid,relatime,seclabe,attr2,inode64,noquota) If the /boot file system does not have the "nosuid" option set, this is a finding.
Fix: F-61526r925569_fix
Modify "/etc/fstab" to use the "nosuid" option on the "/boot" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231105
- Vuln IDs
-
- V-257862
- Rule IDs
-
- SV-257862r1134908_rule
Checks: C-61603r1134907_chk
Note: For systems that use BIOS, this requirement is not applicable. Verify the /boot/efi directory is mounted with the "nosuid" option with the following command: $ mount | grep '\s/boot/efi\s' /dev/sda1 on /boot/efi type vfat (rw,nosuid,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro) If the /boot/efi file system does not have the "nosuid" option set, this is a finding. Note: This control is not applicable to vfat file systems.
Fix: F-61527r1051264_fix
Modify "/etc/fstab" to use the "nosuid" option on the "/boot/efi" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231110
- Vuln IDs
-
- V-257863
- Rule IDs
-
- SV-257863r958804_rule
Checks: C-61604r925574_chk
Verify "/dev/shm" is mounted with the "nodev" option with the following command: $ mount | grep /dev/shm tmpfs on /dev/shm type tmpfs (rw,nodev,nosuid,noexec,seclabel) If the /dev/shm file system is mounted without the "nodev" option, this is a finding.
Fix: F-61528r925575_fix
Modify "/etc/fstab" to use the "nodev" option on the "/dev/shm" file system.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231115
- Vuln IDs
-
- V-257864
- Rule IDs
-
- SV-257864r1106304_rule
Checks: C-61605r1102006_chk
Verify "/dev/shm" is mounted with the "noexec" option with the following command: $ findmnt /dev/shm TARGET SOURCE FSTYPE OPTIONS /dev/shm tmpfs tmpfs rw,nodev,nosuid,noexec,seclabel 0 0 If the /dev/shm file system is mounted without the "noexec" option, this is a finding.
Fix: F-61529r1106303_fix
Configure "/dev/shm" to mount with the "noexec" option. Determine how /dev/shm is managed. $ systemctl status systemd-tmpfiles-setup If "active", systemd is managing temporary files (including /dev/shm). Otherwise, /etc/fstab is managing temporary files. If systemd is managing /dev/shm, use the following commands to add the noexec option to the mount: If /etc/tmpfiles.d does not exist, create it: $ sudo mkdir -p /etc/tmpfiles.d Add a configuration file with the appropriate options for /dev/shm as follows: $ echo 'd /dev/shm 1777 root root 10d' | sudo tee /etc/tmpfiles.d/dev-shm.conf $ echo 'x /dev/shm' | sudo tee -a /etc/tmpfiles.d/dev-shm.conf Apply new mount options with the following commands: $ sudo systemctl mask tmp.mount Created symlink /etc/systemd/system/tmp.mount ? /dev/null. $ echo 'tmpfs /dev/shm tmpfs rw,nodev,nosuid,noexec,seclabel 0 0' | sudo tee -a /etc/fstab $ sudo mount -o remount /dev/shm $ sudo systemctl daemon-reload If /dev/shm is managed by /etc/fstab, use the following commands to add the noexec option to the mount: $ sudo vi /etc/fstab Add or modify the following line: tmpfs /dev/shm tmpfs rw,nodev,nosuid,noexec,seclabel 0 0 Remount /dev/shm: $ sudo mount -o remount /dev/shm Note: Although systemd manages tmpfs mounts by default, administrators can override settings by adding entries to /etc/fstab. Either approach is acceptable.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231120
- Vuln IDs
-
- V-257865
- Rule IDs
-
- SV-257865r1044946_rule
Checks: C-61606r1044945_chk
Verify "/dev/shm" is mounted with the "nosuid" option with the following command: $ mount | grep /dev/shm tmpfs on /dev/shm type tmpfs (rw,nodev,nosuid,noexec,seclabel) If the /dev/shm file system is mounted without the "nosuid" option, this is a finding.
Fix: F-61530r925581_fix
Modify "/etc/fstab" to use the "nosuid" option on the "/dev/shm" file system.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231125
- Vuln IDs
-
- V-257866
- Rule IDs
-
- SV-257866r958804_rule
Checks: C-61607r925583_chk
Verify "/tmp" is mounted with the "nodev" option: $ mount | grep /tmp /dev/mapper/rhel-tmp on /tmp type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/tmp" file system is mounted without the "nodev" option, this is a finding.
Fix: F-61531r925584_fix
Modify "/etc/fstab" to use the "nodev" option on the "/tmp" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231130
- Vuln IDs
-
- V-257867
- Rule IDs
-
- SV-257867r958804_rule
Checks: C-61608r925586_chk
Verify "/tmp" is mounted with the "noexec" option: $ mount | grep /tmp /dev/mapper/rhel-tmp on /tmp type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/tmp" file system is mounted without the "noexec" option, this is a finding.
Fix: F-61532r925587_fix
Modify "/etc/fstab" to use the "noexec" option on the "/tmp" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231135
- Vuln IDs
-
- V-257868
- Rule IDs
-
- SV-257868r958804_rule
Checks: C-61609r925589_chk
Verify "/tmp" is mounted with the "nosuid" option: $ mount | grep /tmp /dev/mapper/rhel-tmp on /tmp type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/tmp" file system is mounted without the "nosuid" option, this is a finding.
Fix: F-61533r925590_fix
Modify "/etc/fstab" to use the "nosuid" option on the "/tmp" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231140
- Vuln IDs
-
- V-257869
- Rule IDs
-
- SV-257869r1102009_rule
Checks: C-61610r925592_chk
Verify "/var" is mounted with the "nodev" option: $ mount | grep /var /dev/mapper/rhel-var on /var type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/var" file system is mounted without the "nodev" option, this is a finding.
Fix: F-61534r925593_fix
Modify "/etc/fstab" to use the "nodev" option on the "/var" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231145
- Vuln IDs
-
- V-257870
- Rule IDs
-
- SV-257870r958804_rule
Checks: C-61611r925595_chk
Verify "/var/log" is mounted with the "nodev" option: $ mount | grep /var/log /dev/mapper/rhel-var-log on /var/log type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/var/log" file system is mounted without the "nodev" option, this is a finding.
Fix: F-61535r925596_fix
Modify "/etc/fstab" to use the "nodev" option on the "/var/log" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231150
- Vuln IDs
-
- V-257871
- Rule IDs
-
- SV-257871r958804_rule
Checks: C-61612r925598_chk
Verify "/var/log" is mounted with the "noexec" option: $ mount | grep /var/log /dev/mapper/rhel-var-log on /var/log type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/var/log" file system is mounted without the "noexec" option, this is a finding.
Fix: F-61536r925599_fix
Modify "/etc/fstab" to use the "noexec" option on the "/var/log" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231155
- Vuln IDs
-
- V-257872
- Rule IDs
-
- SV-257872r958804_rule
Checks: C-61613r925601_chk
Verify "/var/log" is mounted with the "nosuid" option: $ mount | grep /var/log /dev/mapper/rhel-var-log on /var/log type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/var/log" file system is mounted without the "nosuid" option, this is a finding.
Fix: F-61537r925602_fix
Modify "/etc/fstab" to use the "nosuid" option on the "/var/log" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231160
- Vuln IDs
-
- V-257873
- Rule IDs
-
- SV-257873r958804_rule
Checks: C-61614r925604_chk
Verify "/var/log/audit" is mounted with the "nodev" option: $ mount | grep /var/log/audit /dev/mapper/rhel-var-log-audit on /var/log/audit type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/var/log/audit" file system is mounted without the "nodev" option, this is a finding.
Fix: F-61538r925605_fix
Modify "/etc/fstab" to use the "nodev" option on the "/var/log/audit" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231165
- Vuln IDs
-
- V-257874
- Rule IDs
-
- SV-257874r958804_rule
Checks: C-61615r925607_chk
Verify "/var/log/audit" is mounted with the "noexec" option: $ mount | grep /var/log/audit /dev/mapper/rhel-var-log-audit on /var/log/audit type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/var/log/audit" file system is mounted without the "noexec" option, this is a finding.
Fix: F-61539r925608_fix
Modify "/etc/fstab" to use the "noexec" option on the "/var/log/audit" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231170
- Vuln IDs
-
- V-257875
- Rule IDs
-
- SV-257875r958804_rule
Checks: C-61616r925610_chk
Verify "/var/log/audit" is mounted with the "nosuid" option: $ mount | grep /var/log/audit /dev/mapper/rhel-var-log-audit on /var/log/audit type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/var/log/audit" file system is mounted without the "nosuid" option, this is a finding.
Fix: F-61540r925611_fix
Modify "/etc/fstab" to use the "nosuid" option on the "/var/log/audit" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231175
- Vuln IDs
-
- V-257876
- Rule IDs
-
- SV-257876r958804_rule
Checks: C-61617r925613_chk
Verify "/var/tmp" is mounted with the "nodev" option: $ mount | grep /var/tmp /dev/mapper/rhel-var-tmp on /var/tmp type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/var/tmp" file system is mounted without the "nodev" option, this is a finding.
Fix: F-61541r925614_fix
Modify "/etc/fstab" to use the "nodev" option on the "/var/tmp" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231180
- Vuln IDs
-
- V-257877
- Rule IDs
-
- SV-257877r958804_rule
Checks: C-61618r925616_chk
Verify "/var/tmp" is mounted with the "noexec" option: $ mount | grep /var/tmp /dev/mapper/rhel-var-tmp on /var/tmp type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/var/tmp" file system is mounted without the "noexec" option, this is a finding.
Fix: F-61542r925617_fix
Modify "/etc/fstab" to use the "noexec" option on the "/var/tmp" directory.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-231185
- Vuln IDs
-
- V-257878
- Rule IDs
-
- SV-257878r958804_rule
Checks: C-61619r925619_chk
Verify "/var/tmp" is mounted with the "nosuid" option: $ mount | grep /var/tmp /dev/mapper/rhel-var-tmp on /var/tmp type xfs (rw,nodev,nosuid,noexec,seclabel) If the "/var/tmp" file system is mounted without the "nosuid" option, this is a finding.
Fix: F-61543r925620_fix
Modify "/etc/fstab" to use the "nosuid" option on the "/var/tmp" directory.
- RMF Control
- SC-28
- Severity
- H
- CCI
- CCI-001199
- Version
- RHEL-09-231190
- Vuln IDs
-
- V-257879
- Rule IDs
-
- SV-257879r1045454_rule
Checks: C-61620r1045453_chk
Note: If there is a documented and approved reason for not having data-at-rest encryption at the operating system level, such as encryption provided by a hypervisor or a disk storage array in a virtualized environment, this requirement is Not Applicable. Verify RHEL 9 prevents unauthorized disclosure or modification of all information requiring at-rest protection by using disk encryption. Note: If there is a documented and approved reason for not having data-at-rest encryption, this requirement is Not Applicable. List all block devices in tree-like format: $ sudo lsblk --tree NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS zram0 252:0 0 8G 0 disk [SWAP] nvme0n1 259:0 0 476.9G 0 disk |-nvme0n1p1 259:1 0 1G 0 part /boot/efi |-nvme0n1p2 259:2 0 1G 0 part /boot |-nvme0n1p3 259:3 0 474.9G 0 part |-luks-<encrypted_id> 253:0 0 474.9G 0 crypt |-rhel-root 253:1 0 16G 0 lvm / |-rhel-varcache 253:2 0 8G 0 lvm /var/cache |-rhel-vartmp 253:3 0 4G 0 lvm /var/tmp |-rhel-varlog 253:4 0 4G 0 lvm /var/log |-rhel-home 253:5 0 64G 0 lvm /home |-rhel-varlogaudit 253:6 0 4G 0 lvm /var/log/audit Verify that the block device tree for each persistent filesystem, excluding the /boot and /boot/efi filesystems, has at least one parent block device of type "crypt", and that the encryption type is LUKS: $ sudo cryptsetup status luks-b74f6910-2547-4399-86b2-8b0252d926d7 /dev/mapper/luks-b74f6910-2547-4399-86b2-8b0252d926d7 is active and is in use. type: LUKS2 cipher: aes-xts-plain64 keysize: 512 bits key location: keyring device: /dev/nvme0n1p3 sector size: 512 offset: 32768 sectors size: 995986063 sectors mode: read/write If there are persistent filesystems (other than /boot or /boot/efi) whose block device trees do not have a crypt block device of type LUKS, ask the administrator to indicate how persistent filesystems are encrypted. If there is no evidence that persistent filesystems are encrypted, this is a finding.
Fix: F-61544r925623_fix
Configure RHEL 9 to prevent unauthorized modification of all information at rest by using disk encryption. Encrypting a partition in an already installed system is more difficult, because existing partitions will need to be resized and changed. To encrypt an entire partition, dedicate a partition for encryption in the partition layout.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-09-231195
- Vuln IDs
-
- V-257880
- Rule IDs
-
- SV-257880r1044951_rule
Checks: C-61621r1044949_chk
Verify that RHEL 9 disables the ability to load the cramfs kernel module with the following command: $ grep -r cramfs /etc/modprobe.conf /etc/modprobe.d/* install cramfs /bin/false blacklist cramfs If the command does not return any output or the lines are commented out, and use of cramfs is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61545r1044950_fix
To configure the system to prevent the cramfs kernel module from being loaded, add the following lines to the file /etc/modprobe.d/blacklist.conf (or create blacklist.conf if it does not exist): install cramfs /bin/false blacklist cramfs
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-231200
- Vuln IDs
-
- V-257881
- Rule IDs
-
- SV-257881r991589_rule
Checks: C-61622r925628_chk
Verify all non-root local partitions are mounted with the "nodev" option with the following command: $ sudo mount | grep '^/dev\S* on /\S' | grep --invert-match 'nodev' If any output is produced, this is a finding.
Fix: F-61546r925629_fix
Configure the "/etc/fstab" to use the "nodev" option on all non-root local partitions.
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-09-232010
- Vuln IDs
-
- V-257882
- Rule IDs
-
- SV-257882r991560_rule
Checks: C-61623r925631_chk
Verify the system commands contained in the following directories have mode "755" or less permissive with the following command: $ sudo find -L /bin /sbin /usr/bin /usr/sbin /usr/libexec /usr/local/bin /usr/local/sbin -perm /022 -exec ls -l {} \; If any system commands are found to be group-writable or world-writable, this is a finding.
Fix: F-61547r925632_fix
Configure the system commands to be protected from unauthorized access. Run the following command, replacing "[FILE]" with any system command with a mode more permissive than "755". $ sudo chmod 755 [FILE]
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-09-232015
- Vuln IDs
-
- V-257883
- Rule IDs
-
- SV-257883r991560_rule
Checks: C-61624r925634_chk
Verify the system-wide shared library directories have mode "755" or less permissive with the following command: $ sudo find -L /lib /lib64 /usr/lib /usr/lib64 -perm /022 -type d -exec ls -l {} \; If any system-wide shared library file is found to be group-writable or world-writable, this is a finding.
Fix: F-61548r925635_fix
Configure the system-wide shared library directories (/lib, /lib64, /usr/lib and /usr/lib64) to be protected from unauthorized access. Run the following command, replacing "[DIRECTORY]" with any library directory with a mode more permissive than 755. $ sudo chmod 755 [DIRECTORY]
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-09-232020
- Vuln IDs
-
- V-257884
- Rule IDs
-
- SV-257884r1106306_rule
Checks: C-61625r1101927_chk
Verify the systemwide shared library files contained in the directories "/lib", "/lib64", "/usr/lib", and "/usr/lib64" have mode 0755 or less permissive. Check that the systemwide shared library files have mode 0755 or less permissive with the following command: $ sudo find /lib /lib64 /usr/lib /usr/lib64 -type f -name '*.so*' -perm /022 -exec stat -c "%n %a" {} + If any output is returned, this is a finding.
Fix: F-61549r1106305_fix
Configure the systemwide shared library files contained in the directories "/lib", "/lib64", "/usr/lib", and "/usr/lib64" to have mode 0755 or less permissive with the following command. $ sudo find /lib /lib64 /usr/lib /usr/lib64 -type f -name '*.so*' -perm /022 -exec chmod go-w {} +
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- RHEL-09-232025
- Vuln IDs
-
- V-257885
- Rule IDs
-
- SV-257885r1044953_rule
Checks: C-61626r1044952_chk
Verify that the "/var/log" directory has a mode of "0755" or less permissive with the following command: $ stat -c '%a %n' /var/log 755 /var/log If "/var/log" does not have a mode of "0755" or less permissive, this is a finding.
Fix: F-61550r925641_fix
Configure the "/var/log" directory to a mode of "0755" by running the following command: $ sudo chmod 0755 /var/log
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- RHEL-09-232030
- Vuln IDs
-
- V-257886
- Rule IDs
-
- SV-257886r1044955_rule
Checks: C-61627r1044954_chk
Verify the "/var/log/messages" file has a mode of "0640" or less permissive with the following command: $ stat -c '%a %n' /var/log/messages 600 /var/log/messages If "/var/log/messages" does not have a mode of "0640" or less permissive, this is a finding.
Fix: F-61551r925644_fix
Configure the "/var/log/messages" file to have a mode of "0640" by running the following command: $ sudo chmod 0640 /var/log/messages
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001493
- Version
- RHEL-09-232035
- Vuln IDs
-
- V-257887
- Rule IDs
-
- SV-257887r991557_rule
Checks: C-61628r925646_chk
Verify the audit tools have a mode of "0755" or less with the following command: $ stat -c "%a %n" /sbin/auditctl /sbin/aureport /sbin/ausearch /sbin/autrace /sbin/auditd /sbin/rsyslogd /sbin/augenrules 755 /sbin/auditctl 755 /sbin/aureport 755 /sbin/ausearch 750 /sbin/autrace 755 /sbin/auditd 755 /sbin/rsyslogd 755 /sbin/augenrules If any of the audit tool files have a mode more permissive than "0755", this is a finding.
Fix: F-61552r925647_fix
Configure the audit tools to have a mode of "0755" by running the following command: $ sudo chmod 0755 [audit_tool] Replace "[audit_tool]" with each audit tool that has a more permissive mode than 0755.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232040
- Vuln IDs
-
- V-257888
- Rule IDs
-
- SV-257888r1134910_rule
Checks: C-61629r1134909_chk
Run the following command to verify that the owner, group, and mode of cron configuration files and directories match the operating system defaults: $ rpm --verify cronie crontabs | awk '! ($2 == "c" && $1 ~ /^.\..\.\.\.\..\./) {print $0}' If the command returns any output, this is a finding. If there are findings, run the following command to determine what the permissions are: $ ls -ld /etc/cron* drwxr-xr-x. 2 root root 21 Oct 3 2024 /etc/cron.d drwxr-xr-x. 2 root root 6 May 1 09:03 /etc/cron.daily -rw-r--r--. 1 root root 0 Oct 3 2024 /etc/cron.deny drwxr-xr-x. 2 root root 22 Mar 5 12:49 /etc/cron.hourly drwxr-xr-x. 2 root root 6 Mar 23 2022 /etc/cron.monthly -rw-r--r--. 1 root root 451 Mar 23 2022 /etc/crontab drwxr-xr-x. 2 root root 6 Mar 23 2022 /etc/cron.weekly
Fix: F-61553r1069377_fix
Run the following commands to restore the permissions of cron configuration files and directories to the operating system defaults: $ sudo dnf reinstall cronie crontabs $ rpm --setugids cronie crontabs $ rpm --setperms cronie crontabs
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232045
- Vuln IDs
-
- V-257889
- Rule IDs
-
- SV-257889r1044959_rule
Checks: C-61630r1044958_chk
Verify that all local initialization files have a mode of "0740" or less permissive with the following command: Note: The example will be for the "bingwa" user, who has a home directory of "/home/bingwa". $ find /home/bingwa/.[^.]* -maxdepth 0 -perm -740 -exec stat -c "%a %n" {} \; | more 755 /home/bingwa/.somepermissivefile If any local initialization files are returned, this indicates a mode more permissive than "0740", and this is a finding.
Fix: F-61554r925653_fix
Set the mode of the local initialization files to "0740" with the following command: Note: The example will be for the wadea user, who has a home directory of "/home/wadea". $ sudo chmod 0740 /home/wadea/.<INIT_FILE>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232050
- Vuln IDs
-
- V-257890
- Rule IDs
-
- SV-257890r1044961_rule
Checks: C-61631r1044960_chk
Verify the assigned home directory of all local interactive users has a mode of "0750" or less permissive with the following command: Note: This may miss interactive users that have been assigned a privileged user identifier (UID). Evidence of interactive use may be obtained from a number of log files containing system logon information. $ stat -L -c '%a %n' $(awk -F: '($3>=1000)&&($7 !~ /nologin/){print $6}' /etc/passwd) 2>/dev/null 700 /home/bingwa If home directories referenced in "/etc/passwd" do not have a mode of "0750" or less permissive, this is a finding.
Fix: F-61555r925656_fix
Change the mode of interactive user's home directories to "0750". To change the mode of a local interactive user's home directory, use the following command: Note: The example will be for the user "wadea". $ sudo chmod 0750 /home/wadea
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232055
- Vuln IDs
-
- V-257891
- Rule IDs
-
- SV-257891r991589_rule
Checks: C-61632r925658_chk
Verify that the "/etc/group" file has mode "0644" or less permissive with the following command: $ sudo stat -c "%a %n" /etc/group 644 /etc/group If a value of "0644" or less permissive is not returned, this is a finding.
Fix: F-61556r925659_fix
Change the mode of the file "/etc/group" to "0644" by running the following command: $ sudo chmod 0644 /etc/group
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232060
- Vuln IDs
-
- V-257892
- Rule IDs
-
- SV-257892r991589_rule
Checks: C-61633r925661_chk
Verify that the "/etc/group-" file has mode "0644" or less permissive with the following command: $ sudo stat -c "%a %n" /etc/group- 644 /etc/group- If a value of "0644" or less permissive is not returned, this is a finding.
Fix: F-61557r925662_fix
Change the mode of the file "/etc/group-" to "0644" by running the following command: $ sudo chmod 0644 /etc/group-
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232065
- Vuln IDs
-
- V-257893
- Rule IDs
-
- SV-257893r991589_rule
Checks: C-61634r925664_chk
Verify that the "/etc/gshadow" file has mode "0000" with the following command: $ sudo stat -c "%a %n" /etc/gshadow 0 /etc/gshadow If a value of "0" is not returned, this is a finding.
Fix: F-61558r925665_fix
Change the mode of the file "/etc/gshadow" to "0000" by running the following command: $ sudo chmod 0000 /etc/gshadow
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232070
- Vuln IDs
-
- V-257894
- Rule IDs
-
- SV-257894r991589_rule
Checks: C-61635r925667_chk
Verify that the "/etc/gshadow-" file has mode "0000" with the following command: $ sudo stat -c "%a %n" /etc/gshadow- 0 /etc/gshadow- If a value of "0" is not returned, this is a finding.
Fix: F-61559r925668_fix
Change the mode of the file "/etc/gshadow-" to "0000" by running the following command: $ sudo chmod 0000 /etc/gshadow-
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232075
- Vuln IDs
-
- V-257895
- Rule IDs
-
- SV-257895r991589_rule
Checks: C-61636r925670_chk
Verify that the "/etc/passwd" file has mode "0644" or less permissive with the following command: $ sudo stat -c "%a %n" /etc/passwd 644 /etc/passwd If a value of "0644" or less permissive is not returned, this is a finding.
Fix: F-61560r925671_fix
Change the mode of the file "/etc/passwd" to "0644" by running the following command: $ sudo chmod 0644 /etc/passwd
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232080
- Vuln IDs
-
- V-257896
- Rule IDs
-
- SV-257896r991589_rule
Checks: C-61637r925673_chk
Verify that the "/etc/passwd-" file has mode "0644" or less permissive with the following command: $ sudo stat -c "%a %n" /etc/passwd- 644 /etc/passwd- If a value of "0644" or less permissive is not returned, this is a finding.
Fix: F-61561r925674_fix
Change the mode of the file "/etc/passwd-" to "0644" by running the following command: $ sudo chmod 0644 /etc/passwd-
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232085
- Vuln IDs
-
- V-257897
- Rule IDs
-
- SV-257897r991589_rule
Checks: C-61638r925676_chk
Verify that the "/etc/shadow-" file has mode "0000" with the following command: $ sudo stat -c "%a %n" /etc/shadow- 0 /etc/shadow- If a value of "0" is not returned, this is a finding.
Fix: F-61562r925677_fix
Change the mode of the file "/etc/shadow-" to "0000" by running the following command: $ sudo chmod 0000 /etc/shadow-
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232090
- Vuln IDs
-
- V-257898
- Rule IDs
-
- SV-257898r991589_rule
Checks: C-61639r925679_chk
Verify the ownership of the "/etc/group" file with the following command: $ sudo stat -c "%U %n" /etc/group root /etc/group If "/etc/group" file does not have an owner of "root", this is a finding.
Fix: F-61563r925680_fix
Change the owner of the file /etc/group to root by running the following command: $ sudo chown root /etc/group
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232095
- Vuln IDs
-
- V-257899
- Rule IDs
-
- SV-257899r991589_rule
Checks: C-61640r925682_chk
Verify the group ownership of the "/etc/group" file with the following command: $ sudo stat -c "%G %n" /etc/group root /etc/group If "/etc/group" file does not have a group owner of "root", this is a finding.
Fix: F-61564r925683_fix
Change the group of the file /etc/group to root by running the following command: $ sudo chgrp root /etc/group
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232100
- Vuln IDs
-
- V-257900
- Rule IDs
-
- SV-257900r991589_rule
Checks: C-61641r925685_chk
Verify the ownership of the "/etc/group-" file with the following command: $ sudo stat -c "%U %n" /etc/group- root /etc/group- If "/etc/group-" file does not have an owner of "root", this is a finding.
Fix: F-61565r925686_fix
Change the owner of the file /etc/group- to root by running the following command: $ sudo chown root /etc/group-
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232105
- Vuln IDs
-
- V-257901
- Rule IDs
-
- SV-257901r991589_rule
Checks: C-61642r925688_chk
Verify the group ownership of the "/etc/group-" file with the following command: $ sudo stat -c "%G %n" /etc/group- root /etc/group- If "/etc/group-" file does not have a group owner of "root", this is a finding.
Fix: F-61566r925689_fix
Change the group of the file /etc/group- to root by running the following command: $ sudo chgrp root /etc/group-
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232110
- Vuln IDs
-
- V-257902
- Rule IDs
-
- SV-257902r991589_rule
Checks: C-61643r925691_chk
Verify the ownership of the "/etc/gshadow" file with the following command: $ sudo stat -c "%U %n" /etc/gshadow root /etc/gshadow If "/etc/gshadow" file does not have an owner of "root", this is a finding.
Fix: F-61567r925692_fix
Change the owner of the file /etc/gshadow to root by running the following command: $ sudo chown root /etc/gshadow
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232115
- Vuln IDs
-
- V-257903
- Rule IDs
-
- SV-257903r991589_rule
Checks: C-61644r925694_chk
Verify the group ownership of the "/etc/gshadow" file with the following command: $ sudo stat -c "%G %n" /etc/gshadow root /etc/gshadow If "/etc/gshadow" file does not have a group owner of "root", this is a finding.
Fix: F-61568r925695_fix
Change the group of the file /etc/gshadow to root by running the following command: $ sudo chgrp root /etc/gshadow
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232120
- Vuln IDs
-
- V-257904
- Rule IDs
-
- SV-257904r991589_rule
Checks: C-61645r925697_chk
Verify the ownership of the "/etc/gshadow-" file with the following command: $ sudo stat -c "%U %n" /etc/gshadow- root /etc/gshadow- If "/etc/gshadow-" file does not have an owner of "root", this is a finding.
Fix: F-61569r925698_fix
Change the owner of the file /etc/gshadow- to root by running the following command: $ sudo chown root /etc/gshadow-
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232125
- Vuln IDs
-
- V-257905
- Rule IDs
-
- SV-257905r991589_rule
Checks: C-61646r925700_chk
Verify the group ownership of the "/etc/gshadow-" file with the following command: $ sudo stat -c "%G %n" /etc/gshadow- root /etc/gshadow- If "/etc/gshadow-" file does not have a group owner of "root", this is a finding.
Fix: F-61570r925701_fix
Change the group of the file /etc/gshadow- to root by running the following command: $ sudo chgrp root /etc/gshadow-
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232130
- Vuln IDs
-
- V-257906
- Rule IDs
-
- SV-257906r991589_rule
Checks: C-61647r925703_chk
Verify the ownership of the "/etc/passwd" file with the following command: $ sudo stat -c "%U %n" /etc/passwd root /etc/passwd If "/etc/passwd" file does not have an owner of "root", this is a finding.
Fix: F-61571r925704_fix
Change the owner of the file /etc/passwd to root by running the following command: $ sudo chown root /etc/passwd
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232135
- Vuln IDs
-
- V-257907
- Rule IDs
-
- SV-257907r991589_rule
Checks: C-61648r925706_chk
Verify the group ownership of the "/etc/passwd" file with the following command: $ sudo stat -c "%G %n" /etc/passwd root /etc/passwd If "/etc/passwd" file does not have a group owner of "root", this is a finding.
Fix: F-61572r925707_fix
Change the group of the file /etc/passwd to root by running the following command: $ sudo chgrp root /etc/passwd
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232140
- Vuln IDs
-
- V-257908
- Rule IDs
-
- SV-257908r991589_rule
Checks: C-61649r925709_chk
Verify the ownership of the "/etc/passwd-" file with the following command: $ sudo stat -c "%U %n" /etc/passwd- root /etc/passwd- If "/etc/passwd-" file does not have an owner of "root", this is a finding.
Fix: F-61573r925710_fix
Change the owner of the file /etc/passwd- to root by running the following command: $ sudo chown root /etc/passwd-
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232145
- Vuln IDs
-
- V-257909
- Rule IDs
-
- SV-257909r991589_rule
Checks: C-61650r925712_chk
Verify the group ownership of the "/etc/passwd-" file with the following command: $ sudo stat -c "%G %n" /etc/passwd- root /etc/passwd- If "/etc/passwd-" file does not have a group owner of "root", this is a finding.
Fix: F-61574r925713_fix
Change the group of the file /etc/passwd- to root by running the following command: $ sudo chgrp root /etc/passwd-
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232150
- Vuln IDs
-
- V-257910
- Rule IDs
-
- SV-257910r991589_rule
Checks: C-61651r925715_chk
Verify the ownership of the "/etc/shadow" file with the following command: $ sudo stat -c "%U %n" /etc/shadow root /etc/shadow If "/etc/shadow" file does not have an owner of "root", this is a finding.
Fix: F-61575r925716_fix
Change the owner of the file /etc/shadow to root by running the following command: $ sudo chown root /etc/shadow
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232155
- Vuln IDs
-
- V-257911
- Rule IDs
-
- SV-257911r991589_rule
Checks: C-61652r925718_chk
Verify the group ownership of the "/etc/shadow" file with the following command: $ sudo stat -c "%G %n" /etc/shadow root /etc/shadow If "/etc/shadow" file does not have a group owner of "root", this is a finding.
Fix: F-61576r925719_fix
Change the group of the file /etc/shadow to root by running the following command: $ sudo chgrp root /etc/shadow
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232160
- Vuln IDs
-
- V-257912
- Rule IDs
-
- SV-257912r991589_rule
Checks: C-61653r925721_chk
Verify the ownership of the "/etc/shadow-" file with the following command: $ sudo stat -c "%U %n" /etc/shadow- root /etc/shadow- If "/etc/shadow-" file does not have an owner of "root", this is a finding.
Fix: F-61577r925722_fix
Change the owner of the file /etc/shadow- to root by running the following command: $ sudo chown root /etc/shadow-
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232165
- Vuln IDs
-
- V-257913
- Rule IDs
-
- SV-257913r991589_rule
Checks: C-61654r925724_chk
Verify the group ownership of the "/etc/shadow-" file with the following command: $ sudo stat -c "%G %n" /etc/shadow- root /etc/shadow- If "/etc/shadow-" file does not have a group owner of "root", this is a finding.
Fix: F-61578r925725_fix
Change the group of the file /etc/shadow- to root by running the following command: $ sudo chgrp root /etc/shadow-
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- RHEL-09-232170
- Vuln IDs
-
- V-257914
- Rule IDs
-
- SV-257914r1044969_rule
Checks: C-61655r1044968_chk
Verify the "/var/log" directory is owned by root with the following command: $ stat -c "%U %n" /var/log root /var/log If "/var/log" does not have an owner of "root", this is a finding.
Fix: F-61579r925728_fix
Configure the owner of the directory "/var/log" to "root" by running the following command: $ sudo chown root /var/log
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- RHEL-09-232175
- Vuln IDs
-
- V-257915
- Rule IDs
-
- SV-257915r1044971_rule
Checks: C-61656r1044970_chk
Verify the "/var/log" directory is group-owned by root with the following command: $ stat -c "%G %n" /var/log root /var/log If "/var/log" does not have a group owner of "root", this is a finding.
Fix: F-61580r925731_fix
Configure the group owner of the directory "/var/log" to "root" by running the following command: $ sudo chgrp root /var/log
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- RHEL-09-232180
- Vuln IDs
-
- V-257916
- Rule IDs
-
- SV-257916r1101916_rule
Checks: C-61657r1101915_chk
Verify the "/var/log/messages" file is owned by root with the following command: $ stat -c "%U %n" /var/log/messages root /var/log/messages If "/var/log/messages" does not have an owner of "root", this is a finding.
Fix: F-61581r925734_fix
Change the owner of the "/var/log/messages" file to "root" by running the following command: $ sudo chown root /var/log/messages
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- RHEL-09-232185
- Vuln IDs
-
- V-257917
- Rule IDs
-
- SV-257917r1101914_rule
Checks: C-61658r1101913_chk
Verify the "/var/log/messages" file is group-owned by root with the following command: $ stat -c "%G %n" /var/log/messages root /var/log/messages If "/var/log/messages" does not have a group owner of "root", this is a finding.
Fix: F-61582r925737_fix
Change the group owner of the "/var/log/messages" file to "root" by running the following command: $ sudo chgrp root /var/log/messages
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-09-232190
- Vuln IDs
-
- V-257918
- Rule IDs
-
- SV-257918r1044977_rule
Checks: C-61659r1044976_chk
Verify the system commands contained in the following directories are owned by "root" with the following command: $ sudo find -L /bin /sbin /usr/bin /usr/sbin /usr/libexec /usr/local/bin /usr/local/sbin ! -user root -exec stat -L -c "%U %n" {} \; If any system commands are found to not be owned by root, this is a finding.
Fix: F-61583r925740_fix
Configure the system commands to be protected from unauthorized access. Run the following command, replacing "[FILE]" with any system command file not owned by "root". $ sudo chown root [FILE]
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-09-232195
- Vuln IDs
-
- V-257919
- Rule IDs
-
- SV-257919r1044979_rule
Checks: C-61660r1044978_chk
Verify the system commands contained in the following directories are group-owned by "root", or a required system account, with the following command: $ sudo find -L /bin /sbin /usr/bin /usr/sbin /usr/libexec /usr/local/bin /usr/local/sbin ! -group root -exec stat -L -c "%G %n" {} \; If any system commands are returned and are not group-owned by a required system account, this is a finding.
Fix: F-61584r925743_fix
Configure the system commands to be protected from unauthorized access. Run the following command, replacing "[FILE]" with any system command file not group-owned by "root" or a required system account. $ sudo chgrp root [FILE]
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-09-232200
- Vuln IDs
-
- V-257920
- Rule IDs
-
- SV-257920r1101926_rule
Checks: C-61661r1101924_chk
Verify the systemwide shared library files contained in the directories "/lib", "/lib64", "/usr/lib", and "/usr/lib64" are owned by root with the following command: $ sudo find /lib /lib64 /usr/lib /usr/lib64 -type f -name '*.so*' ! -user root -exec stat -c "%n %U" {} + If any output is returned, this is a finding.
Fix: F-61585r1101925_fix
Configure the systemwide shared library files contained in the directories "/lib", "/lib64", "/usr/lib", and "/usr/lib64" to be owned by root with the following command: $ sudo find /lib /lib64 /usr/lib /usr/lib64 -type f -name '*.so*' ! -user root -exec chown root {} +
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-09-232205
- Vuln IDs
-
- V-257921
- Rule IDs
-
- SV-257921r1106308_rule
Checks: C-61662r1101921_chk
Verify the systemwide shared library files contained in the directories "/lib", "/lib64", "/usr/lib", and "/usr/lib64" are group owned by root with the following command: $ sudo find /lib /lib64 /usr/lib /usr/lib64 -type f -name '*.so*' ! -group root -exec stat -c "%n %G" {} + If any output is returned, this is a finding.
Fix: F-61586r1106307_fix
Configure the systemwide shared library files contained in the directories "/lib", "/lib64", "/usr/lib", and "/usr/lib64" to be group owned by root with the following command: $ sudo find /lib /lib64 /usr/lib /usr/lib64 -type f -name '*.so*' ! -group root -exec chown :root {} +
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-09-232210
- Vuln IDs
-
- V-257922
- Rule IDs
-
- SV-257922r1044988_rule
Checks: C-61663r1044986_chk
Verify the systemwide shared library directories are owned by "root" with the following command: $ sudo find /lib /lib64 /usr/lib /usr/lib64 ! -user root -type d -exec stat -c "%U %n" {} \; If any systemwide shared library directory is not owned by "root", this is a finding.
Fix: F-61587r1044987_fix
Configure the systemwide shared library directories within (/lib, /lib64, /usr/lib and /usr/lib64) to be protected from unauthorized access. Run the following command, replacing "[DIRECTORY]" with any library directory not owned by "root". $ sudo chown root [DIRECTORY]
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-09-232215
- Vuln IDs
-
- V-257923
- Rule IDs
-
- SV-257923r1044991_rule
Checks: C-61664r1044989_chk
Verify the systemwide shared library directories are group-owned by "root" with the following command: $ sudo find /lib /lib64 /usr/lib /usr/lib64 ! -group root -type d -exec stat -c "%G %n" {} \; If any systemwide shared library directory is returned and is not group-owned by a required system account, this is a finding.
Fix: F-61588r1044990_fix
Configure the systemwide shared library directories (/lib, /lib64, /usr/lib and /usr/lib64) to be protected from unauthorized access. Run the following command, replacing "[DIRECTORY]" with any library directory not group-owned by "root". $ sudo chgrp root [DIRECTORY]
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001493
- Version
- RHEL-09-232220
- Vuln IDs
-
- V-257924
- Rule IDs
-
- SV-257924r991557_rule
Checks: C-61665r925757_chk
Verify the audit tools are owned by "root" with the following command: $ sudo stat -c "%U %n" /sbin/auditctl /sbin/aureport /sbin/ausearch /sbin/autrace /sbin/auditd /sbin/rsyslogd /sbin/augenrules root /sbin/auditctl root /sbin/aureport root /sbin/ausearch root /sbin/autrace root /sbin/auditd root /sbin/rsyslogd root /sbin/augenrules If any audit tools do not have an owner of "root", this is a finding.
Fix: F-61589r925758_fix
Configure the audit tools to be owned by "root" by running the following command: $ sudo chown root [audit_tool] Replace "[audit_tool]" with each audit tool not owned by "root".
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001493
- Version
- RHEL-09-232225
- Vuln IDs
-
- V-257925
- Rule IDs
-
- SV-257925r991557_rule
Checks: C-61666r925760_chk
Verify the audit tools are group owned by "root" with the following command: $ sudo stat -c "%G %n" /sbin/auditctl /sbin/aureport /sbin/ausearch /sbin/autrace /sbin/auditd /sbin/rsyslogd /sbin/augenrules root /sbin/auditctl root /sbin/aureport root /sbin/ausearch root /sbin/autrace root /sbin/auditd root /sbin/rsyslogd root /sbin/augenrules If any audit tools do not have a group owner of "root", this is a finding.
Fix: F-61590r925761_fix
Configure the audit tools to be group-owned by "root" by running the following command: $ sudo chgrp root [audit_tool] Replace "[audit_tool]" with each audit tool not group-owned by "root".
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232230
- Vuln IDs
-
- V-257926
- Rule IDs
-
- SV-257926r991589_rule
Checks: C-61667r925763_chk
Verify the ownership of all cron configuration files with the command: $ stat -c "%U %n" /etc/cron* root /etc/cron.d root /etc/cron.daily root /etc/cron.deny root /etc/cron.hourly root /etc/cron.monthly root /etc/crontab root /etc/cron.weekly If any crontab is not owned by root, this is a finding.
Fix: F-61591r925764_fix
Configure any cron configuration not owned by root with the following command: $ sudo chown root [cron config file]
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232235
- Vuln IDs
-
- V-257927
- Rule IDs
-
- SV-257927r991589_rule
Checks: C-61668r925766_chk
Verify the group ownership of all cron configuration files with the following command: $ stat -c "%G %n" /etc/cron* root /etc/cron.d root /etc/cron.daily root /etc/cron.deny root /etc/cron.hourly root /etc/cron.monthly root /etc/crontab root /etc/cron.weekly If any crontab is not group owned by root, this is a finding.
Fix: F-61592r925767_fix
Configure any cron configuration not group-owned by root with the following command: $ sudo chgrp root [cron config file]
- RMF Control
- SC-4
- Severity
- M
- CCI
- CCI-001090
- Version
- RHEL-09-232240
- Vuln IDs
-
- V-257928
- Rule IDs
-
- SV-257928r1044992_rule
Checks: C-61669r925769_chk
Verify that world writable directories are owned by root, a system account, or an application account with the following command. It will discover and print world-writable directories that are not owned by root. Run it once for each local partition [PART]: $ sudo find PART -xdev -type d -perm -0002 -uid +0 -print If there is output, this is a finding.
Fix: F-61593r925770_fix
Configure all public directories to be owned by root or a system account to prevent unauthorized and unintended information transferred via shared system resources. Set the owner of all public directories as root or a system account using the command, replace "[Public Directory]" with any directory path not owned by root or a system account: $ sudo chown root [Public Directory]
- RMF Control
- SC-4
- Severity
- M
- CCI
- CCI-001090
- Version
- RHEL-09-232245
- Vuln IDs
-
- V-257929
- Rule IDs
-
- SV-257929r1117267_rule
Checks: C-61670r925772_chk
Verify that all world-writable directories have the sticky bit set. Determine if all world-writable directories have the sticky bit set by running the following command: $ sudo find / -type d \( -perm -0002 -a ! -perm -1000 \) -print 2>/dev/null drwxrwxrwt 7 root root 4096 Jul 26 11:19 /tmp If any of the returned directories are world-writable and do not have the sticky bit set, this is a finding.
Fix: F-61594r925773_fix
Configure all world-writable directories to have the sticky bit set to prevent unauthorized and unintended information transferred via shared system resources. Set the sticky bit on all world-writable directories using the command, replace "[World-Writable Directory]" with any directory path missing the sticky bit: $ chmod a+t [World-Writable Directory]
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232250
- Vuln IDs
-
- V-257930
- Rule IDs
-
- SV-257930r991589_rule
Checks: C-61671r925775_chk
Verify all local files and directories on RHEL 9 have a valid group with the following command: $ df --local -P | awk {'if (NR!=1) print $6'} | sudo xargs -I '{}' find '{}' -xdev -nogroup If any files on the system do not have an assigned group, this is a finding.
Fix: F-61595r925776_fix
Either remove all files and directories from RHEL 9 that do not have a valid group, or assign a valid group to all files and directories on the system with the "chgrp" command: $ sudo chgrp <group> <file>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232255
- Vuln IDs
-
- V-257931
- Rule IDs
-
- SV-257931r991589_rule
Checks: C-61672r925778_chk
Verify all local files and directories on RHEL 9 have a valid owner with the following command: $ df --local -P | awk {'if (NR!=1) print $6'} | sudo xargs -I '{}' find '{}' -xdev -nouser If any files on the system do not have an assigned owner, this is a finding.
Fix: F-61596r925779_fix
Either remove all files and directories from the system that do not have a valid user, or assign a valid user to all unowned files and directories on RHEL 9 with the "chown" command: $ sudo chown <user> <file>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232260
- Vuln IDs
-
- V-257932
- Rule IDs
-
- SV-257932r1014838_rule
Checks: C-61673r925781_chk
Verify that all system device files are correctly labeled to prevent unauthorized modification. List all device files on the system that are incorrectly labeled with the following commands: Note: Device files are normally found under "/dev", but applications may place device files in other directories and may necessitate a search of the entire system. # find /dev -context *:device_t:* \( -type c -o -type b \) -printf "%p %Z\n" # find /dev -context *:unlabeled_t:* \( -type c -o -type b \) -printf "%p %Z\n" Note: There are device files, such as "/dev/vmci", that are used when the operating system is a host virtual machine. They will not be owned by a user on the system and require the "device_t" label to operate. These device files are not a finding. If there is output from either of these commands, other than already noted, this is a finding.
Fix: F-61597r1014837_fix
Restore the SELinux policy for the affected device file from the system policy database using the following command: $ sudo restorecon -v <device_path> Substitute "<device_path>" with the path to the affected device file (from the output of the previous commands). An example device file path would be "/dev/ttyUSB0". If the output of the above command does not indicate that the device was relabeled to a more specific SELinux type label, then the SELinux policy of the system must be updated with more specific policy for the device class specified. If a package was used to install support for a device class, that package could be reinstalled using the following command: $ sudo dnf reinstall <package_name> If a package was not used to install the SELinux policy for a given device class, then it must be generated manually and provide specific type labels.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-232270
- Vuln IDs
-
- V-257934
- Rule IDs
-
- SV-257934r991589_rule
Checks: C-61675r925787_chk
Verify that the "/etc/shadow" file has mode "0000" with the following command: $ sudo stat -c "%a %n" /etc/shadow 0 /etc/shadow If a value of "0" is not returned, this is a finding.
Fix: F-61599r925788_fix
Change the mode of the file "/etc/shadow" to "0000" by running the following command: $ sudo chmod 0000 /etc/shadow
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- RHEL-09-251010
- Vuln IDs
-
- V-257935
- Rule IDs
-
- SV-257935r1044994_rule
Checks: C-61676r1044993_chk
Run the following command to determine if the firewalld package is installed with the following command: $ dnf list --installed firewalld Example output: firewalld.noarch 1.0.0-4.el9 If the "firewall" package is not installed, this is a finding.
Fix: F-61600r925791_fix
To install the "firewalld" package run the following command: $ sudo dnf install firewalld
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- RHEL-09-251015
- Vuln IDs
-
- V-257936
- Rule IDs
-
- SV-257936r1044995_rule
Checks: C-61677r925793_chk
Verify that "firewalld" is active with the following command: $ systemctl is-active firewalld active If the firewalld service is not active, this is a finding.
Fix: F-61601r925794_fix
To enable the firewalld service run the following command: $ sudo systemctl enable --now firewalld
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-251020
- Vuln IDs
-
- V-257937
- Rule IDs
-
- SV-257937r1106310_rule
Checks: C-61678r1106309_chk
Verify the RHEL 9 firewalld is configured to employ a deny-all, allow-by-exception policy for allowing connections to other systems with the following commands: Ensure firewalld is running: $ sudo firewall-cmd --state running Identify active zones: $ sudo firewall-cmd --get-active-zones drop interfaces: ens192 Check what rules are applied in that zone: $ sudo firewall-cmd --list-all --zone=$(firewall-cmd --get-default-zone) drop (active) target: DROP icmp-block-inversion: no interfaces: ens192 sources: services: ssh ports: protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: If no zones are active on the RHEL 9 interfaces or if runtime and permanent targets are set to a different option other than "DROP", this is a finding.
Fix: F-61602r1102092_fix
Configure the "firewalld" daemon to employ a deny-all, allow-by-exception policy with the following commands: Start by adding the exceptions that are required for mission functionality to the "drop" zone. If SSH access on port 22 is needed, for example, run the following: "sudo firewall-cmd --permanent --add-service=ssh --zone=drop" Reload the firewall rules to update the runtime configuration from the "--permanent" changes made above: $ sudo firewall-cmd --reload Set the default zone to the drop zone: $ sudo firewall-cmd --set-default-zone=drop Note: This is a runtime and permanent change. Add any interfaces to the newly modified "drop" zone: $ sudo firewall-cmd --permanent --zone=drop --change-interface=ens192 Reload the firewall rules for changes to take effect: $ sudo firewall-cmd --reload
- RMF Control
- SC-5
- Severity
- M
- CCI
- CCI-002385
- Version
- RHEL-09-251030
- Vuln IDs
-
- V-257939
- Rule IDs
-
- SV-257939r1044997_rule
Checks: C-61680r925802_chk
Verify "nftables" is configured to allow rate limits on any connection to the system with the following command: $ sudo grep -i firewallbackend /etc/firewalld/firewalld.conf # FirewallBackend FirewallBackend=nftables If the "nftables" is not set as the "FirewallBackend" default, this is a finding.
Fix: F-61604r1044996_fix
Configure "nftables" to be the default "firewallbackend" for "firewalld" by adding or editing the following line in "/etc/firewalld/firewalld.conf": FirewallBackend=nftables Establish rate-limiting rules based on organization-defined types of DoS attacks on impacted network interfaces.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- RHEL-09-251035
- Vuln IDs
-
- V-257940
- Rule IDs
-
- SV-257940r1106312_rule
Checks: C-61681r1106311_chk
Inspect the firewall configuration and running services to verify it is configured to prohibit or restrict the use of functions, ports, protocols, and/or services that are unnecessary or prohibited. Check which services are currently active with the following command: $ sudo firewall-cmd --list-all-zones | grep -e "active" -e "services" Ask the system administrator for the site or program Ports, Protocols, and Services Management Component Local Service Assessment (PPSM CLSA). Verify the services allowed by the firewall match the PPSM CLSA. If there are additional ports, protocols, or services that are not in the PPSM CLSA, or there are ports, protocols, or services that are prohibited by the PPSM CAL, this is a finding.
Fix: F-61605r925806_fix
Update the host's firewall settings and/or running services to comply with the PPSM CLSA for the site or program and the PPSM CAL. Then run the following command to load the newly created rule(s): $ sudo firewall-cmd --reload
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-251040
- Vuln IDs
-
- V-257941
- Rule IDs
-
- SV-257941r991589_rule
Checks: C-61682r925808_chk
Verify network interfaces are not in promiscuous mode with the following command: $ ip link | grep -i promisc If network interfaces are found on the system in promiscuous mode and their use has not been approved by the ISSO and documented, this is a finding.
Fix: F-61606r925809_fix
Configure network interfaces to turn off promiscuous mode unless approved by the ISSO and documented. Set the promiscuous mode of an interface to off with the following command: $ sudo ip link set dev <devicename> multicast off promisc off
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-251045
- Vuln IDs
-
- V-257942
- Rule IDs
-
- SV-257942r1106314_rule
Checks: C-61683r1101971_chk
Verify RHEL 9 enables hardening for the BPF JIT with the following commands: $ sudo sysctl net.core.bpf_jit_harden net.core.bpf_jit_harden = 2 If the returned line does not have a value of "2", or a line is not returned, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.core.bpf_jit_harden /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.core.bpf_jit_harden = 2 If "net.core.bpf_jit_harden" is not set to "2", is missing or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61607r1106313_fix
Configure RHEL 9 to enable hardening for the BPF JIT compiler by adding the following line to a file, in the "/etc/sysctl.d" directory: net.core.bpf_jit_harden = 2 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf The system configuration files must be reloaded for the changes to take effect. To reload the contents of the files, run the following command: $ sudo sysctl --system
- RMF Control
- Severity
- M
- CCI
- CCI-004923
- Version
- RHEL-09-252010
- Vuln IDs
-
- V-257943
- Rule IDs
-
- SV-257943r1045001_rule
Checks: C-61684r1045000_chk
Verify that RHEL 9 has the chrony package installed with the following command: $ dnf list --installed chrony Example output: chrony.x86_64 4.1-3.el9 If the "chrony" package is not installed, this is a finding.
Fix: F-61608r925815_fix
The chrony package can be installed with the following command: $ sudo dnf install chrony
- RMF Control
- Severity
- M
- CCI
- CCI-004923
- Version
- RHEL-09-252015
- Vuln IDs
-
- V-257944
- Rule IDs
-
- SV-257944r1038944_rule
Checks: C-61685r925817_chk
Verify the chronyd service is active with the following command: $ systemctl is-active chronyd active If the chronyd service is not active, this is a finding.
Fix: F-61609r925818_fix
To enable the chronyd service run the following command: $ sudo systemctl enable --now chronyd
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-001890
- Version
- RHEL-09-252020
- Vuln IDs
-
- V-257945
- Rule IDs
-
- SV-257945r1038944_rule
Checks: C-61686r925820_chk
Verify RHEL 9 is securely comparing internal information system clocks at least every 24 hours with an NTP server with the following commands: $ sudo grep maxpoll /etc/chrony.conf server 0.us.pool.ntp.mil iburst maxpoll 16 If the "maxpoll" option is set to a number greater than 16 or the line is commented out, this is a finding. Verify the "chrony.conf" file is configured to an authoritative DOD time source by running the following command: $ sudo grep -i server /etc/chrony.conf server 0.us.pool.ntp.mil If the parameter "server" is not set or is not set to an authoritative DOD time source, this is a finding.
Fix: F-61610r925821_fix
Configure RHEL 9 to securely compare internal information system clocks at least every 24 hours with an NTP server by adding/modifying the following line in the /etc/chrony.conf file. server [ntp.server.name] iburst maxpoll 16
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-09-252025
- Vuln IDs
-
- V-257946
- Rule IDs
-
- SV-257946r958480_rule
Checks: C-61687r925823_chk
Verify RHEL 9 disables the chrony daemon from acting as a server with the following command: $ grep -w port /etc/chrony.conf port 0 If the "port" option is not set to "0", is commented out, or is missing, this is a finding.
Fix: F-61611r925824_fix
Configure RHEL 9 to disable the chrony daemon from acting as a server by adding/modifying the following line in the /etc/chrony.conf file: port 0
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-09-252030
- Vuln IDs
-
- V-257947
- Rule IDs
-
- SV-257947r958480_rule
Checks: C-61688r925826_chk
Verify RHEL 9 disables network management of the chrony daemon with the following command: $ grep -w cmdport /etc/chrony.conf cmdport 0 If the "cmdport" option is not set to "0", is commented out, or is missing, this is a finding.
Fix: F-61612r925827_fix
Configure RHEL 9 to disable network management of the chrony daemon by adding/modifying the following line in the /etc/chrony.conf file: cmdport 0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-252035
- Vuln IDs
-
- V-257948
- Rule IDs
-
- SV-257948r1045004_rule
Checks: C-61689r1045002_chk
Note: If the system is running in a cloud platform and the cloud provider gives a single, highly available IP address for DNS configuration, this control is Not Applicable. Verify the name servers used by the system with the following command: $ grep nameserver /etc/resolv.conf nameserver 192.168.1.2 nameserver 192.168.1.3 If fewer than two lines are returned that are not commented out, this is a finding.
Fix: F-61613r1045003_fix
Configure the operating system to use two or more name servers for DNS resolution based on the DNS mode of the system. If the NetworkManager DNS mode is set to "none", add the following lines to "/etc/resolv.conf": nameserver [name server 1] nameserver [name server 2] Replace [name server 1] and [name server 2] with the IPs of two different DNS resolvers. If the NetworkManager DNS mode is set to "default", add two DNS servers to a NetworkManager connection using the following command: $ nmcli connection modify [connection name] ipv4.dns [name server 1],[name server 2] Replace [name server 1] and [name server 2] with the IPs of two different DNS resolvers. Replace [connection name] with a valid NetworkManager connection name on the system. Replace ipv4 with ipv6 if IPv6 DNS servers are used.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-252040
- Vuln IDs
-
- V-257949
- Rule IDs
-
- SV-257949r1134947_rule
Checks: C-61690r1134911_chk
Verify that RHEL 9 has a DNS mode configured in Network Manager. $ NetworkManager --print-config [main] dns=none If the dns key under main does not exist or is not set to "default", "none", or "systemd-resolved", this is a finding. Note: If RHEL 9 is configured to use a DNS resolver other than Network Manager, the configuration must be documented and approved by the information system security officer (ISSO).
Fix: F-61614r1134912_fix
Configure NetworkManager in RHEL 9 to use a DNS mode. In "/etc/NetworkManager/NetworkManager.conf", add the following line in the "[main]" section: dns = <dns processing mode> Where <dns processing mode> is default, none, or systemd-resolved. NetworkManager must be reloaded for the change to take effect. $ sudo systemctl reload NetworkManager
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-252045
- Vuln IDs
-
- V-257950
- Rule IDs
-
- SV-257950r1045006_rule
Checks: C-61691r1045005_chk
Verify that RHEL 9 does not have unauthorized IP tunnels configured. Determine if the "IPsec" service is active with the following command: $ systemctl is-active ipsec Inactive If the "IPsec" service is active, check for configured IPsec connections ("conn"), with the following command: $ sudo grep -rni conn /etc/ipsec.conf /etc/ipsec.d/ Verify any returned results are documented with the ISSO. If the IPsec tunnels are active and not approved, this is a finding.
Fix: F-61615r925836_fix
Remove all unapproved tunnels from the system, or document them with the ISSO.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-252050
- Vuln IDs
-
- V-257951
- Rule IDs
-
- SV-257951r1014843_rule
Checks: C-61692r1014842_chk
If postfix is not installed, this is Not Applicable. Verify RHEL 9 is configured to prevent unrestricted mail relaying with the following command: $ postconf -n smtpd_client_restrictions smtpd_client_restrictions = permit_mynetworks,reject If the "smtpd_client_restrictions" parameter contains any entries other than "permit_mynetworks" and "reject", and the additional entries have not been documented with the information system security officer (ISSO), this is a finding.
Fix: F-61616r925839_fix
Modify the postfix configuration file to restrict client connections to the local network with the following command: $ sudo postconf -e 'smtpd_client_restrictions = permit_mynetworks,reject'
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000139
- Version
- RHEL-09-252060
- Vuln IDs
-
- V-257953
- Rule IDs
-
- SV-257953r958424_rule
Checks: C-61694r925844_chk
Verify that the administrators are notified in the event of an audit processing failure. Check that the "/etc/aliases" file has a defined value for "root". $ sudo grep "postmaster:\s*root$" /etc/aliases If the command does not return a line, or the line is commented out, ask the system administrator to indicate how they and the information systems security officer (ISSO) are notified of an audit process failure. If there is no evidence of the proper personnel being notified of an audit processing failure, this is a finding.
Fix: F-61618r925845_fix
Configure a valid email address as an alias for the root account. Append the following line to "/etc/aliases": postmaster: root Then, run the following command: $ sudo newaliases
- RMF Control
- IA-7
- Severity
- M
- CCI
- CCI-000803
- Version
- RHEL-09-252065
- Vuln IDs
-
- V-257954
- Rule IDs
-
- SV-257954r1106315_rule
Checks: C-61695r1101930_chk
Note: If there is no operational need for Libreswan to be installed, this rule is not applicable. Verify that RHEL 9 libreswan service package is installed. Check that the libreswan service package is installed with the following command: $ dnf list --installed libreswan Example output: libreswan.x86_64 4.6-3.el9 If the "libreswan" package is not installed, this is a finding.
Fix: F-61619r925848_fix
Install the libreswan service (if it is not already installed) with the following command: $ sudo dnf install libreswan
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-09-252070
- Vuln IDs
-
- V-257955
- Rule IDs
-
- SV-257955r991589_rule
Checks: C-61696r925850_chk
Verify there are no "shosts.equiv" files on RHEL 9 with the following command: $ sudo find / -name shosts.equiv If a "shosts.equiv" file is found, this is a finding.
Fix: F-61620r925851_fix
Remove any found "shosts.equiv" files from the system. $ sudo rm /[path]/[to]/[file]/shosts.equiv
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-09-252075
- Vuln IDs
-
- V-257956
- Rule IDs
-
- SV-257956r991589_rule
Checks: C-61697r925853_chk
Verify there are no ".shosts" files on RHEL 9 with the following command: $ sudo find / -name .shosts If a ".shosts" file is found, this is a finding.
Fix: F-61621r925854_fix
Remove any found ".shosts" files from the system. $ sudo rm /[path]/[to]/[file]/.shosts
- RMF Control
- SC-5
- Severity
- M
- CCI
- CCI-001095
- Version
- RHEL-09-253010
- Vuln IDs
-
- V-257957
- Rule IDs
-
- SV-257957r1106317_rule
Checks: C-61698r1106316_chk
Verify RHEL 9 is configured to use IPv4 TCP syncookies. Determine if syncookies are used with the following command: Check the status of TCP syncookies. $ sudo sysctl net.ipv4.tcp_syncookies net.ipv4.tcp_syncookies = 1 Check that the configuration files are present to enable this kernel parameter. $ sudo grep -r kernel.dmesg_restrict /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:net.ipv4.tcp_syncookies = 1 If "net.ipv4.tcp_syncookies" is not set to "1", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61622r1101958_fix
Configure RHEL 9 to use TCP syncookies. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv4.tcp_syncookies = 1 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253015
- Vuln IDs
-
- V-257958
- Rule IDs
-
- SV-257958r1106319_rule
Checks: C-61699r1106318_chk
Verify RHEL 9 ignores IPv4 ICMP redirect messages. Check the value of the "accept_redirects" variables with the following command: $ sudo sysctl net.ipv4.conf.all.accept_redirects net.ipv4.conf.all.accept_redirects = 0 If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.conf.all.accept_redirects /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.all.accept_redirects = 0 If "net.ipv4.conf.all.accept_redirects" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61623r1101988_fix
Configure RHEL 9 to ignore IPv4 ICMP redirect messages. Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: net.ipv4.conf.all.accept_redirects = 0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253020
- Vuln IDs
-
- V-257959
- Rule IDs
-
- SV-257959r1102024_rule
Checks: C-61700r1102022_chk
Verify RHEL 9 does not accept IPv4 source-routed packets. Check the value of the accept source route variable with the following command: $ sudo sysctl net.ipv4.conf.all.accept_source_route net.ipv4.conf.all.accept_source_route = 0 If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.conf.all.accept_source_route /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.all.accept_source_route = 0 If "net.ipv4.conf.all.accept_source_route" is not set to "0", is missing or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61624r1102023_fix
Configure RHEL 9 to not forward IPv4 source-routed packets. Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: net.ipv4.conf.all.accept_source_route=0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253025
- Vuln IDs
-
- V-257960
- Rule IDs
-
- SV-257960r1106321_rule
Checks: C-61701r1102004_chk
Verify RHEL 9 logs IPv4 martian packets. Check the value of the accept source route variable with the following command: $ sudo sysctl net.ipv4.conf.all.log_martians net.ipv4.conf.all.log_martians = 1 If the returned line does not have a value of "1", a line is not returned, or the line is commented out, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.conf.all.log_martians /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:net.ipv4.conf.all.log_martians = 1 If "net.ipv4.conf.all.log_martians" is not set to "1" or is missing, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61625r1106320_fix
Configure RHEL 9 to log martian packets on IPv4 interfaces. Add or edit the following line in a single system configuration file in the "/etc/sysctl.d/" directory: net.ipv4.conf.all.log_martians=1 Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253030
- Vuln IDs
-
- V-257961
- Rule IDs
-
- SV-257961r1106323_rule
Checks: C-61702r1102001_chk
Verify RHEL 9 logs IPv4 martian packets by default. Check the value of the accept source route variable with the following command: $ sudo sysctl net.ipv4.conf.default.log_martians net.ipv4.conf.default.log_martians = 1 If the returned line does not have a value of "1", a line is not returned, or the line is commented out, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.conf.default.log_martians /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:net.ipv4.conf.default.log_martians = 1 If "net.ipv4.conf.default.log_martians" is not set to "1" or is missing, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61626r1106322_fix
Configure RHEL 9 to log martian packets on IPv4 interfaces by default. Add or edit the following line in a single system configuration file in the "/etc/sysctl.d/" directory: net.ipv4.conf.default.log_martians = 1 Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253035
- Vuln IDs
-
- V-257962
- Rule IDs
-
- SV-257962r1106437_rule
Checks: C-61703r1106436_chk
Verify RHEL 9 uses reverse path filtering on all IPv4 interfaces with the following commands: $ sudo sysctl net.ipv4.conf.all.rp_filter net.ipv4.conf.all.rp_filter = 1 If the returned line does not have a value of "1" or "2", or a line is not returned, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.conf.all.rp_filter /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.all.rp_filter = 1 If "net.ipv4.conf.all.rp_filter" is not set to "1" or "2", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61627r1106324_fix
Configure RHEL 9 to use reverse path filtering on all IPv4 interfaces by adding the following line to a file in the "/etc/sysctl.d" directory: net.ipv4.conf.all.rp_filter = 1 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf The system configuration files must be reloaded for the changes to take effect. To reload the contents of the files, run the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253040
- Vuln IDs
-
- V-257963
- Rule IDs
-
- SV-257963r1106328_rule
Checks: C-61704r1106326_chk
Verify RHEL 9 will not accept IPv4 ICMP redirect messages. Check the value of the default "accept_redirects" variables with the following command: $ sudo sysctl net.ipv4.conf.default.accept_redirects net.ipv4.conf.default.accept_redirects = 0 If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.conf.default.accept_redirects /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.default.accept_redirects = 0 If "net.ipv4.conf.default.accept_redirects" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61628r1106327_fix
Configure RHEL 9 to prevent IPv4 ICMP redirect messages from being accepted. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv4.conf.default.accept_redirects = 0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253045
- Vuln IDs
-
- V-257964
- Rule IDs
-
- SV-257964r1106438_rule
Checks: C-61705r1106329_chk
Verify RHEL 9 does not accept IPv4 source-routed packets by default. Check the value of the accept source route variable with the following command: $ sudo sysctl net.ipv4.conf.default.accept_source_route net.ipv4.conf.default.accept_source_route = 0 If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.conf.default.accept_source_route /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.default.accept_source_route = 0 If "net.ipv4.conf.default.accept_source_route" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61629r1106330_fix
Configure RHEL 9 to not forward IPv4 source-routed packets by default. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv4.conf.default.accept_source_route=0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253050
- Vuln IDs
-
- V-257965
- Rule IDs
-
- SV-257965r1106333_rule
Checks: C-61706r1102078_chk
Verify RHEL 9 uses reverse path filtering on IPv4 interfaces with the following commands: $ sudo sysctl net.ipv4.conf.default.rp_filter net.ipv4.conf.default.rp_filter = 1 If the returned line does not have a value of "1", or a line is not returned, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.conf.default.rp_filter /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:net.ipv4.conf.default.rp_filter = 1 If "net.ipv4.conf.default.rp_filter" is not set to "1" or is missing, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61630r1106332_fix
Configure RHEL 9 to use reverse path filtering on IPv4 interfaces by default. Add or edit the following line in a single system configuration file in the "/etc/sysctl.d/" directory: net.ipv4.conf.default.rp_filter = 1 Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253055
- Vuln IDs
-
- V-257966
- Rule IDs
-
- SV-257966r1106440_rule
Checks: C-61707r1106439_chk
Verify RHEL 9 does not respond to ICMP echoes sent to a broadcast address. Check the value of the "icmp_echo_ignore_broadcasts" variable with the following command: $ sudo sysctl net.ipv4.icmp_echo_ignore_broadcasts net.ipv4.icmp_echo_ignore_broadcasts = 1 If the returned line does not have a value of "1", a line is not returned, or the retuned line is commented out, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.icmp_echo_ignore_broadcasts /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv4.icmp_echo_ignore_broadcasts = 1 If "net.ipv4.icmp_echo_ignore_broadcasts" is not set to "1", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61631r1106334_fix
Configure RHEL 9 to not respond to IPv4 ICMP echoes sent to a broadcast address. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv4.icmp_echo_ignore_broadcasts=1 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253060
- Vuln IDs
-
- V-257967
- Rule IDs
-
- SV-257967r1106337_rule
Checks: C-61708r1101999_chk
The runtime status of the net.ipv4.icmp_ignore_bogus_error_responses kernel parameter can be queried by running the following command: $ sudo sysctl net.ipv4.icmp_ignore_bogus_error_responses net.ipv4.icmp_ignore_bogus_error_responses = 1 If "net.ipv4.icmp_ignore_bogus_error_responses" is not set to "1", this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.icmp_ignore_bogus_error_response /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf:net.ipv4.icmp_ignore_bogus_error_responses = 1 If "net.ipv4.icmp_ignore_bogus_error_response" is not set to "1" or is missing, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61632r1106336_fix
Configure RHEL 9 to not log bogus ICMP errors: Add or edit the following line in a single system configuration file in the "/etc/sysctl.d/" directory: net.ipv4.icmp_ignore_bogus_error_responses = 1 Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253065
- Vuln IDs
-
- V-257968
- Rule IDs
-
- SV-257968r1106339_rule
Checks: C-61709r1102041_chk
Verify RHEL 9 does not IPv4 ICMP redirect messages. Check the value of the "all send_redirects" variables with the following command: $ sudo sysctl net.ipv4.conf.all.send_redirects net.ipv4.conf.all.send_redirects = 0 If the returned line does not have a value of "0", or a line is not returned, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.conf.all.send_redirects /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.all.send_redirects = 0 If "net.ipv4.conf.all.send_redirects" is not set to "0", is missing or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61633r1106338_fix
Configure RHEL 9 to not allow interfaces to perform IPv4 ICMP redirects. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv4.conf.all.send_redirects=0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253070
- Vuln IDs
-
- V-257969
- Rule IDs
-
- SV-257969r991589_rule
Checks: C-61710r942998_chk
Verify RHEL 9 does not allow interfaces to perform Internet Protocol version 4 (IPv4) ICMP redirects by default. Check the value of the "default send_redirects" variables with the following command: $ sudo sysctl net.ipv4.conf.default.send_redirects net.ipv4.conf.default.send_redirects=0 If the returned line does not have a value of "0", or a line is not returned, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo /usr/lib/systemd/systemd-sysctl --cat-config | egrep -v '^(#|;)' | grep -F net.ipv4.conf.default.send_redirects | tail -1 net.ipv4.conf.default.send_redirects = 0 If "net.ipv4.conf.default.send_redirects" is not set to "0" and is not documented with the information system security officer (ISSO) as an operational requirement or is missing, this is a finding.
Fix: F-61634r925893_fix
Configure RHEL 9 to not allow interfaces to perform Internet Protocol version 4 (IPv4) ICMP redirects by default. Add or edit the following line in a single system configuration file, in the "/etc/sysctl.d/" directory: net.ipv4.conf.default.send_redirects = 0 Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-253075
- Vuln IDs
-
- V-257970
- Rule IDs
-
- SV-257970r1106442_rule
Checks: C-61711r1106441_chk
Verify RHEL 9 is not performing IPv4 packet forwarding, unless the system is a router. Check that IPv4 forwarding is disabled using the following command: $ sudo sysctl net.ipv4.conf.all.forwarding net.ipv4.conf.all.forwarding = 0 If the IPv4 forwarding value is not "0" and is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv4.conf.all.forwarding /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv4.conf.all.forwarding = 0 If "net.ipv4.conf.all.forwarding" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61635r1106341_fix
Configure RHEL 9 to not allow IPv4 packet forwarding, unless the system is a router. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv4.conf.all.forwarding=0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-254010
- Vuln IDs
-
- V-257971
- Rule IDs
-
- SV-257971r1106444_rule
Checks: C-61712r1106443_chk
Verify RHEL 9 does not accept router advertisements on all IPv6 interfaces, unless the system is a router. Note: If IPv6 is disabled on the system, this requirement is not applicable. Check to see if router advertisements are not accepted by using the following command: $ sudo sysctl net.ipv6.conf.all.accept_ra net.ipv6.conf.all.accept_ra = 0 If the "accept_ra" value is not "0" and is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv6.conf.all.accept_ra /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.all.accept_ra = 0 If "net.ipv6.conf.all.accept_ra" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61636r1106343_fix
Configure RHEL 9 to not accept router advertisements on all IPv6 interfaces unless the system is a router. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv6.conf.all.accept_ra=0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-254015
- Vuln IDs
-
- V-257972
- Rule IDs
-
- SV-257972r1106446_rule
Checks: C-61713r1106445_chk
Verify RHEL 9 ignores IPv6 ICMP redirect messages. Note: If IPv6 is disabled on the system, this requirement is not applicable. Check the value of the "accept_redirects" variables with the following command: $ sudo sysctl net.ipv6.conf.all.accept_redirects net.ipv6.conf.all.accept_redirects = 0 If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv6.conf.all.accept_redirects /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.all.accept_redirects = 0 If "net.ipv6.conf.all.accept_redirects" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61637r1106345_fix
Configure RHEL 9 to ignore IPv6 ICMP redirect messages. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv6.conf.all.accept_redirects = 0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-254020
- Vuln IDs
-
- V-257973
- Rule IDs
-
- SV-257973r1106448_rule
Checks: C-61714r1106447_chk
Verify RHEL 9 does not accept IPv6 source-routed packets. Note: If IPv6 is disabled on the system, this requirement is not applicable. Check the value of the accept source route variable with the following command: $ sudo sysctl net.ipv6.conf.all.accept_source_route net.ipv6.conf.all.accept_source_route = 0 If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv6.conf.all.accept_source_route /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.all.accept_source_route = 0 If "net.ipv6.conf.all.accept_source_route" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61638r1106347_fix
Configure RHEL 9 to not forward IPv6 source-routed packets. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv6.conf.all.accept_source_route=0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-254025
- Vuln IDs
-
- V-257974
- Rule IDs
-
- SV-257974r1106450_rule
Checks: C-61715r1106449_chk
Verify RHEL 9 is not performing IPv6 packet forwarding, unless the system is a router. Note: If IPv6 is disabled on the system, this requirement is not applicable. Check that IPv6 forwarding is disabled using the following commands: $ sudo sysctl net.ipv6.conf.all.forwarding net.ipv6.conf.all.forwarding = 0 If the IPv6 forwarding value is not "0" and is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv6.conf.all.forwarding /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.all.forwarding = 0 If "net.ipv6.conf.all.forwarding" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61639r1106349_fix
Configure RHEL 9 to not allow IPv6 packet forwarding, unless the system is a router. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv6.conf.all.forwarding=0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-254030
- Vuln IDs
-
- V-257975
- Rule IDs
-
- SV-257975r1106452_rule
Checks: C-61716r1106451_chk
Verify RHEL 9 does not accept router advertisements on all IPv6 interfaces by default, unless the system is a router. Note: If IPv6 is disabled on the system, this requirement is not applicable. Check to see if router advertisements are not accepted by default by using the following command: $ sudo sysctl net.ipv6.conf.default.accept_ra net.ipv6.conf.default.accept_ra = 0 If the "accept_ra" value is not "0" and is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv6.conf.default.accept_ra /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.default.accept_ra = 0 If "net.ipv6.conf.default.accept_ra" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61640r1106351_fix
Configure RHEL 9 to not accept router advertisements on all IPv6 interfaces by default unless the system is a router. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv6.conf.default.accept_ra=0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-254035
- Vuln IDs
-
- V-257976
- Rule IDs
-
- SV-257976r1106454_rule
Checks: C-61717r1106453_chk
Verify RHEL 9 will not accept IPv6 ICMP redirect messages. Note: If IPv6 is disabled on the system, this requirement is not applicable. Check the value of the default "accept_redirects" variables with the following command: $ sudo sysctl net.ipv6.conf.default.accept_redirects net.ipv6.conf.default.accept_redirects = 0 If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv6.conf.default.accept_redirects /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.default.accept_redirects = 0 If "net.ipv6.conf.default.accept_redirects" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61641r1106353_fix
Configure RHEL 9 to prevent IPv6 ICMP redirect messages from being accepted. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv6.conf.default.accept_redirects = 0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-254040
- Vuln IDs
-
- V-257977
- Rule IDs
-
- SV-257977r1106456_rule
Checks: C-61718r1106455_chk
Verify RHEL 9 does not accept IPv6 source-routed packets by default. Note: If IPv6 is disabled on the system, this requirement is not applicable. Check the value of the accept source route variable with the following command: $ sudo sysctl net.ipv6.conf.default.accept_source_route net.ipv6.conf.default.accept_source_route = 0 If the returned line does not have a value of "0", a line is not returned, or the line is commented out, this is a finding. Check that the configuration files are present to enable this network parameter. $ sudo grep -r net.ipv6.conf.default.accept_source_route /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf /etc/sysctl.d/99-sysctl.conf: net.ipv6.conf.default.accept_source_route = 0 If "net.ipv6.conf.default.accept_source_route" is not set to "0", is missing, or commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-61642r1106355_fix
Configure RHEL 9 to not forward IPv6 source-routed packets by default. Add or edit the following line in a system configuration file in the "/etc/sysctl.d/" directory: net.ipv6.conf.default.accept_source_route=0 Remove any configurations that conflict with the above from the following locations: /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf /etc/sysctl.d/*.conf Load settings from all system configuration files with the following command: $ sudo sysctl --system
- RMF Control
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- RHEL-09-255010
- Vuln IDs
-
- V-257978
- Rule IDs
-
- SV-257978r1045013_rule
Checks: C-61719r1045012_chk
Verify that RHEL 9 has the openssh-server package installed with the following command: $ dnf list --installed openssh-server Example output: openssh-server.x86_64 8.7p1-8.el9 If the "openssh-server" package is not installed, this is a finding.
Fix: F-61643r925920_fix
The openssh-server package can be installed with the following command: $ sudo dnf install openssh-server
- RMF Control
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- RHEL-09-255015
- Vuln IDs
-
- V-257979
- Rule IDs
-
- SV-257979r958908_rule
Checks: C-61720r925922_chk
Verify that "sshd" is active with the following command: $ systemctl is-active sshd active If the "sshd" service is not active, this is a finding.
Fix: F-61644r925923_fix
To enable the sshd service run the following command: $ systemctl enable --now sshd
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255020
- Vuln IDs
-
- V-257980
- Rule IDs
-
- SV-257980r1045016_rule
Checks: C-61721r1045014_chk
Verify that RHEL 9 has the openssh-clients package installed with the following command: $ dnf list --installed openssh-clients Example output: openssh-clients.x86_64 8.7p1-8.el9 If the "openssh-clients" package is not installed, this is a finding.
Fix: F-61645r1045015_fix
The openssh-clients package can be installed with the following command: $ sudo dnf install openssh-clients
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- RHEL-09-255025
- Vuln IDs
-
- V-257981
- Rule IDs
-
- SV-257981r1101970_rule
Checks: C-61722r1101969_chk
Verify any SSH connection to RHEL 9 displays the Standard Mandatory DOD Notice and Consent Banner before granting access to the system. Check for the location of the banner file being used with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*banner' /etc/ssh/sshd_config.d/80-bannerPointer.conf:Banner /etc/issue This command will return the banner keyword and the name of the file that contains the SSH banner (in this case "/etc/issue"). If the line is commented out, this is a finding.
Fix: F-61646r1045018_fix
Configure RHEL 9 to display the Standard Mandatory DOD Notice and Consent Banner before granting access to the system via ssh. Edit the "etc/ssh/sshd_config" file or a file in "/etc/ssh/sshd_config.d" to uncomment the banner keyword and configure it to point to a file that will contain the logon banner (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor). An example configuration line is: Banner /etc/issue
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-000067
- Version
- RHEL-09-255030
- Vuln IDs
-
- V-257982
- Rule IDs
-
- SV-257982r1045021_rule
Checks: C-61723r952174_chk
Verify that RHEL 9 logs SSH connection attempts and failures to the server. Check what the SSH daemon's "LogLevel" option is set to with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*loglevel' LogLevel VERBOSE If a value of "VERBOSE" is not returned or the line is commented out or missing, this is a finding.
Fix: F-61647r1045020_fix
Configure RHEL 9 to log connection attempts add or modify the following line in "/etc/ssh/sshd_config" or in a file in "/etc/ssh/sshd_config.d". LogLevel VERBOSE Restart the SSH daemon for the settings to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000765
- Version
- RHEL-09-255035
- Vuln IDs
-
- V-257983
- Rule IDs
-
- SV-257983r1045024_rule
Checks: C-61724r1045022_chk
Note: If the system administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is Not Applicable. Verify that RHEL 9 SSH daemon accepts public key encryption with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*pubkeyauthentication' PubkeyAuthentication yes If "PubkeyAuthentication" is set to no, the line is commented out, or the line is missing, this is a finding.
Fix: F-61648r1045023_fix
To configure the system, add or modify the following line in "/etc/ssh/sshd_config" or in a file in "/etc/ssh/sshd_config.d". PubkeyAuthentication yes Restart the SSH daemon for the settings to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- IA-2
- Severity
- H
- CCI
- CCI-000766
- Version
- RHEL-09-255040
- Vuln IDs
-
- V-257984
- Rule IDs
-
- SV-257984r1045026_rule
Checks: C-61725r1014847_chk
Verify that RHEL 9 remote access using SSH prevents logging on with a blank password with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*permitemptypasswords' PermitEmptyPasswords no If the "PermitEmptyPasswords" keyword is set to "yes", is missing, or is commented out, this is a finding.
Fix: F-61649r1045025_fix
To configure the system to prevent SSH users from logging on with blank passwords edit the following line in "/etc/ssh/sshd_config" or in a file in "/etc/ssh/sshd_config.d": PermitEmptyPasswords no Restart the SSH daemon for the settings to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- Severity
- M
- CCI
- CCI-004045
- Version
- RHEL-09-255045
- Vuln IDs
-
- V-257985
- Rule IDs
-
- SV-257985r1069364_rule
Checks: C-61726r1069363_chk
Verify RHEL 9 remote access using SSH prevents users from logging on directly as "root" with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*permitrootlogin' PermitRootLogin no If the "PermitRootLogin" keyword is set to any value other than "no", is missing, or is commented out, this is a finding.
Fix: F-61650r1045027_fix
To configure the system to prevent SSH users from logging on directly as root add or modify the following line in "/etc/ssh/sshd_config" or in a file in "/etc/ssh/sshd_config.d". PermitRootLogin no Restart the SSH daemon for the settings to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- MA-4
- Severity
- H
- CCI
- CCI-000877
- Version
- RHEL-09-255050
- Vuln IDs
-
- V-257986
- Rule IDs
-
- SV-257986r1045030_rule
Checks: C-61727r952182_chk
Verify the RHEL 9 SSHD is configured to allow for the UsePAM interface with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*usepam' UsePAM yes If the "UsePAM" keyword is set to "no", is missing, or is commented out, this is a finding.
Fix: F-61651r1045029_fix
Configure the RHEL 9 SSHD to use the UsePAM interface by adding or modifying the following line in "/etc/ssh/sshd_config" or in a file in "/etc/ssh/sshd_config.d". UsePAM yes Restart the SSH daemon for the settings to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-09-255065
- Vuln IDs
-
- V-257989
- Rule IDs
-
- SV-257989r1051240_rule
Checks: C-61730r1051238_chk
Verify the SSH server is configured to use only ciphers employing FIPS 140-3 approved algorithms. To verify the ciphers in the systemwide SSH configuration file, use the following command: $ sudo grep -i Ciphers /etc/crypto-policies/back-ends/opensshserver.config Ciphers aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr If the cipher entries in the "opensshserver.config" file have any ciphers other than "aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr", or they are missing or commented out, this is a finding.
Fix: F-61654r1051239_fix
Configure the RHEL 9 SSH server to use only ciphers employing FIPS 140-3 approved algorithms. Reinstall crypto-policies with the following command: $ sudo dnf -y reinstall crypto-policies Set the crypto-policy to FIPS with the following command: $ sudo update-crypto-policies --set FIPS Setting system policy to FIPS Note: Systemwide crypto policies are applied on application startup. It is recommended to restart the system for the change of policies to fully take place.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-09-255075
- Vuln IDs
-
- V-257991
- Rule IDs
-
- SV-257991r1051246_rule
Checks: C-61732r1051244_chk
Verify the SSH server is configured to use only MACs employing FIPS 140-3 approved algorithms. To verify the MACs in the systemwide SSH configuration file, use the following command: $ sudo grep -i MACs /etc/crypto-policies/back-ends/opensshserver.config MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512 If the MACs entries in the "opensshserver.config" file have any hashes other than "hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512", or they are missing or commented out, this is a finding.
Fix: F-61656r1051245_fix
Configure the RHEL 9 SSH server to use only MACs employing FIPS 140-3 approved algorithms. Reinstall crypto-policies with the following command: $ sudo dnf -y reinstall crypto-policies Set the crypto-policy to FIPS with the following command: $ sudo update-crypto-policies --set FIPS Setting system policy to FIPS Note: Systemwide crypto policies are applied on application startup. It is recommended to restart the system for the change of policies to fully take place.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255080
- Vuln IDs
-
- V-257992
- Rule IDs
-
- SV-257992r1045047_rule
Checks: C-61733r952189_chk
Verify the operating system does not allow a noncertificate trusted host SSH logon to the system with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*hostbasedauthentication' HostbasedAuthentication no If the "HostbasedAuthentication" keyword is not set to "no", is missing, or is commented out, this is a finding. If the required value is not set, this is a finding.
Fix: F-61657r1045046_fix
To configure RHEL 9 to not allow a noncertificate trusted host SSH logon to the system, add or modify the following line in "/etc/ssh/sshd_config" or in a file in "/etc/ssh/sshd_config.d". HostbasedAuthentication no Restart the SSH daemon for the settings to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255085
- Vuln IDs
-
- V-257993
- Rule IDs
-
- SV-257993r1045049_rule
Checks: C-61734r952191_chk
Verify that unattended or automatic logon via SSH is disabled with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*permituserenvironment' PermitUserEnvironment no If "PermitUserEnvironment" is set to "yes", is missing completely, or is commented out, this is a finding. If the required value is not set, this is a finding.
Fix: F-61658r1045048_fix
Configure the RHEL 9 SSH daemon to not allow unattended or automatic logon to the system by editing the following line in the "/etc/ssh/sshd_config" or in a file in "/etc/ssh/sshd_config.d": PermitUserEnvironment no Restart the SSH daemon for the setting to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-000068
- Version
- RHEL-09-255090
- Vuln IDs
-
- V-257994
- Rule IDs
-
- SV-257994r1045051_rule
Checks: C-61735r952193_chk
Verify the SSH server is configured to force frequent session key renegotiation with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*rekeylimit' RekeyLimit 1G 1h If "RekeyLimit" does not have a maximum data amount and maximum time defined, is missing, or is commented out, this is a finding.
Fix: F-61659r1045050_fix
Configure RHEL 9 to force a frequent session key renegotiation for SSH connections to the server by adding or modifying the following line in the "/etc/ssh/sshd_config" or in a file in "/etc/ssh/sshd_config.d": RekeyLimit 1G 1h Restart the SSH daemon for the settings to take effect. $ sudo systemctl restart sshd.service
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- RHEL-09-255095
- Vuln IDs
-
- V-257995
- Rule IDs
-
- SV-257995r1045053_rule
Checks: C-61736r952195_chk
Verify the "ClientAliveCountMax" is set to "1" by performing the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*clientalivecountmax' ClientAliveCountMax 1 If "ClientAliveCountMax" does not exist, is not set to a value of "1" in "/etc/ssh/sshd_config", or is commented out, this is a finding.
Fix: F-61660r1045052_fix
Note: This setting must be applied in conjunction with RHEL-09-255100 to function correctly. Configure the SSH server to terminate a user session automatically after the SSH client has become unresponsive. Modify or append the following lines in the "/etc/ssh/sshd_config" or in a file in "/etc/ssh/sshd_config.d": ClientAliveCountMax 1 For the changes to take effect, the SSH daemon must be restarted. $ sudo systemctl restart sshd.service
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- RHEL-09-255100
- Vuln IDs
-
- V-257996
- Rule IDs
-
- SV-257996r1134915_rule
Checks: C-61737r1134914_chk
Verify the "ClientAliveInterval" variable is set to a value of "600" or less by performing the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*clientaliveinterval' /etc/ssh/sshd_config.d/ClientAliveInterval.conf:ClientAliveInterval 600 Verify the runtime value of "ClientAliveInterval" with the following command: $ sudo sshd -T | grep -i clientaliveinterval clientaliveinterval 600 If "ClientAliveInterval" does not exist, does not have a value of "600" or less in "/etc/ssh/sshd_config", or is commented out, this is a finding.
Fix: F-61661r1045054_fix
Note: This setting must be applied in conjunction with RHEL-09-255095 to function correctly. Configure the SSH server to terminate a user session automatically after the SSH client has been unresponsive for 10 minutes. Modify or append the following lines in the "/etc/ssh/sshd_config" or in a file in "/etc/ssh/sshd_config.d": ClientAliveInterval 600 For the changes to take effect, the SSH daemon must be restarted. $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255105
- Vuln IDs
-
- V-257997
- Rule IDs
-
- SV-257997r1069370_rule
Checks: C-61738r1045056_chk
Verify the group ownership of the "/etc/ssh/sshd_config" file and the contents of "/etc/ssh/sshd_config.d" with the following command: $ sudo find /etc/ssh/sshd_config /etc/ssh/sshd_config.d -exec stat -c "%G %n" {} \; root /etc/ssh/sshd_config root /etc/ssh/sshd_config.d root /etc/ssh/sshd_config.d/50-cloud-init.conf root /etc/ssh/sshd_config.d/50-redhat.conf If the "/etc/ssh/sshd_config" file or "/etc/ssh/sshd_config.d" or any files in the sshd_config.d directory do not have a group owner of "root", this is a finding.
Fix: F-61662r1069369_fix
Configure the "/etc/ssh/sshd_config" file and the contents of "/etc/ssh/sshd_config.d" to be group-owned by root with the following command: $ sudo chgrp root /etc/ssh/sshd_config /etc/ssh/sshd_config.d
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255110
- Vuln IDs
-
- V-257998
- Rule IDs
-
- SV-257998r1082181_rule
Checks: C-61739r1082179_chk
Verify the ownership of the "/etc/ssh/sshd_config" file and the contents of "/etc/ssh/sshd_config.d" with the following command: $ sudo find /etc/ssh/sshd_config /etc/ssh/sshd_config.d -exec stat -c "%U %n" {} \; root /etc/ssh/sshd_config root /etc/ssh/sshd_config.d root /etc/ssh/sshd_config.d/50-cloud-init.conf root /etc/ssh/sshd_config.d/50-redhat.conf If the "/etc/ssh/sshd_config" file or "/etc/ssh/sshd_config.d" or any files in the "sshd_config.d" directory do not have an owner of "root", this is a finding.
Fix: F-61663r1082180_fix
Configure the "/etc/ssh/sshd_config" file and the contents of "/etc/ssh/sshd_config.d" to be owned by root with the following command: $ sudo chown -R root /etc/ssh/sshd_config /etc/ssh/sshd_config.d
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255115
- Vuln IDs
-
- V-257999
- Rule IDs
-
- SV-257999r1134918_rule
Checks: C-61740r1134916_chk
Verify the permissions of the "/etc/ssh/sshd_config" file with the following command: $ sudo rpm --verify openssh-server | awk '! ($2 == "c" && $1 ~ /^.\..\.\.\.\..\./) {print $0}' If the command returns any output, this is a finding.
Fix: F-61664r1134917_fix
Run the following commands to restore the correct permissions of OpenSSH server configuration files: $ rpm --setugids openssh-server $ rpm --setperms openssh-server
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255120
- Vuln IDs
-
- V-258000
- Rule IDs
-
- SV-258000r1045063_rule
Checks: C-61741r1045062_chk
Verify the SSH private host key files have a mode of "0640" or less permissive with the following command: $ stat -c "%a %n" /etc/ssh/*_key 640 /etc/ssh/ssh_host_dsa_key 640 /etc/ssh/ssh_host_ecdsa_key 640 /etc/ssh/ssh_host_ed25519_key 640 /etc/ssh/ssh_host_rsa_key If any private host key file has a mode more permissive than "0640", this is a finding.
Fix: F-61665r925986_fix
Configure the mode of SSH private host key files under "/etc/ssh" to "0640" with the following command: $ sudo chmod 0640 /etc/ssh/ssh_host*key Restart the SSH daemon for the changes to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255125
- Vuln IDs
-
- V-258001
- Rule IDs
-
- SV-258001r991589_rule
Checks: C-61742r925988_chk
Verify the SSH public host key files have a mode of "0644" or less permissive with the following command: Note: SSH public key files may be found in other directories on the system depending on the installation. $ sudo stat -c "%a %n" /etc/ssh/*.pub 644 /etc/ssh/ssh_host_dsa_key.pub 644 /etc/ssh/ssh_host_ecdsa_key.pub 644 /etc/ssh/ssh_host_ed25519_key.pub 644 /etc/ssh/ssh_host_rsa_key.pub If any key.pub file has a mode more permissive than "0644", this is a finding.
Fix: F-61666r925989_fix
Change the mode of public host key files under "/etc/ssh" to "0644" with the following command: $ sudo chmod 0644 /etc/ssh/*key.pub Restart the SSH daemon for the changes to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255130
- Vuln IDs
-
- V-258002
- Rule IDs
-
- SV-258002r991589_rule
Checks: C-61743r952199_chk
Verify the SSH daemon performs compression after a user successfully authenticates with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*compression' Compression delayed If the "Compression" keyword is set to "yes", is missing, or the returned line is commented out, this is a finding.
Fix: F-61667r925992_fix
Configure the SSH daemon to not allow compression. Uncomment the "Compression" keyword in "/etc/ssh/sshd_config" on the system and set the value to "delayed" or "no": Compression no The SSH service must be restarted for changes to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001813
- Version
- RHEL-09-255135
- Vuln IDs
-
- V-258003
- Rule IDs
-
- SV-258003r1045065_rule
Checks: C-61744r952201_chk
Verify the SSH daemon does not allow GSSAPI authentication with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*gssapiauthentication' GSSAPIAuthentication no If the value is returned as "yes", the returned line is commented out, no output is returned, and the use of GSSAPI authentication has not been documented with the information system security officer (ISSO), this is a finding. If the required value is not set, this is a finding.
Fix: F-61668r1045064_fix
Configure the SSH daemon to not allow GSSAPI authentication. Add or uncomment the following line to "/etc/ssh/sshd_config" or to a file in "/etc/ssh/sshd_config.d" and set the value to "no": GSSAPIAuthentication no The SSH service must be restarted for changes to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001813
- Version
- RHEL-09-255140
- Vuln IDs
-
- V-258004
- Rule IDs
-
- SV-258004r1045067_rule
Checks: C-61745r952203_chk
Verify the SSH daemon does not allow Kerberos authentication with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*kerberosauthentication' KerberosAuthentication no If the value is returned as "yes", the returned line is commented out, no output is returned, and the use of Kerberos authentication has not been documented with the information system security officer (ISSO), this is a finding.
Fix: F-61669r1045066_fix
Configure the SSH daemon to not allow Kerberos authentication. Add the following line in "/etc/ssh/sshd_config" or to a file in "/etc/ssh/sshd_config.d", or uncomment the line and set the value to "no": KerberosAuthentication no The SSH service must be restarted for changes to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255145
- Vuln IDs
-
- V-258005
- Rule IDs
-
- SV-258005r1045069_rule
Checks: C-61746r952205_chk
Verify the SSH daemon does not allow rhosts authentication with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*ignorerhosts' IgnoreRhosts yes If the value is returned as "no", the returned line is commented out, or no output is returned, this is a finding.
Fix: F-61670r1045068_fix
Configure the SSH daemon to not allow rhosts authentication. Add the following line to "/etc/ssh/sshd_config" or to a file in "/etc/ssh/sshd_config.d", or uncomment the line and set the value to "yes": IgnoreRhosts yes The SSH service must be restarted for changes to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255150
- Vuln IDs
-
- V-258006
- Rule IDs
-
- SV-258006r1045071_rule
Checks: C-61747r952207_chk
Verify the SSH daemon does not allow known hosts authentication with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*ignoreuserknownhosts' IgnoreUserKnownHosts yes If the value is returned as "no", the returned line is commented out, or no output is returned, this is a finding.
Fix: F-61671r1045070_fix
Configure the SSH daemon to not allow known hosts authentication. Add the following line to "/etc/ssh/sshd_config" or to a file in "/etc/ssh/sshd_config.d", or uncomment the line and set the value to "yes": IgnoreUserKnownHosts yes The SSH service must be restarted for changes to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255155
- Vuln IDs
-
- V-258007
- Rule IDs
-
- SV-258007r1045073_rule
Checks: C-61748r952209_chk
Verify the SSH daemon does not allow X11Forwarding with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*x11forwarding' X11forwarding no If the value is returned as "yes", the returned line is commented out, or no output is returned, and X11 forwarding is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61672r1045072_fix
Configure the SSH daemon to not allow X11 forwarding. Add the following line to "/etc/ssh/sshd_config" or to a file in "/etc/ssh/sshd_config.d", or uncomment the line and set the value to "no": X11forwarding no The SSH service must be restarted for changes to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255160
- Vuln IDs
-
- V-258008
- Rule IDs
-
- SV-258008r1045075_rule
Checks: C-61749r952211_chk
Verify the SSH daemon performs strict mode checking of home directory configuration files with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*strictmodes' StrictModes yes If the "StrictModes" keyword is set to "no", the returned line is commented out, or no output is returned, this is a finding.
Fix: F-61673r1045074_fix
Configure the SSH daemon to perform strict mode checking of home directory configuration files. Add the following line to "/etc/ssh/sshd_config" or to a file in "/etc/ssh/sshd_config.d", or uncomment the line and set the value to "yes": StrictModes yes The SSH service must be restarted for changes to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255165
- Vuln IDs
-
- V-258009
- Rule IDs
-
- SV-258009r1045077_rule
Checks: C-61750r952213_chk
Verify the SSH daemon provides users with feedback on when account accesses last occurred with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*printlastlog' PrintLastLog yes If the "PrintLastLog" keyword is set to "no", the returned line is commented out, or no output is returned, this is a finding.
Fix: F-61674r1045076_fix
Configure the SSH daemon to provide users with feedback on when account accesses last occurred. Add the following line to "/etc/ssh/sshd_config" or to a file in "/etc/ssh/sshd_config.d", or uncomment the line and set the value to "yes": PrintLastLog yes The SSH service must be restarted for changes to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-255175
- Vuln IDs
-
- V-258011
- Rule IDs
-
- SV-258011r1045079_rule
Checks: C-61752r952217_chk
Verify the SSH daemon prevents remote hosts from connecting to the proxy display with the following command: $ sudo /usr/sbin/sshd -dd 2>&1 | awk '/filename/ {print $4}' | tr -d '\r' | tr '\n' ' ' | xargs sudo grep -iH '^\s*x11uselocalhost' X11UseLocalhost yes If the "X11UseLocalhost" keyword is set to "no", is missing, or is commented out, this is a finding.
Fix: F-61676r1045078_fix
Configure the SSH daemon to prevent remote hosts from connecting to the proxy display. Add the following line to "/etc/ssh/sshd_config" or to a file in "/etc/ssh/sshd_config.d", or uncomment the line and set the value to "yes": X11UseLocalhost yes The SSH service must be restarted for changes to take effect: $ sudo systemctl restart sshd.service
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- RHEL-09-271010
- Vuln IDs
-
- V-258012
- Rule IDs
-
- SV-258012r1014855_rule
Checks: C-61753r1014854_chk
Verify RHEL 9 displays the Standard Mandatory DOD Notice and Consent Banner before granting access to the operating system via a graphical user logon. Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Determine if the operating system displays a banner at the logon screen with the following command: $ gsettings get org.gnome.login-screen banner-message-enable true If the result is "false", this is a finding.
Fix: F-61677r926022_fix
Configure RHEL 9 to display the Standard Mandatory DOD Notice and Consent Banner before granting access to the system via a graphical user logon. Create a database to contain the system-wide graphical user logon settings (if it does not already exist) with the following command: $ sudo touch /etc/dconf/db/local.d/01-banner-message Add the following lines to the [org/gnome/login-screen] section of the "/etc/dconf/db/local.d/01-banner-message": [org/gnome/login-screen] banner-message-enable=true Run the following command to update the database: $ sudo dconf update
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- RHEL-09-271015
- Vuln IDs
-
- V-258013
- Rule IDs
-
- SV-258013r1045082_rule
Checks: C-61754r1045080_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 prevents a user from overriding settings for graphical user interfaces. Determine if the org.gnome.login-screen banner-message-enable key is writable with the following command: $ gsettings writable org.gnome.login-screen banner-message-enable false If "banner-message-enable" is writable or the result is "true", this is a finding.
Fix: F-61678r1045081_fix
Configure RHEL 9 to prevent a user from overriding the banner setting for graphical user interfaces. Create a database to contain the systemwide graphical user logon settings (if it does not already exist) with the following command: $ sudo touch /etc/dconf/db/local.d/locks/session Add the following setting to prevent nonprivileged users from modifying it: /org/gnome/login-screen/banner-message-enable Run the following command to update the database: $ sudo dconf update
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-000778
- Version
- RHEL-09-271020
- Vuln IDs
-
- V-258014
- Rule IDs
-
- SV-258014r1045084_rule
Checks: C-61755r1045083_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 disables the graphical user interface automount function with the following command: $ gsettings get org.gnome.desktop.media-handling automount-open false If "automount-open" is set to "true", and is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61679r926028_fix
Configure the GNOME desktop to disable automated mounting of removable media. The dconf settings can be edited in the /etc/dconf/db/* location. Update the [org/gnome/desktop/media-handling] section of the "/etc/dconf/db/local.d/00-security-settings" database file and add or update the following lines: [org/gnome/desktop/media-handling] automount-open=false Then update the dconf system databases: $ sudo dconf update
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-000778
- Version
- RHEL-09-271025
- Vuln IDs
-
- V-258015
- Rule IDs
-
- SV-258015r1045086_rule
Checks: C-61756r1045085_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 disables the ability of the user to override the graphical user interface automount setting. Determine which profile the system database is using with the following command: $ sudo grep system-db /etc/dconf/profile/user system-db:local Check that the automount setting is locked from nonprivileged user modification with the following command: Note: The example below is using the database "local" for the system, so the path is "/etc/dconf/db/local.d". This path must be modified if a database other than "local" is being used. $ grep 'automount-open' /etc/dconf/db/local.d/locks/* /org/gnome/desktop/media-handling/automount-open If the command does not return at least the example result, this is a finding.
Fix: F-61680r926031_fix
Configure the GNOME desktop to not allow a user to change the setting that disables automated mounting of removable media. Add the following line to "/etc/dconf/db/local.d/locks/00-security-settings-lock" to prevent user modification: /org/gnome/desktop/media-handling/automount-open Then update the dconf system databases: $ sudo dconf update
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-271030
- Vuln IDs
-
- V-258016
- Rule IDs
-
- SV-258016r958804_rule
Checks: C-61757r926033_chk
Verify RHEL 9 disables the graphical user interface autorun function with the following command: Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. $ gsettings get org.gnome.desktop.media-handling autorun-never true If "autorun-never" is set to "false", and is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61681r926034_fix
Configure the GNOME desktop to disable the autorun function on removable media. The dconf settings can be edited in the /etc/dconf/db/* location. Update the [org/gnome/desktop/media-handling] section of the "/etc/dconf/db/local.d/00-security-settings" database file and add or update the following lines: [org/gnome/desktop/media-handling] autorun-never=true Then update the dconf system databases: $ sudo dconf update
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-000778
- Version
- RHEL-09-271035
- Vuln IDs
-
- V-258017
- Rule IDs
-
- SV-258017r1045088_rule
Checks: C-61758r1045087_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 disables ability of the user to override the graphical user interface autorun setting. Determine which profile the system database is using with the following command: $ gsettings writable org.gnome.desktop.media-handling autorun-never false If "autorun-never" is writable, the result is "true". If this is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61682r926037_fix
Configure the GNOME desktop to not allow a user to change the setting that disables autorun on removable media. Add the following line to "/etc/dconf/db/local.d/locks/00-security-settings-lock" to prevent user modification: /org/gnome/desktop/media-handling/autorun-never Then update the dconf system databases: $ sudo dconf update
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-09-271040
- Vuln IDs
-
- V-258018
- Rule IDs
-
- SV-258018r1045090_rule
Checks: C-61759r1045089_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 does not allow an unattended or automatic logon to the system via a graphical user interface. Check for the value of the "AutomaticLoginEnable" in the "/etc/gdm/custom.conf" file with the following command: $ grep -i automaticlogin /etc/gdm/custom.conf AutomaticLoginEnable=false If the value of "AutomaticLoginEnable" is not set to "false", this is a finding.
Fix: F-61683r926040_fix
Configure the GNOME desktop display manager to disable automatic login. Set AutomaticLoginEnable to false in the [daemon] section in /etc/gdm/custom.conf. For example: [daemon] AutomaticLoginEnable=false
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- RHEL-09-271045
- Vuln IDs
-
- V-258019
- Rule IDs
-
- SV-258019r1045092_rule
Checks: C-61760r1045091_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 enables a user's session lock until that user reestablishes access using established identification and authentication procedures with the following command: $ gsettings get org.gnome.settings-daemon.peripherals.smartcard removal-action 'lock-screen' If the result is not 'lock-screen', this is a finding.
Fix: F-61684r926043_fix
Configure RHEL 9 to enable a user's session lock until that user re-establishes access using established identification and authentication procedures. Select or create an authselect profile and incorporate the "with-smartcard-lock-on-removal" feature with the following example: $ sudo authselect select sssd with-smartcard with-smartcard-lock-on-removal Alternatively, the dconf settings can be edited in the /etc/dconf/db/* location. Add or update the [org/gnome/settings-daemon/peripherals/smartcard] section of the /etc/dconf/db/local.d/00-security-settings" database file and add or update the following lines: [org/gnome/settings-daemon/peripherals/smartcard] removal-action='lock-screen' Then update the dconf system databases: $ sudo dconf update
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- RHEL-09-271050
- Vuln IDs
-
- V-258020
- Rule IDs
-
- SV-258020r1045094_rule
Checks: C-61761r1045093_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 disables ability of the user to override the smart card removal action setting. $ gsettings writable org.gnome.settings-daemon.peripherals.smartcard removal-action false If "removal-action" is writable and the result is "true", this is a finding.
Fix: F-61685r926046_fix
Add the following line to "/etc/dconf/db/local.d/locks/00-security-settings-lock" to prevent user override of the smart card removal action: /org/gnome/settings-daemon/peripherals/smartcard/removal-action Then update the dconf system databases: $ sudo dconf update
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- RHEL-09-271055
- Vuln IDs
-
- V-258021
- Rule IDs
-
- SV-258021r1015088_rule
Checks: C-61762r926048_chk
Verify RHEL 9 enables a user's session lock until that user re-establishes access using established identification and authentication procedures with the following command: Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. $ gsettings get org.gnome.desktop.screensaver lock-enabled true If the setting is "false", this is a finding.
Fix: F-61686r926049_fix
Configure RHEL 9 to enable a user's session lock until that user re-establishes access using established identification and authentication procedures. Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following example: $ sudo vi /etc/dconf/db/local.d/00-screensaver Edit the "[org/gnome/desktop/screensaver]" section of the database file and add or update the following lines: # Set this to true to lock the screen when the screensaver activates lock-enabled=true Update the system databases: $ sudo dconf update
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000056
- Version
- RHEL-09-271060
- Vuln IDs
-
- V-258022
- Rule IDs
-
- SV-258022r1045097_rule
Checks: C-61763r1045095_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 prevents a user from overriding settings for graphical user interfaces. $ gsettings writable org.gnome.desktop.screensaver lock-enabled false If "lock-enabled" is writable and the result is "true", this is a finding.
Fix: F-61687r1045096_fix
Configure RHEL 9 to prevent a user from overriding settings for graphical user interfaces. Create a database to contain the systemwide screensaver settings (if it does not already exist) with the following command: Note: The example below is using the database "local" for the system. If the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. $ sudo touch /etc/dconf/db/local.d/locks/session Add the following setting to prevent nonprivileged users from modifying it: /org/gnome/desktop/screensaver/lock-enabled Run the following command to update the database: $ sudo dconf update
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- RHEL-09-271065
- Vuln IDs
-
- V-258023
- Rule IDs
-
- SV-258023r958402_rule
Checks: C-61764r926054_chk
Verify RHEL 9 initiates a session lock after a 15-minute period of inactivity for graphical user interfaces with the following command: Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. $ sudo gsettings get org.gnome.desktop.session idle-delay uint32 900 If "idle-delay" is set to "0" or a value greater than "900", this is a finding.
Fix: F-61688r926055_fix
Configure RHEL 9 to initiate a screensaver after a 15-minute period of inactivity for graphical user interfaces. Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: $ sudo touch /etc/dconf/db/local.d/00-screensaver Edit /etc/dconf/db/local.d/00-screensaver and add or update the following lines: [org/gnome/desktop/session] # Set the lock time out to 900 seconds before the session is considered idle idle-delay=uint32 900 Update the system databases: $ sudo dconf update
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- RHEL-09-271070
- Vuln IDs
-
- V-258024
- Rule IDs
-
- SV-258024r1045100_rule
Checks: C-61765r1045098_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 prevents a user from overriding settings for graphical user interfaces. $ gsettings writable org.gnome.desktop.session idle-delay false If "idle-delay" is writable and the result is "true", this is a finding.
Fix: F-61689r1045099_fix
Configure RHEL 9 to prevent a user from overriding settings for graphical user interfaces. Create a database to contain the systemwide screensaver settings (if it does not already exist) with the following command: Note: The example below is using the database "local" for the system. If the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. $ sudo touch /etc/dconf/db/local.d/locks/session Add the following setting to prevent nonprivileged users from modifying it: /org/gnome/desktop/session/idle-delay Run the following command to update the database: $ sudo dconf update
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- RHEL-09-271075
- Vuln IDs
-
- V-258025
- Rule IDs
-
- SV-258025r958402_rule
Checks: C-61766r926060_chk
Verify RHEL 9 initiates a session lock for graphical user interfaces when the screensaver is activated with the following command: Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. $ gsettings get org.gnome.desktop.screensaver lock-delay uint32 5 If the "uint32" setting is not set to "5" or less, or is missing, this is a finding.
Fix: F-61690r926061_fix
Configure RHEL 9 to initiate a session lock for graphical user interfaces when a screensaver is activated. Create a database to contain the system-wide screensaver settings (if it does not already exist) with the following command: Note: The example below is using the database "local" for the system, so if the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. $ sudo touch /etc/dconf/db/local.d/00-screensaver [org/gnome/desktop/screensaver] lock-delay=uint32 5 The "uint32" must be included along with the integer key values as shown. Update the system databases: $ sudo dconf update
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- RHEL-09-271080
- Vuln IDs
-
- V-258026
- Rule IDs
-
- SV-258026r1045103_rule
Checks: C-61767r1045101_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 prevents a user from overriding settings for graphical user interfaces. $ gsettings writable org.gnome.desktop.screensaver lock-delay false If "lock-delay" is writable and the result is "true", this is a finding.
Fix: F-61691r1045102_fix
Configure RHEL 9 to prevent a user from overriding settings for graphical user interfaces. Create a database to contain the systemwide screensaver settings (if it does not already exist) with the following command: Note: The example below is using the database "local" for the system. If the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. $ sudo touch /etc/dconf/db/local.d/locks/session Add the following setting to prevent nonprivileged users from modifying it: /org/gnome/desktop/screensaver/lock-delay Run the following command to update the database: $ sudo dconf update
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000060
- Version
- RHEL-09-271085
- Vuln IDs
-
- V-258027
- Rule IDs
-
- SV-258027r1045106_rule
Checks: C-61768r1045104_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. To ensure the screensaver is configured to be blank, run the following command: $ gsettings writable org.gnome.desktop.screensaver picture-uri false If "picture-uri" is writable and the result is "true", this is a finding.
Fix: F-61692r1045105_fix
Configure RHEL 9 to prevent a user from overriding the picture-uri setting for graphical user interfaces. In the file "/etc/dconf/db/local.d/00-security-settings", add or update the following lines: [org/gnome/desktop/screensaver] picture-uri='' Prevent user modification by adding the following line to "/etc/dconf/db/local.d/locks/00-security-settings-lock": /org/gnome/desktop/screensaver/picture-uri Update the dconf system databases: $ sudo dconf update
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-271090
- Vuln IDs
-
- V-258028
- Rule IDs
-
- SV-258028r991589_rule
Checks: C-61769r926069_chk
Check the last modification time of the local databases, comparing it to the last modification time of the related keyfiles. The following command will check every dconf database and compare its modification time to the related system keyfiles: Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. $ function dconf_needs_update { for db in $(find /etc/dconf/db -maxdepth 1 -type f); do db_mtime=$(stat -c %Y "$db"); keyfile_mtime=$(stat -c %Y "$db".d/* | sort -n | tail -1); if [ -n "$db_mtime" ] && [ -n "$keyfile_mtime" ] && [ "$db_mtime" -lt "$keyfile_mtime" ]; then echo "$db needs update"; return 1; fi; done; }; dconf_needs_update If the command has any output, then a dconf database needs to be updated, and this is a finding.
Fix: F-61693r926070_fix
Update the dconf databases by running the following command: $ sudo dconf update
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-271095
- Vuln IDs
-
- V-258029
- Rule IDs
-
- SV-258029r1045109_rule
Checks: C-61770r1045107_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 disables a user's ability to restart the system with the following command: $ gsettings get org.gnome.login-screen disable-restart-buttons true If "disable-restart-buttons" is "false", this is a finding.
Fix: F-61694r1045108_fix
Configure RHEL 9 to disable a user's ability to restart the system. $ gsettings set org.gnome.login-screen disable-restart-buttons true Update the dconf system databases: $ sudo dconf update
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-271100
- Vuln IDs
-
- V-258030
- Rule IDs
-
- SV-258030r1045112_rule
Checks: C-61771r1045110_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 prevents a user from overriding the disable-restart-buttons setting for graphical user interfaces. $ gsettings writable org.gnome.login-screen disable-restart-buttons false If "disable-restart-buttons" is writable and the result is "true", this is a finding.
Fix: F-61695r1045111_fix
Configure RHEL 9 to prevent a user from overriding the disable-restart-buttons setting for graphical user interfaces. Create a database to contain the systemwide graphical user logon settings (if it does not already exist) with the following command: $ sudo touch /etc/dconf/db/local.d/locks/session Add the following line to prevent nonprivileged users from modifying it: /org/gnome/login-screen/disable-restart-buttons Run the following command to update the database: $ sudo dconf update
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-271105
- Vuln IDs
-
- V-258031
- Rule IDs
-
- SV-258031r1134920_rule
Checks: C-61772r1134919_chk
Verify RHEL 9 is configured to ignore the Ctrl-Alt-Del sequence in the GNOME desktop with the following command: Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is not applicable. $ gsettings get org.gnome.settings-daemon.plugins.media-keys logout [''] If the GNOME desktop is configured to shut down when Ctrl-Alt-Del is pressed, this is a finding.
Fix: F-61696r1045113_fix
Configure RHEL 9 to ignore the Ctrl-Alt-Del sequence in the GNOME desktop. Run the following command to set the media-keys logout setting: $ gsettings set org.gnome.settings-daemon.plugins.media-keys logout "['']" Run the following command to update the database: $ sudo dconf update
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-271110
- Vuln IDs
-
- V-258032
- Rule IDs
-
- SV-258032r1045117_rule
Checks: C-61773r1045115_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify that users cannot enable the Ctrl-Alt-Del sequence in the GNOME desktop with the following command: $ gsettings writable org.gnome.settings-daemon.plugins.media-keys logout false If "logout" is writable and the result is "true", this is a finding.
Fix: F-61697r1045116_fix
Configure RHEL 9 to disallow the user changing the Ctrl-Alt-Del sequence in the GNOME desktop. Create a database to contain the systemwide graphical user logon settings (if it does not already exist) with the following command: $ sudo touch /etc/dconf/db/local.d/locks/session Add the following line to the session locks file to prevent nonprivileged users from modifying the Ctrl-Alt-Del setting: /org/gnome/settings-daemon/plugins/media-keys/logout Run the following command to update the database: $ sudo dconf update
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-271115
- Vuln IDs
-
- V-258033
- Rule IDs
-
- SV-258033r1045120_rule
Checks: C-61774r1045118_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify that RHEL 9 disables the user logon list for graphical user interfaces with the following command: $ gsettings get org.gnome.login-screen disable-user-list true If the setting is "false", this is a finding.
Fix: F-61698r1045119_fix
Configure RHEL 9 to disable the user list at logon for graphical user interfaces. Create a database to contain the systemwide screensaver settings (if it does not already exist) with the following command: Note: The example below is using the database "local" for the system. If the system is using another database in "/etc/dconf/profile/user", the file should be created under the appropriate subdirectory. $ sudo touch /etc/dconf/db/local.d/02-login-screen [org/gnome/login-screen] disable-user-list=true Update the system databases: $ sudo dconf update
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-000778
- Version
- RHEL-09-291010
- Vuln IDs
-
- V-258034
- Rule IDs
-
- SV-258034r1051267_rule
Checks: C-61775r1051266_chk
Verify that RHEL 9 disables the ability to load the USB Storage kernel module with the following command: $ grep -r usb-storage /etc/modprobe.conf /etc/modprobe.d/* install usb-storage /bin/false blacklist usb-storage If the command does not return any output, or either line is commented out, and use of USB Storage is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61699r1045122_fix
To configure the system to prevent the usb-storage kernel module from being loaded, add the following lines to the file "/etc/modprobe.d/usb-storage.conf" (or create "usb-storage.conf" if it does not exist): install usb-storage /bin/false blacklist usb-storage
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-001958
- Version
- RHEL-09-291015
- Vuln IDs
-
- V-258035
- Rule IDs
-
- SV-258035r1045125_rule
Checks: C-61776r1014858_chk
Verify USBGuard is installed on the operating system with the following command: $ sudo dnf list installed usbguard Example output: Installed Packages usbguard.x86_64 1.0.0-10.el9_1.2 @rhel-9-for-x86_64-appstream-rpms If the USBGuard package is not installed, ask the SA to indicate how unauthorized peripherals are being blocked. If there is no evidence that unauthorized peripherals are being blocked before establishing a connection, this is a finding. If the system is virtual machine with no virtual or physical USB peripherals attached, this is not a finding.
Fix: F-61700r1045124_fix
Install the usbguard package with the following command: $ sudo dnf install usbguard Enable the service to start on boot and then start it with the following commands: $ sudo systemctl enable usbguard $ sudo systemctl start usbguard Verify the status of the service with the following command: $ sudo systemctl status usbguard Note: usbguard will need to be configured to allow authorized devices once it is enabled on RHEL 9.
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-001958
- Version
- RHEL-09-291020
- Vuln IDs
-
- V-258036
- Rule IDs
-
- SV-258036r1014861_rule
Checks: C-61777r1014860_chk
Verify RHEL 9 has USBGuard enabled with the following command: $ systemctl is-active usbguard active If usbguard is not active, ask the SA to indicate how unauthorized peripherals are being blocked. If there is no evidence that unauthorized peripherals are being blocked before establishing a connection, this is a finding. If the system is virtual machine with no virtual or physical USB peripherals attached, this is not a finding.
Fix: F-61701r926094_fix
To enable the USBGuard service run the following command: $ sudo systemctl enable --now usbguard
- RMF Control
- AU-12
- Severity
- L
- CCI
- CCI-000169
- Version
- RHEL-09-291025
- Vuln IDs
-
- V-258037
- Rule IDs
-
- SV-258037r1014863_rule
Checks: C-61778r1014862_chk
To verify that Linux Audit logging is enabled for the USBGuard daemon with the following command: $ sudo grep AuditBackend /etc/usbguard/usbguard-daemon.conf AuditBackend=LinuxAudit If "AuditBackend" is not set to "LinuxAudit", this is a finding. If the system is virtual machine with no virtual or physical USB peripherals attached, this is not a finding.
Fix: F-61702r926097_fix
Configure RHEL 9 USBGuard AuditBackend to use the audit system. Add or edit the following line in /etc/usbguard/usbguard-daemon.conf AuditBackend=LinuxAudit
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-001958
- Version
- RHEL-09-291030
- Vuln IDs
-
- V-258038
- Rule IDs
-
- SV-258038r1045128_rule
Checks: C-61779r1045126_chk
Note: If the system is virtual machine with no virtual or physical USB peripherals attached, this is Not Applicable. Verify the USBGuard has a policy configured with the following command: $ sudo usbguard list-rules allow id 1d6b:0001 serial If the command does not return results or an error is returned, ask the SA to indicate how unauthorized peripherals are being blocked. If there is no evidence that unauthorized peripherals are being blocked before establishing a connection, this is a finding.
Fix: F-61703r1045127_fix
Configure the operating system to enable the blocking of unauthorized peripherals with the following command: Note: This command must be run from a root shell and will create an allow list for any usb devices currently connected to the system. # usbguard generate-policy --no-hash > /etc/usbguard/rules.conf Note: Enabling and starting usbguard without properly configuring it for an individual system will immediately prevent any access over a usb device such as a keyboard or mouse.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-09-291035
- Vuln IDs
-
- V-258039
- Rule IDs
-
- SV-258039r1045131_rule
Checks: C-61780r1045129_chk
Verify that RHEL 9 disables the ability to load the Bluetooth kernel module with the following command: $ sudo grep -r bluetooth /etc/modprobe.conf /etc/modprobe.d/* install bluetooth /bin/false blacklist bluetooth If the command does not return any output, or the lines are commented out, and use of Bluetooth is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Fix: F-61704r1045130_fix
Configure RHEL 9 to disable the Bluetooth adapter when not in use. Create or modify the "/etc/modprobe.d/bluetooth.conf" file with the following lines: install bluetooth /bin/false blacklist bluetooth Reboot the system for the settings to take effect.
- RMF Control
- AC-18
- Severity
- M
- CCI
- CCI-001443
- Version
- RHEL-09-291040
- Vuln IDs
-
- V-258040
- Rule IDs
-
- SV-258040r991568_rule
Checks: C-61781r926105_chk
Verify there are no wireless interfaces configured on the system with the following command: Note: This requirement is Not Applicable for systems that do not have physical wireless network radios. $ nmcli device status DEVICE TYPE STATE CONNECTION virbr0 bridge connected virbr0 wlp7s0 wifi connected wifiSSID enp6s0 ethernet disconnected -- p2p-dev-wlp7s0 wifi-p2p disconnected -- lo loopback unmanaged -- virbr0-nic tun unmanaged -- If a wireless interface is configured and has not been documented and approved by the information system security officer (ISSO), this is a finding.
Fix: F-61705r926106_fix
Configure the system to disable all wireless network interfaces with the following command: $ nmcli radio all off
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-411010
- Vuln IDs
-
- V-258041
- Rule IDs
-
- SV-258041r1038967_rule
Checks: C-61782r926108_chk
Verify that RHEL 9 enforces a 60-day maximum password lifetime for new user accounts by running the following command: $ grep -i pass_max_days /etc/login.defs PASS_MAX_DAYS 60 If the "PASS_MAX_DAYS" parameter value is greater than "60", or commented out, this is a finding.
Fix: F-61706r926109_fix
Configure RHEL 9 to enforce a 60-day maximum password lifetime. Add or modify the following line in the "/etc/login.defs" file: PASS_MAX_DAYS 60
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-411015
- Vuln IDs
-
- V-258042
- Rule IDs
-
- SV-258042r1045133_rule
Checks: C-61783r1045132_chk
Verify the maximum time period for existing passwords is restricted to 60 days with the following commands: $ sudo awk -F: '$5 > 60 {printf "%s %d\n", $1, $5}' /etc/shadow $ sudo awk -F: '$5 <= 0 {printf "%s %d\n", $1, $5}' /etc/shadow If any results are returned that are not associated with a system account, this is a finding.
Fix: F-61707r926112_fix
Configure noncompliant accounts to enforce a 60-day maximum password lifetime restriction. passwd -x 60 [user]
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-411020
- Vuln IDs
-
- V-258043
- Rule IDs
-
- SV-258043r991589_rule
Checks: C-61784r926114_chk
Verify all local interactive users on RHEL 9 are assigned a home directory upon creation with the following command: $ grep -i create_home /etc/login.defs CREATE_HOME yes If the value for "CREATE_HOME" parameter is not set to "yes", the line is missing, or the line is commented out, this is a finding.
Fix: F-61708r926115_fix
Configure RHEL 9 to assign home directories to all new local interactive users by setting the "CREATE_HOME" parameter in "/etc/login.defs" to "yes" as follows. CREATE_HOME yes
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-411025
- Vuln IDs
-
- V-258044
- Rule IDs
-
- SV-258044r1045135_rule
Checks: C-61785r1045134_chk
Verify that the default umask for all local interactive users is "077". Identify the locations of all local interactive user home directories by looking at the "/etc/passwd" file. Check all local interactive user initialization files for interactive users with the following command: Note: The example is for a system that is configured to create users home directories in the "/home" directory. $ sudo find /home -maxdepth 2 -type f -name ".[^.]*" -exec grep -iH -d skip --exclude=.bash_history umask {} \; /home/wadea/.bash_history:grep -i umask /etc/bashrc /etc/csh.cshrc /etc/profile /home/wadea/.bash_history:grep -i umask /etc/login.defs If any local interactive user initialization files are found to have a umask statement that sets a value less restrictive than "077", this is a finding.
Fix: F-61709r926118_fix
Remove the umask statement from all local interactive user's initialization files. If the account is for an application, the requirement for a umask less restrictive than "077" can be documented with the information system security officer, but the user agreement for access to the account must specify that the local interactive user must log on to their account first and then switch the user to the application account with the correct option to gain the account's environment variables.
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000135
- Version
- RHEL-09-411030
- Vuln IDs
-
- V-258045
- Rule IDs
-
- SV-258045r958482_rule
Checks: C-61786r926120_chk
Verify that RHEL 9 contains no duplicate UIDs for interactive users with the following command: $ sudo awk -F ":" 'list[$3]++{print $1, $3}' /etc/passwd If output is produced and the accounts listed are interactive user accounts, this is a finding.
Fix: F-61710r926121_fix
Edit the file "/etc/passwd" and provide each interactive user account that has a duplicate UID with a unique UID.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-411035
- Vuln IDs
-
- V-258046
- Rule IDs
-
- SV-258046r991589_rule
Checks: C-61787r926123_chk
Verify that system accounts must not have an interactive login shell with the following command: $ awk -F: '($3<1000){print $1 ":" $3 ":" $7}' /etc/passwd root:0:/bin/bash bin:1:/sbin/nologin daemon:2:/sbin/nologin adm:3:/sbin/nologin lp:4:/sbin/nologin Identify the system accounts from this listing that do not have a nologin shell. If any system account (other than the root account) has a login shell and it is not documented with the information system security officer (ISSO), this is a finding.
Fix: F-61711r926124_fix
Configure RHEL 9 so that all noninteractive accounts on the system do not have an interactive shell assigned to them. If the system account needs a shell assigned for mission operations, document the need with the information system security officer (ISSO). Run the following command to disable the interactive shell for a specific noninteractive user account: Replace <user> with the user that has a login shell. $ sudo usermod --shell /sbin/nologin <user> Do not perform the steps in this section on the root account. Doing so will cause the system to become inaccessible.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000016
- Version
- RHEL-09-411040
- Vuln IDs
-
- V-258047
- Rule IDs
-
- SV-258047r1101951_rule
Checks: C-61788r926126_chk
Verify temporary accounts have been provisioned with an expiration date of 72 hours. For every existing temporary account, run the following command to obtain its account expiration information: $ sudo chage -l <temporary_account_name> | grep -i "account expires" Verify each of these accounts has an expiration date set within 72 hours. If any temporary accounts have no expiration date set or do not expire within 72 hours, this is a finding.
Fix: F-61712r926127_fix
Configure the operating system to expire temporary accounts after 72 hours with the following command: $ sudo chage -E $(date -d +3days +%Y-%m-%d) <temporary_account_name>
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000764
- Version
- RHEL-09-411045
- Vuln IDs
-
- V-258048
- Rule IDs
-
- SV-258048r1069380_rule
Checks: C-61789r1069379_chk
Verify that all RHEL 9 interactive users have a valid GID. Check that the interactive users have a valid GID with the following command: $ sudo pwck -r If pwck reports "no group" for any interactive user, this is a finding.
Fix: F-61713r926130_fix
Configure the system so that all GIDs are referenced in "/etc/passwd" are defined in "/etc/group". Edit the file "/etc/passwd" and ensure that every user's GID is a valid GID.
- RMF Control
- Severity
- M
- CCI
- CCI-003627
- Version
- RHEL-09-411050
- Vuln IDs
-
- V-258049
- Rule IDs
-
- SV-258049r1015092_rule
Checks: C-61790r926132_chk
Verify that RHEL 9 account identifiers (individuals, groups, roles, and devices) are disabled after 35 days of inactivity with the following command: Check the account inactivity value by performing the following command: $ sudo grep -i inactive /etc/default/useradd INACTIVE=35 If "INACTIVE" is set to "-1", a value greater than "35", or is commented out, this is a finding.
Fix: F-61714r926133_fix
Configure RHEL 9 to disable account identifiers after 35 days of inactivity after the password expiration. Run the following command to change the configuration for useradd: $ sudo useradd -D -f 35 The recommendation is 35 days, but a lower value is acceptable.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-411055
- Vuln IDs
-
- V-258050
- Rule IDs
-
- SV-258050r1045137_rule
Checks: C-61791r1045136_chk
Verify that all local interactive user initialization file executable search path statements do not contain statements that will reference a working directory other than user home directories with the following commands: $ sudo find /home -maxdepth 2 -type f -name ".[^.]*" -exec grep -iH path= {} \; PATH="$HOME/.local/bin:$HOME/bin:$PATH" If any local interactive user initialization files have executable search path statements that include directories outside of their home directory, and this is not documented with the ISSO as an operational requirement, this is a finding.
Fix: F-61715r926136_fix
Edit the local interactive user initialization files to change any PATH variable statements that reference directories other than their home directory. If a local interactive user requires path variables to reference a directory owned by the application, it must be documented with the ISSO.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-411060
- Vuln IDs
-
- V-258051
- Rule IDs
-
- SV-258051r991589_rule
Checks: C-61792r926138_chk
Verify that interactive users on the system have a home directory assigned with the following command: $ sudo awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1, $3, $6}' /etc/passwd smithk:x:1000:1000:smithk:/home/smithk:/bin/bash scsaustin:x:1001:1001:scsaustin:/home/scsaustin:/bin/bash djohnson:x:1002:1002:djohnson:/home/djohnson:/bin/bash Inspect the output and verify that all interactive users (normally users with a user identifier (UID) greater that 1000) have a home directory defined. If users home directory is not defined, this is a finding.
Fix: F-61716r926139_fix
Create and assign home directories to all local interactive users on RHEL 9 that currently do not have a home directory assigned.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-411065
- Vuln IDs
-
- V-258052
- Rule IDs
-
- SV-258052r991589_rule
Checks: C-61793r926141_chk
Verify the assigned home directories of all interactive users on the system exist with the following command: $ sudo pwck -r user 'mailnull': directory 'var/spool/mqueue' does not exist The output should not return any interactive users. If users home directory does not exist, this is a finding.
Fix: F-61717r926142_fix
Create home directories to all local interactive users that currently do not have a home directory assigned. Use the following commands to create the user home directory assigned in "/etc/ passwd": Note: The example will be for the user wadea, who has a home directory of "/home/wadea", a user identifier (UID) of "wadea", and a Group Identifier (GID) of "users assigned" in "/etc/passwd". $ sudo mkdir /home/wadea $ sudo chown wadea /home/wadea $ sudo chgrp users /home/wadea $ sudo chmod 0750 /home/wadea
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-411070
- Vuln IDs
-
- V-258053
- Rule IDs
-
- SV-258053r991589_rule
Checks: C-61794r926144_chk
Verify the assigned home directory of all local interactive users is group-owned by that user's primary GID with the following command: Note: This may miss local interactive users that have been assigned a privileged user identifier (UID). Evidence of interactive use may be obtained from a number of log files containing system logon information. The returned directory "/home/wadea" is used as an example. $ sudo ls -ld $(awk -F: '($3>=1000)&&($7 !~ /nologin/){print $6}' /etc/passwd) drwxr-x--- 2 wadea admin 4096 Jun 5 12:41 wadea Check the user's primary group with the following command: $ sudo grep $(grep wadea /etc/passwd | awk -F: ‘{print $4}') /etc/group admin:x:250:wadea,jonesj,jacksons If the user home directory referenced in "/etc/passwd" is not group-owned by that user's primary GID, this is a finding.
Fix: F-61718r926145_fix
Change the group owner of a local interactive user's home directory to the group found in "/etc/passwd". To change the group owner of a local interactive user's home directory, use the following command: Note: The example will be for the user "wadea", who has a home directory of "/home/wadea", and has a primary group of users. $ sudo chgrp users /home/wadea
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-09-411075
- Vuln IDs
-
- V-258054
- Rule IDs
-
- SV-258054r958736_rule
Checks: C-61795r926147_chk
Verify RHEL 9 is configured to lock an account after three unsuccessful logon attempts with the command: $ grep 'deny =' /etc/security/faillock.conf deny = 3 If the "deny" option is not set to "3" or less (but not "0"), is missing or commented out, this is a finding.
Fix: F-61719r926148_fix
Configure RHEL 9 to lock an account when three unsuccessful logon attempts occur. Add/modify the "/etc/security/faillock.conf" file to match the following line: deny = 3
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-09-411080
- Vuln IDs
-
- V-258055
- Rule IDs
-
- SV-258055r1045140_rule
Checks: C-61796r1045138_chk
Verify RHEL 9 is configured to lock the root account after three unsuccessful logon attempts with the command: $ sudo grep even_deny_root /etc/security/faillock.conf even_deny_root If the "even_deny_root" option is not set or is missing or commented out, this is a finding.
Fix: F-61720r1045139_fix
To configure RHEL 9 to lock out the "root" account after a number of incorrect logon attempts using "pam_faillock.so", first enable the feature using the following command: $ sudo authselect enable-feature with-faillock Edit the "/etc/security/faillock.conf" by uncommenting or adding the following line: even_deny_root
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-09-411085
- Vuln IDs
-
- V-258056
- Rule IDs
-
- SV-258056r1045143_rule
Checks: C-61797r1045141_chk
Note: If the system administrator demonstrates the use of an approved centralized account management method that locks an account after three unsuccessful logon attempts within a period of 15 minutes, this requirement is Not Applicable. Verify RHEL 9 locks an account after three unsuccessful logon attempts within a period of 15 minutes with the following command: $ sudo grep fail_interval /etc/security/faillock.conf fail_interval = 900 If the "fail_interval" option is not set to "900" or less (but not "0"), the line is commented out, or the line is missing, this is a finding.
Fix: F-61721r1045142_fix
To configure RHEL 9 to lock out the "root" account after a number of incorrect logon attempts within 15 minutes using "pam_faillock.so", enable the feature using the following command: $ sudo authselect enable-feature with-faillock Then edit the "/etc/security/faillock.conf" file as follows: fail_interval = 900
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-09-411090
- Vuln IDs
-
- V-258057
- Rule IDs
-
- SV-258057r1045146_rule
Checks: C-61798r1045144_chk
Verify RHEL 9 is configured to lock an account until released by an administrator after three unsuccessful logon attempts with the command: $ sudo grep -w unlock_time /etc/security/faillock.conf unlock_time = 0 If the "unlock_time" option is not set to "0" or the line is missing or commented out, this is a finding.
Fix: F-61722r1045145_fix
Configure RHEL 9 to lock an account until released by an administrator after three unsuccessful logon attempts with the command: $ sudo authselect enable-feature with-faillock Edit the "/etc/security/faillock.conf" file as follows: unlock_time = 0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-411095
- Vuln IDs
-
- V-258058
- Rule IDs
-
- SV-258058r1045148_rule
Checks: C-61799r1045147_chk
Verify that there are no unauthorized interactive user accounts with the following command: $ less /etc/passwd root:x:0:0:root:/root:/bin/bash ... games:x:12:100:games:/usr/games:/sbin/nologin scsaustin:x:1001:1001:scsaustin:/home/scsaustin:/bin/bash djohnson:x:1002:1002:djohnson:/home/djohnson:/bin/bash Interactive user accounts generally will have a user identifier (UID) of 1000 or greater, a home directory in a specific partition, and an interactive shell. Obtain the list of interactive user accounts authorized to be on the system from the system administrator or information system security officer (ISSO) and compare it to the list of local interactive user accounts on the system. If there are unauthorized local user accounts on the system, this is a finding.
Fix: F-61723r926160_fix
Remove unauthorized local interactive user accounts with the following command where <unauthorized_user> is the unauthorized account: $ sudo userdel <unauthorized_user>
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-09-411100
- Vuln IDs
-
- V-258059
- Rule IDs
-
- SV-258059r991589_rule
Checks: C-61800r926162_chk
Verify that only the "root" account has a UID "0" assignment with the following command: $ awk -F: '$3 == 0 {print $1}' /etc/passwd root If any accounts other than "root" have a UID of "0", this is a finding.
Fix: F-61724r926163_fix
Change the UID of any account on the system, other than root, that has a UID of "0". If the account is associated with system commands or applications, the UID should be changed to one greater than "0" but less than "1000". Otherwise, assign a UID of greater than "1000" that has not already been assigned.
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-09-411105
- Vuln IDs
-
- V-258060
- Rule IDs
-
- SV-258060r1045150_rule
Checks: C-61801r1045149_chk
Verify the "/etc/security/faillock.conf" file is configured to use a nondefault faillock directory to ensure contents persist after reboot with the following command: $ sudo grep -w dir /etc/security/faillock.conf dir = /var/log/faillock If the "dir" option is not set to a nondefault documented tally log directory or is missing or commented out, this is a finding.
Fix: F-61725r926166_fix
Configure RHEL 9 maintain the contents of the faillock directory after a reboot. Add/modify the "/etc/security/faillock.conf" file to match the following line: dir = /var/log/faillock
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000764
- Version
- RHEL-09-411110
- Vuln IDs
-
- V-258061
- Rule IDs
-
- SV-258061r958482_rule
Checks: C-61802r926168_chk
Verify that RHEL 9 contains no duplicate GIDs for interactive users with the following command: $ cut -d : -f 3 /etc/group | uniq -d If the system has duplicate GIDs, this is a finding.
Fix: F-61726r926169_fix
Edit the file "/etc/group" and provide each group that has a duplicate GID with a unique GID.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-411115
- Vuln IDs
-
- V-258062
- Rule IDs
-
- SV-258062r991589_rule
Checks: C-61803r926171_chk
Verify that local initialization files do not execute world-writable programs with the following command: Note: The example will be for a system that is configured to create user home directories in the "/home" directory. $ sudo find /home -perm -002 -type f -name ".[^.]*" -exec ls -ld {} \; If any local initialization files are found to reference world-writable files, this is a finding.
Fix: F-61727r926172_fix
Set the mode on files being executed by the local initialization files with the following command: $ sudo chmod 0755 <file>
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- RHEL-09-412035
- Vuln IDs
-
- V-258068
- Rule IDs
-
- SV-258068r1101950_rule
Checks: C-61809r1014870_chk
Verify RHEL 9 is configured to exit interactive command shell user sessions after 10 minutes of inactivity or less with the following command: $ sudo grep -i tmout /etc/profile /etc/profile.d/*.sh /etc/profile.d/tmout.sh:declare -xr TMOUT=600 If "TMOUT" is not set to "600" or less in a script located in the "/etc/'profile.d/ directory, is missing or is commented out, this is a finding.
Fix: F-61733r1014871_fix
Configure RHEL 9 to exit interactive command shell user sessions after 10 minutes of inactivity. Add or edit the following line in "/etc/profile.d/tmout.sh": #!/bin/bash declare -xr TMOUT=600
- RMF Control
- AC-10
- Severity
- L
- CCI
- CCI-000054
- Version
- RHEL-09-412040
- Vuln IDs
-
- V-258069
- Rule IDs
-
- SV-258069r958398_rule
Checks: C-61810r926192_chk
Verify RHEL 9 limits the number of concurrent sessions to "10" for all accounts and/or account types with the following command: $ grep -r -s maxlogins /etc/security/limits.conf /etc/security/limits.d/*.conf /etc/security/limits.conf:* hard maxlogins 10 This can be set as a global domain (with the * wildcard) but may be set differently for multiple domains. If the "maxlogins" item is missing, commented out, or the value is set greater than "10" and is not documented with the information system security officer (ISSO) as an operational requirement for all domains that have the "maxlogins" item assigned, this is a finding.
Fix: F-61734r926193_fix
Configure RHEL 9 to limit the number of concurrent sessions to "10" for all accounts and/or account types. Add the following line to the top of the /etc/security/limits.conf or in a ".conf" file defined in /etc/security/limits.d/: * hard maxlogins 10
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-09-412045
- Vuln IDs
-
- V-258070
- Rule IDs
-
- SV-258070r1045153_rule
Checks: C-61811r1045151_chk
Verify the "/etc/security/faillock.conf" file is configured to log username information when unsuccessful logon attempts occur with the following command: $ sudo grep audit /etc/security/faillock.conf audit If the "audit" option is not set, is missing, or is commented out, this is a finding.
Fix: F-61735r1045152_fix
Configure RHEL 9 to log username information when unsuccessful logon attempts occur. Enable the feature using the following command: $ sudo authselect enable-feature with-faillock Add/modify the "/etc/security/faillock.conf" file to match the following line: audit
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-412050
- Vuln IDs
-
- V-258071
- Rule IDs
-
- SV-258071r991588_rule
Checks: C-61812r926198_chk
Verify RHEL 9 enforces a delay of at least four seconds between console logon prompts following a failed logon attempt with the following command: $ grep -i fail_delay /etc/login.defs FAIL_DELAY 4 If the value of "FAIL_DELAY" is not set to "4" or greater, or the line is commented out, this is a finding.
Fix: F-61736r926199_fix
Configure the RHEL 9 to enforce a delay of at least four seconds between logon prompts following a failed console logon attempt. Modify the "/etc/login.defs" file to set the "FAIL_DELAY" parameter to 4 or greater: FAIL_DELAY 4
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-412055
- Vuln IDs
-
- V-258072
- Rule IDs
-
- SV-258072r1045155_rule
Checks: C-61813r1045154_chk
Verify the "umask" setting is configured correctly in the "/etc/bashrc" file with the following command: Note: If the value of the "umask" parameter is set to "000" "/etc/bashrc" file, the Severity is raised to a CAT I. $ grep umask /etc/bashrc [ `umask` -eq 0 ] && umask 077 If the value for the "umask" parameter is not "077", or the "umask" parameter is missing or is commented out, this is a finding.
Fix: F-61737r926202_fix
Configure RHEL 9 to define default permissions for all authenticated users using the bash shell. Add or edit the lines for the "umask" parameter in the "/etc/bashrc" file to "077": umask 077
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-412060
- Vuln IDs
-
- V-258073
- Rule IDs
-
- SV-258073r1045157_rule
Checks: C-61814r1045156_chk
Verify the "umask" setting is configured correctly in the "/etc/csh.cshrc" file with the following command: Note: If the value of the "umask" parameter is set to "000" "/etc/csh.cshrc" file, the Severity is raised to a CAT I. $ grep umask /etc/csh.cshrc umask 077 If the value for the "umask" parameter is not "077", or the "umask" parameter is missing or is commented out, this is a finding.
Fix: F-61738r926205_fix
Configure RHEL 9 to define default permissions for all authenticated users using the c shell. Add or edit the lines for the "umask" parameter in the "/etc/csh.cshrc" file to "077": umask 077
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-412065
- Vuln IDs
-
- V-258074
- Rule IDs
-
- SV-258074r991590_rule
Checks: C-61815r926207_chk
Verify RHEL 9 defines default permissions for all authenticated users in such a way that the user can only read and modify their own files with the following command: Note: If the value of the "UMASK" parameter is set to "000" in "/etc/login.defs" file, the Severity is raised to a CAT I. # grep -i umask /etc/login.defs UMASK 077 If the value for the "UMASK" parameter is not "077", or the "UMASK" parameter is missing or is commented out, this is a finding.
Fix: F-61739r926208_fix
Configure RHEL 9 to define default permissions for all authenticated users in such a way that the user can only read and modify their own files. Add or edit the lines for the "UMASK" parameter in the "/etc/login.defs" file to "077": UMASK 077
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-412070
- Vuln IDs
-
- V-258075
- Rule IDs
-
- SV-258075r991590_rule
Checks: C-61816r926210_chk
Verify the "umask" setting is configured correctly in the "/etc/profile" file with the following command: Note: If the value of the "umask" parameter is set to "000" "/etc/profile" file, the Severity is raised to a CAT I. $ grep umask /etc/profile umask 077 If the value for the "umask" parameter is not "077", or the "umask" parameter is missing or is commented out, this is a finding.
Fix: F-61740r926211_fix
Configure RHEL 9 to define default permissions for all authenticated users in such a way that the user can only read and modify their own files. Add or edit the lines for the "umask" parameter in the "/etc/profile" file to "077": umask 077
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-09-412075
- Vuln IDs
-
- V-258076
- Rule IDs
-
- SV-258076r991589_rule
Checks: C-61817r926213_chk
Verify users are provided with feedback on when account accesses last occurred with the following command: $ sudo grep pam_lastlog /etc/pam.d/postlogin session required pam_lastlog.so showfailed If "pam_lastlog" is missing from "/etc/pam.d/postlogin" file, or the silent option is present, this is a finding.
Fix: F-61741r926214_fix
Configure RHEL 9 to provide users with feedback on when account accesses last occurred by setting the required configuration options in "/etc/pam.d/postlogin". Add the following line to the top of "/etc/pam.d/postlogin": session required pam_lastlog.so showfailed
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- RHEL-09-412080
- Vuln IDs
-
- V-258077
- Rule IDs
-
- SV-258077r1014874_rule
Checks: C-61818r926216_chk
Verify that RHEL 9 logs out sessions that are idle for 15 minutes with the following command: $ sudo grep -i ^StopIdleSessionSec /etc/systemd/logind.conf StopIdleSessionSec=900 If "StopIdleSessionSec" is not configured to "900" seconds, this is a finding.
Fix: F-61742r1014873_fix
Configure RHEL 9 to log out idle sessions by editing the /etc/systemd/logind.conf file with the following line: StopIdleSessionSec=900 The "logind" service must be restarted for the changes to take effect. To restart the "logind" service, run the following command: $ sudo systemctl restart systemd-logind
- RMF Control
- SC-3
- Severity
- H
- CCI
- CCI-001084
- Version
- RHEL-09-431010
- Vuln IDs
-
- V-258078
- Rule IDs
-
- SV-258078r958944_rule
Checks: C-61819r926219_chk
Ensure that RHEL 9 verifies correct operation of security functions through the use of SELinux with the following command: $ getenforce Enforcing If SELINUX is not set to "Enforcing", this is a finding. Verify that SELinux is configured to be enforcing at boot. grep "SELINUX=" /etc/selinux/config # SELINUX= can take one of these three values: # NOTE: In earlier Fedora kernel builds, SELINUX=disabled would also SELINUX=enforcing If SELINUX line is missing, commented out, or not set to "enforcing", this is a finding.
Fix: F-61743r926220_fix
Configure RHEL 9 to verify correct operation of security functions. Edit the file "/etc/selinux/config" and add or modify the following line: SELINUX=enforcing A reboot is required for the changes to take effect.
- RMF Control
- SI-6
- Severity
- M
- CCI
- CCI-002696
- Version
- RHEL-09-431015
- Vuln IDs
-
- V-258079
- Rule IDs
-
- SV-258079r1045159_rule
Checks: C-61820r1045158_chk
Verify the SELINUX on RHEL 9 is using the targeted policy with the following command: $ sestatus | grep "policy name" Loaded policy name: targeted If the loaded policy name is not "targeted", this is a finding.
Fix: F-61744r926223_fix
Configure RHEL 9 to use the targetd SELINUX policy. Edit the file "/etc/selinux/config" and add or modify the following line: SELINUXTYPE=targeted A reboot is required for the changes to take effect.
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-09-431020
- Vuln IDs
-
- V-258080
- Rule IDs
-
- SV-258080r1045162_rule
Checks: C-61821r1045160_chk
Verify the location of the nondefault tally directory for the pam_faillock module with the following command: Note: If the system does not have SELinux enabled and enforcing a targeted policy, or if the pam_faillock module is not configured for use, this requirement is Not Applicable. $ sudo grep -w dir /etc/security/faillock.conf dir = /var/log/faillock Check the security context type of the nondefault tally directory with the following command: $ ls -Zd /var/log/faillock unconfined_u:object_r:faillog_t:s0 /var/log/faillock If the security context type of the nondefault tally directory is not "faillog_t", this is a finding.
Fix: F-61745r1045161_fix
Configure RHEL 9 to allow the use of a nondefault faillock tally directory while SELinux enforces a targeted policy. First enable the feature using the following command: $ sudo authselect enable-feature with-faillock Create a nondefault faillock tally directory (if it does not already exist) with the following example: $ sudo mkdir /var/log/faillock Then add/modify the "/etc/security/faillock.conf" file to match the following line: dir = /var/log/faillock Update the /etc/selinux/targeted/contexts/files/file_contexts.local with "faillog_t" context type for the nondefault faillock tally directory with the following command: $ sudo semanage fcontext -a -t faillog_t "/var/log/faillock(/.*)?" Next, update the context type of the nondefault faillock directory/subdirectories and files with the following command: $ sudo restorecon -R -v /var/log/faillock
- RMF Control
- SC-3
- Severity
- M
- CCI
- CCI-001084
- Version
- RHEL-09-431025
- Vuln IDs
-
- V-258081
- Rule IDs
-
- SV-258081r1045164_rule
Checks: C-61822r1045163_chk
Verify RHEL 9 has the policycoreutils package installed with the following command: $ dnf list --installed policycoreutils Example output: policycoreutils.x86_64 3.3-6.el9_0 If the "policycoreutils" package is not installed, this is a finding.
Fix: F-61746r926229_fix
The policycoreutils package can be installed with the following command: $ sudo dnf install policycoreutils
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-431030
- Vuln IDs
-
- V-258082
- Rule IDs
-
- SV-258082r1045166_rule
Checks: C-61823r1045165_chk
Verify that RHEL 9 policycoreutils-python-utils service package is installed with the following command: $ dnf list --installed policycoreutils-python-utils Example output: policycoreutils-python-utils.noarch 3.3-6.el9_0 If the "policycoreutils-python-utils" package is not installed, this is a finding.
Fix: F-61747r926232_fix
Install the policycoreutils-python-utils service package (if the policycoreutils-python-utils service is not already installed) with the following command: $ sudo dnf install policycoreutils-python-utils
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002235
- Version
- RHEL-09-432010
- Vuln IDs
-
- V-258083
- Rule IDs
-
- SV-258083r1045168_rule
Checks: C-61824r1045167_chk
Verify that RHEL 9 sudo package is installed with the following command: $ dnf list --installed sudo Example output: sudo.x86_64 1.9.5p2-7.el9 If the "sudo" package is not installed, this is a finding.
Fix: F-61748r926235_fix
The sudo package can be installed with the following command: $ sudo dnf install sudo
- RMF Control
- Severity
- M
- CCI
- CCI-004895
- Version
- RHEL-09-432015
- Vuln IDs
-
- V-258084
- Rule IDs
-
- SV-258084r1050789_rule
Checks: C-61825r1045169_chk
Verify RHEL 9 requires reauthentication when using the "sudo" command to elevate privileges with the following command: $ sudo grep -ir 'timestamp_timeout' /etc/sudoers /etc/sudoers.d/ /etc/sudoers:Defaults timestamp_timeout=0 If results are returned from more than one file location, this is a finding. If "timestamp_timeout" is set to a negative number, is commented out, or no results are returned, this is a finding.
Fix: F-61749r1045170_fix
Configure RHEL 9 to reauthenticate "sudo" commands after the specified timeout: Add the following line to "/etc/sudoers" or a file in "/etc/sudoers.d": Defaults timestamp_timeout=0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-432020
- Vuln IDs
-
- V-258085
- Rule IDs
-
- SV-258085r1045173_rule
Checks: C-61826r1045172_chk
Verify that the sudoers security policy is configured to use the invoking user's password for privilege escalation with the following command: $ sudo egrep -ir '(!rootpw|!targetpw|!runaspw)' /etc/sudoers /etc/sudoers.d/ | grep -v '#' /etc/sudoers:Defaults !targetpw /etc/sudoers:Defaults !rootpw /etc/sudoers:Defaults !runaspw If no results are returned, this is a finding. If results are returned from more than one file location, this is a finding. If "Defaults !targetpw" is not defined, this is a finding. If "Defaults !rootpw" is not defined, this is a finding. If "Defaults !runaspw" is not defined, this is a finding.
Fix: F-61750r926241_fix
Define the following in the Defaults section of the /etc/sudoers file or a single configuration file in the /etc/sudoers.d/ directory: Defaults !targetpw Defaults !rootpw Defaults !runaspw
- RMF Control
- Severity
- M
- CCI
- CCI-004895
- Version
- RHEL-09-432025
- Vuln IDs
-
- V-258086
- Rule IDs
-
- SV-258086r1102063_rule
Checks: C-61827r1102062_chk
Verify that "/etc/sudoers" has no occurrences of "!authenticate" with the following command: $ sudo egrep -iR '!authenticate' /etc/sudoers /etc/sudoers.d/ If any occurrences of "!authenticate" are returned, this is a finding.
Fix: F-61751r926244_fix
Configure RHEL 9 to not allow users to execute privileged actions without authenticating. Remove any occurrence of "!authenticate" found in "/etc/sudoers" file or files in the "/etc/sudoers.d" directory. $ sudo sed -i '/\!authenticate/ s/^/# /g' /etc/sudoers /etc/sudoers.d/*
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-432030
- Vuln IDs
-
- V-258087
- Rule IDs
-
- SV-258087r1102071_rule
Checks: C-61828r1102070_chk
Verify RHEL 9 restricts privilege elevation to authorized personnel with the following command: $ sudo grep -iwR 'ALL' /etc/sudoers /etc/sudoers.d/ | grep -v '#' If the either of the following entries are returned, this is a finding: ALL ALL=(ALL) ALL ALL ALL=(ALL:ALL) ALL
Fix: F-61752r926247_fix
Remove the following entries from the /etc/sudoers file or configuration file under /etc/sudoers.d/: ALL ALL=(ALL) ALL ALL ALL=(ALL:ALL) ALL
- RMF Control
- Severity
- M
- CCI
- CCI-004895
- Version
- RHEL-09-432035
- Vuln IDs
-
- V-258088
- Rule IDs
-
- SV-258088r1050789_rule
Checks: C-61829r926249_chk
Verify that RHEL 9 requires uses to be members of the "wheel" group with the following command: $ grep pam_wheel /etc/pam.d/su auth required pam_wheel.so use_uid If a line for "pam_wheel.so" does not exist, or is commented out, this is a finding.
Fix: F-61753r926250_fix
Configure RHEL 9 to require users to be in the "wheel" group to run "su" command. In file "/etc/pam.d/su", uncomment the following line: "#auth required pam_wheel.so use_uid" $ sed '/^[[:space:]]*#[[:space:]]*auth[[:space:]]\+required[[:space:]]\+pam_wheel\.so[[:space:]]\+use_uid$/s/^[[:space:]]*#//' -i /etc/pam.d/su If necessary, create a "wheel" group and add administrative users to the group.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-433010
- Vuln IDs
-
- V-258089
- Rule IDs
-
- SV-258089r1045179_rule
Checks: C-61830r1045178_chk
Verify that RHEL 9 fapolicyd package is installed with the following command: $ dnf list --installed fapolicyd Example output: fapolicyd.x86_64 1.1-103.el9_0 If the "fapolicyd" package is not installed, this is a finding.
Fix: F-61754r926253_fix
The fapolicyd package can be installed with the following command: $ sudo dnf install fapolicyd
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-433015
- Vuln IDs
-
- V-258090
- Rule IDs
-
- SV-258090r958808_rule
Checks: C-61831r926255_chk
Verify that RHEL 9 fapolicyd is active with the following command: $ systemctl is-active fapolicyd active If fapolicyd module is not active, this is a finding.
Fix: F-61755r926256_fix
Enable the fapolicyd with the following command: $ systemctl enable --now fapolicyd
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611010
- Vuln IDs
-
- V-258091
- Rule IDs
-
- SV-258091r1045185_rule
Checks: C-61832r1045183_chk
Verify RHEL 9 is configured to limit the "pwquality" retry option to "3". Check for the use of the retry option in the security directory with the following command: $ grep -w retry /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf retry = 3 If the value of "retry" is set to "0" or greater than "3", or is missing, this is a finding.
Fix: F-61756r1045184_fix
Configure RHEL 9 to limit the "pwquality" retry option to "3". Add or update the following line in the "/etc/security/pwquality.conf" file or a file in the "/etc/security/pwquality.conf.d/" directory to contain the "retry" parameter: retry = 3
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-09-611025
- Vuln IDs
-
- V-258094
- Rule IDs
-
- SV-258094r1045187_rule
Checks: C-61835r1014877_chk
Verify that null passwords cannot be used with the following command: $ sudo grep -i nullok /etc/pam.d/system-auth /etc/pam.d/password-auth If output is produced, this is a finding. If the system administrator (SA) can demonstrate that the required configuration is contained in a PAM configuration file included or substacked from the system-auth file, this is not a finding.
Fix: F-61759r1045186_fix
If PAM is managed with authselect, use the following command to remove instances of "nullok": $ sudo authselect enable-feature without-nullok Otherwise, remove any instances of the "nullok" option in the "/etc/pam.d/password-auth" and "/etc/pam.d/system-auth" files to prevent logons with empty passwords. Note: Manual changes to the listed file may be overwritten by the "authselect" program.
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-09-611030
- Vuln IDs
-
- V-258095
- Rule IDs
-
- SV-258095r1045189_rule
Checks: C-61836r1014879_chk
Verify the pam_faillock.so module is present in the "/etc/pam.d/system-auth" file: $ grep pam_faillock.so /etc/pam.d/system-auth auth required pam_faillock.so preauth auth required pam_faillock.so authfail account required pam_faillock.so If the pam_faillock.so module is not present in the "/etc/pam.d/system-auth" file with the "preauth" line listed before pam_unix.so, this is a finding. If the system administrator (SA) can demonstrate that the required configuration is contained in a PAM configuration file included or substacked from the system-auth file, this is not a finding.
Fix: F-61760r1045188_fix
Configure RHEL 9 to include the use of the pam_faillock.so module in the /etc/pam.d/system-auth file. If PAM is managed with authselect, enable the feature with the following command: $ sudo authselect enable-feature with-faillock Otherwise, add/modify the appropriate sections of the "/etc/pam.d/system-auth" file to match the following lines: Note: The "preauth" line must be listed before pam_unix.so. auth required pam_faillock.so preauth auth required pam_faillock.so authfail account required pam_faillock.so
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-09-611035
- Vuln IDs
-
- V-258096
- Rule IDs
-
- SV-258096r1045191_rule
Checks: C-61837r1014882_chk
Verify the pam_faillock.so module is present in the "/etc/pam.d/password-auth" file: $ grep pam_faillock.so /etc/pam.d/password-auth auth required pam_faillock.so preauth auth required pam_faillock.so authfail account required pam_faillock.so If the pam_faillock.so module is not present in the "/etc/pam.d/password-auth" file with the "preauth" line listed before pam_unix.so, this is a finding. If the system administrator (SA) can demonstrate that the required configuration is contained in a PAM configuration file included or substacked from the system-auth file, this is not a finding.
Fix: F-61761r1045190_fix
Configure RHEL 9 to include the use of the pam_faillock.so module in the /etc/pam.d/password-auth file. If PAM is managed with authselect, enable the feature with the following command: $ sudo authselect enable-feature with-faillock Otherwise, add/modify the appropriate sections of the "/etc/pam.d/password-auth" file to match the following lines: Note: The "preauth" line must be listed before pam_unix.so. auth required pam_faillock.so preauth auth required pam_faillock.so authfail account required pam_faillock.so
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611040
- Vuln IDs
-
- V-258097
- Rule IDs
-
- SV-258097r1045193_rule
Checks: C-61838r1045192_chk
Verify RHEL 9 uses "pwquality" to enforce the password complexity rules in the password-auth file with the following command: $ grep pam_pwquality /etc/pam.d/password-auth password required pam_pwquality.so If the command does not return a line containing the value "pam_pwquality.so", or the line is commented out, this is a finding. If the system administrator (SA) can demonstrate that the required configuration is contained in a PAM configuration file included or substacked from the system-auth file, this is not a finding.
Fix: F-61762r926277_fix
Configure RHEL 9 to use "pwquality" to enforce password complexity rules. Add the following line to the "/etc/pam.d/password-auth" file (or modify the line to have the required value): password required pam_pwquality.so
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-611045
- Vuln IDs
-
- V-258098
- Rule IDs
-
- SV-258098r1045195_rule
Checks: C-61839r1045194_chk
Verify RHEL 9 uses "pwquality" to enforce the password complexity rules in the system-auth file with the following command: $ grep pam_pwquality /etc/pam.d/system-auth password required pam_pwquality.so If the command does not return a line containing the value "pam_pwquality.so", or the line is commented out, this is a finding. If the system administrator (SA) can demonstrate that the required configuration is contained in a PAM configuration file included or substacked from the system-auth file, this is not a finding.
Fix: F-61763r926280_fix
Configure RHEL 9 to use "pwquality" to enforce password complexity rules. Add the following line to the "/etc/pam.d/system-auth" file(or modify the line to have the required value): password required pam_pwquality.so
- RMF Control
- Severity
- M
- CCI
- CCI-004062
- Version
- RHEL-09-611050
- Vuln IDs
-
- V-258099
- Rule IDs
-
- SV-258099r1045198_rule
Checks: C-61840r1045196_chk
Verify the number of rounds for the password hashing algorithm is configured with the following command: $ grep rounds /etc/pam.d/password-auth password sufficient pam_unix.so sha512 rounds=100000 If a matching line is not returned or "rounds" is less than "100000", this a finding.
Fix: F-61764r1045197_fix
Configure RHEL 9 to use 100000 hashing rounds for hashing passwords. Add or modify the following line in "/etc/pam.d/password-auth" and set "rounds" to "100000". password sufficient pam_unix.so sha512 rounds=100000 Note: Running authselect will overwrite this value unless a custom authselect policy is created.
- RMF Control
- Severity
- M
- CCI
- CCI-004062
- Version
- RHEL-09-611055
- Vuln IDs
-
- V-258100
- Rule IDs
-
- SV-258100r1045201_rule
Checks: C-61841r1045199_chk
Verify the number of rounds for the password hashing algorithm is configured with the following command: $ sudo grep rounds /etc/pam.d/system-auth password sufficient pam_unix.so sha512 rounds=100000 If a matching line is not returned or "rounds" is less than 100000, this a finding.
Fix: F-61765r1045200_fix
Configure RHEL 9 to use 100000 hashing rounds for hashing passwords. Add or modify the following line in "/etc/pam.d/system-auth" and set "rounds" to 100000. password sufficient pam_unix.so sha512 rounds=100000 Note: Running authselect will overwrite this value unless a custom authselect policy is created.
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611060
- Vuln IDs
-
- V-258101
- Rule IDs
-
- SV-258101r1045204_rule
Checks: C-61842r1045202_chk
Verify that RHEL 9 enforces password complexity rules for the root account. Check if root user is required to use complex passwords with the following command: $ grep enforce_for_root /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf /etc/security/pwquality.conf:enforce_for_root If "enforce_for_root" is commented or missing, this is a finding.
Fix: F-61766r1045203_fix
Configure RHEL 9 to enforce password complexity on the root account. Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the "/etc/security/pwquality.conf.d/" directory to contain the "enforce_for_root" parameter: enforce_for_root
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611065
- Vuln IDs
-
- V-258102
- Rule IDs
-
- SV-258102r1045207_rule
Checks: C-61843r1045205_chk
Verify that RHEL 9 enforces password complexity by requiring at least one lowercase character. Check the value for "lcredit" with the following command: $ grep lcredit /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf /etc/security/pwquality.conf:lcredit = -1 If the value of "lcredit" is a positive number or is commented out, this is a finding.
Fix: F-61767r1045206_fix
Configure RHEL 9 to enforce password complexity by requiring at least one lowercase character be used by setting the "lcredit" option. Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the "/etc/security/pwquality.conf.d/" directory to contain the "lcredit" parameter: lcredit = -1
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611070
- Vuln IDs
-
- V-258103
- Rule IDs
-
- SV-258103r1045210_rule
Checks: C-61844r1045208_chk
Verify that RHEL 9 enforces password complexity by requiring at least one numeric character. Check the value for "dcredit" with the following command: $ grep dcredit /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf /etc/security/pwquality.conf:dcredit = -1 If the value of "dcredit" is a positive number or is commented out, this is a finding.
Fix: F-61768r1045209_fix
Configure RHEL 9 to enforce password complexity by requiring at least one numeric character be used by setting the "dcredit" option. Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the "/etc/security/pwquality.conf.d/" directory to contain the "dcredit" parameter: dcredit = -1
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611075
- Vuln IDs
-
- V-258104
- Rule IDs
-
- SV-258104r1015104_rule
Checks: C-61845r926297_chk
Verify RHEL 9 enforces 24 hours as the minimum password lifetime for new user accounts. Check for the value of "PASS_MIN_DAYS" in "/etc/login.defs" with the following command: $ grep -i pass_min_days /etc/login.defs PASS_MIN_DAYS 1 If the "PASS_MIN_DAYS" parameter value is not "1" or greater, or is commented out, this is a finding.
Fix: F-61769r926298_fix
Configure RHEL 9 to enforce 24 hours as the minimum password lifetime. Add the following line in "/etc/login.defs" (or modify the line to have the required value): PASS_MIN_DAYS 1
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611080
- Vuln IDs
-
- V-258105
- Rule IDs
-
- SV-258105r1045212_rule
Checks: C-61846r1045211_chk
Verify that RHEL 9 has configured the minimum time period between password changes for each user account as one day or greater with the following command: $ sudo awk -F: '$4 < 1 {printf "%s %d\n", $1, $4}' /etc/shadow If any results are returned that are not associated with a system account, this is a finding.
Fix: F-61770r926301_fix
Configure noncompliant accounts to enforce a 24 hour minimum password lifetime: $ sudo passwd -n 1 [user]
- RMF Control
- Severity
- M
- CCI
- CCI-004895
- Version
- RHEL-09-611085
- Vuln IDs
-
- V-258106
- Rule IDs
-
- SV-258106r1102061_rule
Checks: C-61847r1102060_chk
Verify that "/etc/sudoers" has no occurrences of "NOPASSWD" with the following command: $ sudo grep -iR 'NOPASSWD' /etc/sudoers /etc/sudoers.d/ If any occurrences of "NOPASSWD" are returned from the command and have not been documented with the information system security officer (ISSO) as an organizationally defined administrative group using multifactor authentication (MFA), this is a finding.
Fix: F-61771r1045214_fix
Configure RHEL 9 to not allow users to execute privileged actions without authenticating with a password. Remove any occurrence of "NOPASSWD" found in "/etc/sudoers" file or files in the "/etc/sudoers.d" directory. $ sudo find /etc/sudoers /etc/sudoers.d -type f -exec sed -i '/NOPASSWD/ s/^/# /g' {} \;
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611090
- Vuln IDs
-
- V-258107
- Rule IDs
-
- SV-258107r1045218_rule
Checks: C-61848r1045216_chk
Verify that RHEL 9 enforces a minimum 15-character password length with the following command: $ grep minlen /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf minlen = 15 If the command does not return a "minlen" value of "15" or greater, does not return a line, or the line is commented out, this is a finding.
Fix: F-61772r1045217_fix
Configure RHEL 9 to enforce a minimum 15-character password length. Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the "/etc/security/pwquality.conf.d/" directory to contain the "minlen" parameter: minlen = 15
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611100
- Vuln IDs
-
- V-258109
- Rule IDs
-
- SV-258109r1045220_rule
Checks: C-61850r926312_chk
Verify that RHEL 9 enforces password complexity by requiring at least one special character with the following command: $ sudo grep ocredit /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf ocredit = -1 If the value of "ocredit" is a positive number or is commented out, this is a finding.
Fix: F-61774r1045219_fix
Configure RHEL 9 to enforce password complexity by requiring at least one special character be used by setting the "ocredit" option. Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the "/etc/security/pwquality.conf.d/" directory to contain the "ocredit" parameter: ocredit = -1
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-611105
- Vuln IDs
-
- V-258110
- Rule IDs
-
- SV-258110r1045223_rule
Checks: C-61851r1045221_chk
Verify RHEL 9 prevents the use of dictionary words for passwords with the following command: $ grep dictcheck /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf /etc/security/pwquality.conf:dictcheck = 1 If "dictcheck" does not have a value other than "0", or is commented out, this is a finding.
Fix: F-61775r1045222_fix
Configure RHEL 9 to prevent the use of dictionary words for passwords. Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the "/etc/security/pwquality.conf.d/" directory to contain the "dictcheck" parameter: dictcheck=1
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611110
- Vuln IDs
-
- V-258111
- Rule IDs
-
- SV-258111r1045226_rule
Checks: C-61852r1045224_chk
Verify that RHEL 9 enforces password complexity by requiring that at least one uppercase character be used. Check the value for "ucredit" with the following command: $ grep ucredit /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf ucredit = -1 If the value of "ucredit" is a positive number or is commented out, this is a finding.
Fix: F-61776r1045225_fix
Configure RHEL 9 to enforce password complexity by requiring that at least one uppercase character be used by setting the "ucredit" option. Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the "/etc/security/pwquality.conf.d/" directory to contain the "ucredit" parameter: ucredit = -1
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611115
- Vuln IDs
-
- V-258112
- Rule IDs
-
- SV-258112r1045229_rule
Checks: C-61853r1045227_chk
Verify that RHEL 9 requires the change of at least eight of the total number of characters when passwords are changed. $ grep difok /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf difok = 8 If the value of "difok" is set to less than "8", or is commented out, this is a finding.
Fix: F-61777r1045228_fix
Configure RHEL 9 to require the change of at least eight of the total number of characters when passwords are changed by setting the "difok" option. Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the "/etc/security/pwquality.conf.d/" directory to contain the "difok" parameter: difok = 8
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611120
- Vuln IDs
-
- V-258113
- Rule IDs
-
- SV-258113r1045232_rule
Checks: C-61854r1045230_chk
Verify that RHEL 9 requires that passwords can have a maximum of four repeating characters of the same character class. $ grep maxclassrepeat /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf maxclassrepeat = 4 If the value of "maxclassrepeat" is set to "0", more than "4", or is commented out, this is a finding.
Fix: F-61778r1045231_fix
Configure RHEL 9 to require the change of the number of repeating characters of the same character class when passwords are changed by setting the "maxclassrepeat" option. Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the "/etc/security/pwquality.conf.d/" directory to contain the "maxclassrepeat" parameter: maxclassrepeat = 4
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611125
- Vuln IDs
-
- V-258114
- Rule IDs
-
- SV-258114r1045235_rule
Checks: C-61855r1045233_chk
Verify that RHEL 9 requires that passwords can have a maximum of three of the same consecutive character. $ grep maxrepeat /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf maxrepeat = 3 If the value of "maxrepeat" is set to more than "3", or is commented out, this is a finding.
Fix: F-61779r1045234_fix
Configure RHEL 9 to require the change of the number of repeating consecutive characters when passwords are changed by setting the "maxrepeat" option. Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the "/etc/security/pwquality.conf.d/" directory to contain the "maxrepeat" parameter: maxrepeat = 3
- RMF Control
- Severity
- M
- CCI
- CCI-004066
- Version
- RHEL-09-611130
- Vuln IDs
-
- V-258115
- Rule IDs
-
- SV-258115r1045238_rule
Checks: C-61856r1045236_chk
Verify that RHEL 9 requires passwords to contain at least four character classes. $ grep minclass /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf minclass = 4 If the value of "minclass" is set to less than "4", or is commented out, this is a finding.
Fix: F-61780r1045237_fix
Configure RHEL 9 to require the change of at least four character classes when passwords are changed by setting the "minclass" option. Add or update the following line in the "/etc/security/pwquality.conf" file or a configuration file in the "/etc/security/pwquality.conf.d/" directory to contain the "minclass" parameter: minclass = 4
- RMF Control
- Severity
- M
- CCI
- CCI-004062
- Version
- RHEL-09-611135
- Vuln IDs
-
- V-258116
- Rule IDs
-
- SV-258116r1045240_rule
Checks: C-61857r1045239_chk
Verify the user and group account administration utilities are configured to store only encrypted representations of passwords with the following command: $ grep crypt_style /etc/libuser.conf crypt_style = sha512 If the "crypt_style" variable is not set to "sha512", is not in the defaults section, is commented out, or does not exist, this is a finding.
Fix: F-61781r1014895_fix
Configure RHEL 9 to use the SHA-512 algorithm for password hashing. Add or change the following line in the "[defaults]" section of "/etc/libuser.conf" file: crypt_style = sha512
- RMF Control
- Severity
- M
- CCI
- CCI-004062
- Version
- RHEL-09-611140
- Vuln IDs
-
- V-258117
- Rule IDs
-
- SV-258117r1015116_rule
Checks: C-61858r926336_chk
Verify the system's shadow file is configured to store only encrypted representations of passwords with a hash value of SHA512 with the following command: # grep -i encrypt_method /etc/login.defs ENCRYPT_METHOD SHA512 If "ENCRYPT_METHOD" does not have a value of "SHA512", or the line is commented out, this is a finding.
Fix: F-61782r926337_fix
Configure RHEL 9 to store only SHA512 encrypted representations of passwords. Add or update the following line in the "/etc/login.defs" file: ENCRYPT_METHOD SHA512
- RMF Control
- Severity
- M
- CCI
- CCI-004895
- Version
- RHEL-09-611145
- Vuln IDs
-
- V-258118
- Rule IDs
-
- SV-258118r1050789_rule
Checks: C-61859r926339_chk
Verify the operating system is not configured to bypass password requirements for privilege escalation with the following command: $ sudo grep pam_succeed_if /etc/pam.d/sudo If any occurrences of "pam_succeed_if" are returned, this is a finding.
Fix: F-61783r926340_fix
Configure the operating system to require users to supply a password for privilege escalation. Remove any occurrences of " pam_succeed_if " in the "/etc/pam.d/sudo" file.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-611155
- Vuln IDs
-
- V-258120
- Rule IDs
-
- SV-258120r991589_rule
Checks: C-61861r926345_chk
Verify that null or blank passwords cannot be used with the following command: $ sudo awk -F: '!$2 {print $1}' /etc/shadow If the command returns any results, this is a finding.
Fix: F-61785r926346_fix
Configure all accounts on RHEL 9 to have a password or lock the account with the following commands: Perform a password reset: $ sudo passwd [username] To lock an account: $ sudo passwd -l [username]
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000764
- Version
- RHEL-09-611160
- Vuln IDs
-
- V-258121
- Rule IDs
-
- SV-258121r1102086_rule
Checks: C-61862r1102085_chk
Verify that RHEL loads the CAC driver with the following command: $ sudo opensc-tool --get-conf-entry app:default:card_drivers cac cac If "cac" is not listed as a card driver, or no line is returned for "card_drivers", this is a finding.
Fix: F-61786r1045242_fix
Configure RHEL 9 to load the CAC driver. $ sudo opensc-tool --set-conf-entry app:default:card_driver:cac Restart the pcscd service to apply the changes: $ sudo systemctl restart pcscd
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000765
- Version
- RHEL-09-611165
- Vuln IDs
-
- V-258122
- Rule IDs
-
- SV-258122r1045246_rule
Checks: C-61863r1045244_chk
Note: If the system administrator (SA) demonstrates the use of an approved alternate multifactor authentication method, this requirement is Not Applicable. To verify that RHEL 9 has smart cards enabled in System Security Services Daemon (SSSD), run the following command: $ sudo grep -ir pam_cert_auth /etc/sssd/sssd.conf /etc/sssd/conf.d/ pam_cert_auth = True If "pam_cert_auth" is not set to "True", the line is commented out, or the line is missing, this is a finding.
Fix: F-61787r1045245_fix
Edit the file "/etc/sssd/sssd.conf" or a configuration file in "/etc/sssd/conf.d" and add or edit the following line: pam_cert_auth = True
- RMF Control
- Severity
- M
- CCI
- CCI-004046
- Version
- RHEL-09-611170
- Vuln IDs
-
- V-258123
- Rule IDs
-
- SV-258123r1134923_rule
Checks: C-61864r1134922_chk
Note: If the system administrator (SA) demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. Verify the operating system implements Online Certificate Status Protocol (OCSP) and is using the proper digest value on the system with the following command: $ sudo grep -sir certificate_verification /etc/sssd/sssd.conf /etc/sssd/conf.d/ | grep -v "^#" /etc/sssd/conf.d/certificate_verification:certificate_verification = ocsp_dgst=sha512 If the certificate_verification line is missing from the [sssd] section, or is missing "ocsp_dgst=sha512", ask the administrator to indicate what type of multifactor authentication is being used and how the system implements certificate status checking. If there is no evidence of certificate status checking being used, this is a finding.
Fix: F-61788r926355_fix
Configure RHEL 9 to implement certificate status checking for multifactor authentication. Review the "/etc/sssd/conf.d/certificate_verification.conf" file to determine if the system is configured to prevent OCSP or certificate verification. Add the following line to the "/etc/sssd/conf.d/certificate_verification.conf" file: certificate_verification = ocsp_dgst=sha512 Set the correct ownership and permissions on the "/etc/sssd/conf.d/certificate_verification.conf" file by running these commands: $ sudo chown root:root "/etc/sssd/conf.d/certificate_verification.conf" $ sudo chmod 600 "/etc/sssd/conf.d/certificate_verification.conf" The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: $ sudo systemctl restart sssd.service
- RMF Control
- Severity
- M
- CCI
- CCI-004046
- Version
- RHEL-09-611175
- Vuln IDs
-
- V-258124
- Rule IDs
-
- SV-258124r1045250_rule
Checks: C-61865r1045249_chk
Note: If the system administrator (SA) demonstrates the use of an approved alternate multifactor authentication method, this requirement is Not Applicable. Verify that RHEL 9 has the pcsc-lite package installed with the following command: $ dnf list --installed pcsc-lite Example output: pcsc-lite.x86_64 1.9.4-1.el9 If the "pcsc-lite" package is not installed, this is a finding.
Fix: F-61789r926358_fix
The pcsc-lite package can be installed with the following command: $ sudo dnf install pcsc-lite
- RMF Control
- Severity
- M
- CCI
- CCI-004046
- Version
- RHEL-09-611180
- Vuln IDs
-
- V-258125
- Rule IDs
-
- SV-258125r1045253_rule
Checks: C-61866r1045251_chk
Verify that the "pcscd" socket is active with the following command: $ systemctl is-active pcscd.socket active If the pcscd socket is not active, this is a finding.
Fix: F-61790r1045252_fix
To enable the pcscd socket, run the following command: $ sudo systemctl enable --now pcscd.socket
- RMF Control
- Severity
- M
- CCI
- CCI-004046
- Version
- RHEL-09-611185
- Vuln IDs
-
- V-258126
- Rule IDs
-
- SV-258126r1045255_rule
Checks: C-61867r1045254_chk
Verify that RHEL 9 has the opensc package installed with the following command: $ dnf list --installed opensc Example output: opensc.x86_64 0.22.0-2.el9 If the "opensc" package is not installed, this is a finding.
Fix: F-61791r926364_fix
The opensc package can be installed with the following command: $ sudo dnf install opensc
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- RHEL-09-611190
- Vuln IDs
-
- V-258127
- Rule IDs
-
- SV-258127r1134925_rule
Checks: C-61868r1134924_chk
Note: If the system administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. Verify the SSH private key files have a passcode. For each private key stored on the system, use the following command: $ sudo ssh-keygen -y -f /path/to/file The expected output is a password prompt: "Enter passphrase:" If the password prompt is not displayed, and the contents of the key are displayed, this is a finding.
Fix: F-61792r926367_fix
Create a new private and public key pair that utilizes a passcode with the following command: $ sudo ssh-keygen -n [passphrase]
- RMF Control
- AC-3
- Severity
- M
- CCI
- CCI-000213
- Version
- RHEL-09-611195
- Vuln IDs
-
- V-258128
- Rule IDs
-
- SV-258128r1117265_rule
Checks: C-61869r926369_chk
Verify that RHEL 9 requires authentication for emergency mode with the following command: $ grep sulogin /usr/lib/systemd/system/emergency.service ExecStart=-/usr/lib/systemd/systemd-sulogin-shell emergency If this line is not returned, or is commented out, this is a finding. If the output is different, this is a finding.
Fix: F-61793r926370_fix
Configure RHEL 9 to require authentication for emergency mode. Add or modify the following line in the "/usr/lib/systemd/system/emergency.service" file: ExecStart=-/usr/lib/systemd/systemd-sulogin-shell emergency
- RMF Control
- AC-3
- Severity
- M
- CCI
- CCI-000213
- Version
- RHEL-09-611200
- Vuln IDs
-
- V-258129
- Rule IDs
-
- SV-258129r1117265_rule
Checks: C-61870r1106457_chk
Verify RHEL 9 requires authentication for single-user mode with the following command: $ grep sulogin /usr/lib/systemd/system/rescue.service ExecStart=-/usr/lib/systemd/systemd-sulogin-shell rescue If the line is not returned from the default systemd file, use the following command to look for modifications to the rescue.service: $ grep sulogin /etc/systemd/system/rescue.service.d/*.conf If the line is not returned from either location this is a finding. Note: The configuration setting can only be in either the default location, or in the drop in file, not both locations.
Fix: F-61794r1102058_fix
Configure RHEL 9 to require authentication for single-user mode. Create a directory for supplementary configuration files at /etc/systemd/system/rescue.service.d/ Copy the original file rescue.service file to the new directory with: $ sudo cp /usr/lib/systemd/system/rescue.service /etc/systemd/system/rescue.service.d/rescue.service.conf Add or modify the following line in the "etc/systemd/system/rescue.service.d/rescue.service.conf" file: ExecStart=-/usr/lib/systemd/systemd-sulogin-shell rescue Apply changes to unit files without rebooting the system: $ sudo systemctl daemon-reload If the modified unit file belongs to a running service, restart the service: $ sudo systemctl restart rescue.service
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000185
- Version
- RHEL-09-631010
- Vuln IDs
-
- V-258131
- Rule IDs
-
- SV-258131r1134927_rule
Checks: C-61872r1134926_chk
Note: If the system administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. Verify RHEL 9 for PKI-based authentication has valid certificates by constructing a certification path (which includes status information) to an accepted trust anchor. Check that the system has a valid DOD root CA installed with the following command: $ sudo openssl x509 -text -in /etc/sssd/pki/sssd_auth_ca_db.pem Example output: Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: sha256WithRSAEncryption Issuer: C = US, O = U.S. Government, OU = DoD, OU = PKI, CN = DoD Root CA 3 Validity Not Before: Mar 20 18:46:41 2012 GMT Not After: Dec 30 18:46:41 2029 GMT Subject: C = US, O = U.S. Government, OU = DoD, OU = PKI, CN = DoD Root CA 3 Subject Public Key Info: Public Key Algorithm: rsaEncryption If the root CA file is not a DOD-issued certificate with a valid date and installed in the "/etc/sssd/pki/sssd_auth_ca_db.pem" location, this is a finding.
Fix: F-61796r997112_fix
Configure RHEL 9, for PKI-based authentication, to validate certificates by constructing a certification path (which includes status information) to an accepted trust anchor. Obtain a valid copy of the DOD root CA file from the PKI CA certificate bundle from cyber.mil and copy the DoD_PKE_CA_chain.pem into the following file: /etc/sssd/pki/sssd_auth_ca_db.pem
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000187
- Version
- RHEL-09-631015
- Vuln IDs
-
- V-258132
- Rule IDs
-
- SV-258132r1134929_rule
Checks: C-61873r1134928_chk
Note: If the system administrator (SA) demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. Verify the certificate of the user or group is mapped to the corresponding user or group in the "sssd.conf" file with the following command: $ sudo find /etc/sssd/sssd.conf /etc/sssd/conf.d/ -type f -exec cat {} \; [certmap/testing.test/rule_name] matchrule =<SAN>.*EDIPI@mil maprule = (userCertificate;binary={cert!bin}) domains = testing.test If the certmap section does not exist, ask the SA to indicate how certificates are mapped to accounts. If there is no evidence of certificate mapping, this is a finding.
Fix: F-61797r1014904_fix
Configure RHEL 9 to map the authenticated identity to the user or group account by adding or modifying the certmap section of the "/etc/sssd/sssd.conf" file based on the following example: [certmap/testing.test/rule_name] matchrule = .*EDIPI@mil maprule = (userCertificate;binary={cert!bin}) domains = testing.test The "sssd" service must be restarted for the changes to take effect. To restart the "sssd" service, run the following command: $ sudo systemctl restart sssd.service
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-002007
- Version
- RHEL-09-631020
- Vuln IDs
-
- V-258133
- Rule IDs
-
- SV-258133r1045263_rule
Checks: C-61874r1045261_chk
Verify that the System Security Services Daemon (SSSD) prohibits the use of cached authentications after one day. Note: Cached authentication settings should be configured even if smart card authentication is not used on the system. Check that SSSD allows cached authentications with the following command: $ sudo grep -ir cache_credentials /etc/sssd/sssd.conf /etc/sssd/conf.d/ cache_credentials = true If "cache_credentials" is set to "false" or missing from the configuration file, this is not a finding and no further checks are required. If "cache_credentials" is set to "true", check that SSSD prohibits the use of cached authentications after one day with the following command: $ sudo grep -ir offline_credentials_expiration /etc/sssd/sssd.conf /etc/sssd/conf.d/ offline_credentials_expiration = 1 If "offline_credentials_expiration" is not set to a value of "1", this is a finding.
Fix: F-61798r1045262_fix
Configure the SSSD to prohibit the use of cached authentications after one day. Edit the file "/etc/sssd/sssd.conf" or a configuration file in "/etc/sssd/conf.d" and add or edit the following line just below the line [pam]: offline_credentials_expiration = 1
- RMF Control
- CM-3
- Severity
- M
- CCI
- CCI-001744
- Version
- RHEL-09-651010
- Vuln IDs
-
- V-258134
- Rule IDs
-
- SV-258134r1101983_rule
Checks: C-61875r1101982_chk
Verify the file integrity tool is configured to verify ACLs. Note: AIDE is highly configurable at install time. This requirement assumes the "aide.conf" file is under the "/etc" directory. If AIDE is not installed, ask the system administrator (SA) how file integrity checks are performed on the system. Use the following command to determine if the file is in a location other than "/etc/aide/aide.conf": $ sudo find / -name aide.conf Use the following command to review the "aide.conf" file to determine if the "acl" rule has been added to the rule list being applied to the files and directories selection lists: $ sudo cat /etc/aide.conf | more If the "acl" rule is not being used on all selection lines in the "/etc/aide.conf" file, is commented out, or ACLs are not being checked by another file integrity tool, this is a finding.
Fix: F-61799r926388_fix
Install AIDE, initialize it, and perform a manual check. Install AIDE: $ sudo dnf install aide Initialize AIDE: $ sudo /usr/sbin/aide --init Example output: Start timestamp: 2023-06-05 10:09:04 -0600 (AIDE 0.16) AIDE initialized database at /var/lib/aide/aide.db.new.gz Number of entries: 86833 --------------------------------------------------- The attributes of the (uncompressed) database(s): --------------------------------------------------- /var/lib/aide/aide.db.new.gz MD5 : coZUtPHhoFoeD7+k54fUvQ== SHA1 : DVpOEMWJwo0uPgrKZAygIUgSxeM= SHA256 : EQiZH0XNEk001tcDmJa+5STFEjDb4MPE TGdBJ/uvZKc= SHA512 : 86KUqw++PZhoPK0SZvT3zuFq9yu9nnPP toei0nENVELJ1LPurjoMlRig6q69VR8l +44EwO9eYyy9nnbzQsfG1g== End timestamp: 2023-06-05 10:09:57 -0600 (run time: 0m 53s) The new database will need to be renamed to be read by AIDE: $ sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz Perform a manual check: $ sudo /usr/sbin/aide --check Example output: 2023-06-05 10:16:08 -0600 (AIDE 0.16) AIDE found NO differences between database and filesystem. Looks okay!! ...
- RMF Control
- CM-3
- Severity
- M
- CCI
- CCI-001744
- Version
- RHEL-09-651015
- Vuln IDs
-
- V-258135
- Rule IDs
-
- SV-258135r1045267_rule
Checks: C-61876r1045266_chk
Verify that RHEL 9 routinely executes a file integrity scan for changes to the system baseline. The command used in the example will use a daily occurrence. Check the cron directories for scripts controlling the execution and notification of results of the file integrity application. For example, if AIDE is installed on the system, use the following commands: $ sudo ls -al /etc/cron.* | grep aide -rwxr-xr-x 1 root root 29 Nov 22 2015 aide $ sudo grep aide /etc/crontab /var/spool/cron/root /etc/crontab: 30 04 * * * root usr/sbin/aide /var/spool/cron/root: 30 04 * * * root usr/sbin/aide $ sudo more /etc/cron.daily/aide #!/bin/bash /usr/sbin/aide --check | /bin/mail -s "$HOSTNAME - Daily aide integrity check run" root@sysname.mil If the file integrity application does not exist, a script file controlling the execution of the file integrity application does not exist, or the file integrity application does not notify designated personnel of changes, this is a finding.
Fix: F-61800r926391_fix
Configure the file integrity tool to run automatically on the system at least weekly and to notify designated personnel if baseline configurations are changed in an unauthorized manner. The AIDE tool can be configured to email designated personnel with the use of the cron system. The following example output is generic. It will set cron to run AIDE daily and to send email at the completion of the analysis $ sudo more /etc/cron.daily/aide #!/bin/bash /usr/sbin/aide --check | /bin/mail -s "$HOSTNAME - Daily aide integrity check run" root@sysname.mil
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-651020
- Vuln IDs
-
- V-258136
- Rule IDs
-
- SV-258136r1045270_rule
Checks: C-61877r1045268_chk
Verify that AIDE is configured to use FIPS 140-3 file hashing with the following command: $ sudo grep sha512 /etc/aide.conf All=p+i+n+u+g+s+m+S+sha512+acl+xattrs+selinux If the "sha512" rule is not being used on all uncommented selection lines in the "/etc/aide.conf" file, or another file integrity tool is not using FIPS 140-3-approved cryptographic hashes for validating file contents and directories, this is a finding.
Fix: F-61801r1045269_fix
Configure the file integrity tool to use FIPS 140-3 cryptographic hashes for validating file and directory contents. If AIDE is installed, ensure the "sha512" rule is present on all uncommented file and directory selection lists. Exclude any log files, or files expected to change frequently, to reduce unnecessary notifications.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001493
- Version
- RHEL-09-651025
- Vuln IDs
-
- V-258137
- Rule IDs
-
- SV-258137r1102081_rule
Checks: C-61878r1102080_chk
Check that AIDE is properly configured to protect the integrity of the audit tools with the following command: $ sudo grep /usr/sbin/au /etc/aide.conf /usr/sbin/auditctl p+i+n+u+g+s+b+acl+xattrs+sha512 /usr/sbin/auditd p+i+n+u+g+s+b+acl+xattrs+sha512 /usr/sbin/ausearch p+i+n+u+g+s+b+acl+xattrs+sha512 /usr/sbin/aureport p+i+n+u+g+s+b+acl+xattrs+sha512 /usr/sbin/autrace p+i+n+u+g+s+b+acl+xattrs+sha512 /usr/sbin/augenrules p+i+n+u+g+s+b+acl+xattrs+sha512 If AIDE is not installed, ask the system administrator (SA) how file integrity checks are performed on the system. If any of the audit tools listed above do not have a corresponding line, ask the SA to indicate what cryptographic mechanisms are being used to protect the integrity of the audit tools. If there is no evidence of integrity protection, this is a finding.
Fix: F-61802r943020_fix
Add or update the following lines to "/etc/aide.conf", to protect the integrity of the audit tools. /usr/sbin/auditctl p+i+n+u+g+s+b+acl+xattrs+sha512 /usr/sbin/auditd p+i+n+u+g+s+b+acl+xattrs+sha512 /usr/sbin/ausearch p+i+n+u+g+s+b+acl+xattrs+sha512 /usr/sbin/aureport p+i+n+u+g+s+b+acl+xattrs+sha512 /usr/sbin/autrace p+i+n+u+g+s+b+acl+xattrs+sha512 /usr/sbin/augenrules p+i+n+u+g+s+b+acl+xattrs+sha512
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-09-651030
- Vuln IDs
-
- V-258138
- Rule IDs
-
- SV-258138r1045274_rule
Checks: C-61879r1045273_chk
Verify that AIDE is verifying ACLs with the following command: $ sudo grep acl /etc/aide.conf All= p+i+n+u+g+s+m+S+sha512+acl+xattrs+selinux If the "acl" rule is not being used on all uncommented selection lines in the "/etc/aide.conf" file, or ACLs are not being checked by another file integrity tool, this is a finding.
Fix: F-61803r926400_fix
Configure the file integrity tool to check file and directory ACLs. If AIDE is installed, ensure the "acl" rule is present on all uncommented file and directory selection lists.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-09-651035
- Vuln IDs
-
- V-258139
- Rule IDs
-
- SV-258139r1045276_rule
Checks: C-61880r1045275_chk
Verify that AIDE is configured to verify extended attributes with the following command: $ sudo grep xattrs /etc/aide.conf All= p+i+n+u+g+s+m+S+sha512+acl+xattrs+selinux If the "xattrs" rule is not being used on all uncommented selection lines in the "/etc/aide.conf" file, or extended attributes are not being checked by another file integrity tool, this is a finding.
Fix: F-61804r926403_fix
Configure the file integrity tool to check file and directory extended attributes. If AIDE is installed, ensure the "xattrs" rule is present on all uncommented file and directory selection lists.
- RMF Control
- AU-6
- Severity
- M
- CCI
- CCI-000154
- Version
- RHEL-09-652010
- Vuln IDs
-
- V-258140
- Rule IDs
-
- SV-258140r1106460_rule
Checks: C-61881r1106459_chk
Verify RHEL 9 has the rsyslog package installed with the following command: $ dnf list --installed rsyslog Example output: rsyslog.x86_64 8.2102.0-101.el9_0.1 If the "rsyslog" package is not installed, this is a finding.
Fix: F-61805r1106358_fix
Install the rsyslog package with the following command: $ sudo dnf install rsyslog
- RMF Control
- IA-7
- Severity
- M
- CCI
- CCI-000803
- Version
- RHEL-09-652015
- Vuln IDs
-
- V-258141
- Rule IDs
-
- SV-258141r1045280_rule
Checks: C-61882r1045279_chk
Verify that RHEL 9 has the rsyslog-gnutls package installed with the following command: $ dnf list --installed rsyslog-gnutls Example output: rsyslog-gnutls.x86_64 8.2102.0-101.el9_0.1 If the "rsyslog-gnutls" package is not installed, this is a finding.
Fix: F-61806r926409_fix
The rsyslog-gnutls package can be installed with the following command: $ sudo dnf install rsyslog-gnutls
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-652020
- Vuln IDs
-
- V-258142
- Rule IDs
-
- SV-258142r991589_rule
Checks: C-61883r926411_chk
Verify that "rsyslog" is active with the following command: $ systemctl is-active rsyslog active If the rsyslog service is not active, this is a finding.
Fix: F-61807r926412_fix
To enable the rsyslog service, run the following command: $ sudo systemctl enable --now rsyslog
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-652025
- Vuln IDs
-
- V-258143
- Rule IDs
-
- SV-258143r1134931_rule
Checks: C-61884r1134930_chk
Note: If the system administrator can demonstrate that another tool (e.g., SPLUNK) is being used to manage log offload and aggregation in lieu of rsyslog, this check is not applicable. Verify that RHEL 9 is not configured to receive remote logs using rsyslog with the following commands: $ ss -tulnp | grep rsyslog If no output is returned, rsyslog is not listening for remote logs. If output appears, check for configured ports (514 is the default for syslog). Check for remote logging configuration in rsyslog by examining the rsyslog configuration files: $ sudo grep -E 'InputTCPServerRun | UDPServerRun' /etc/rsyslog.conf /etc/rsyslog.d/* If uncommented lines are returned, this is a finding.
Fix: F-61808r1045282_fix
Configure RHEL 9 to not receive remote logs using rsyslog. Remove the lines in /etc/rsyslog.conf and any files in the /etc/rsyslog.d directory that match any of the following: module(load="imtcp") module(load="imudp") module(load="imrelp") input(type="imudp" port="514") input(type="imtcp" port="514") input(type="imrelp" port="514") The rsyslog daemon must be restarted for the changes to take effect: $ sudo systemctl restart rsyslog.service
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-000067
- Version
- RHEL-09-652030
- Vuln IDs
-
- V-258144
- Rule IDs
-
- SV-258144r1045286_rule
Checks: C-61885r1045284_chk
Verify that RHEL 9 monitors all remote access methods. Check that remote access methods are being logged by running the following command: $ grep -rE '(auth.\*|authpriv.\*|daemon.\*)' /etc/rsyslog.conf /etc/rsyslog.d/ /etc/rsyslog.conf:authpriv.* If "auth.*", "authpriv.*" or "daemon.*" are not configured to be logged, this is a finding.
Fix: F-61809r1045285_fix
Add or update the following lines to the "/etc/rsyslog.conf" file or a file in "/etc/rsyslog.d": auth.*;authpriv.*;daemon.* /var/log/secure The "rsyslog" service must be restarted for the changes to take effect with the following command: $ sudo systemctl restart rsyslog.service
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- RHEL-09-652040
- Vuln IDs
-
- V-258146
- Rule IDs
-
- SV-258146r1045288_rule
Checks: C-61887r1045287_chk
Verify RHEL 9 authenticates the remote logging server for offloading audit logs with the following command: $ grep -i 'StreamDriver[\.]*AuthMode' /etc/rsyslog.conf /etc/rsyslog.d/*.conf /etc/rsyslog.conf:$ActionSendStreamDriverAuthMode x509/name If the variable name "StreamDriverAuthMode" is present in an omfwd statement block, this is not a finding. However, if the "StreamDriverAuthMode" variable is in a module block, this is a finding. If the value of the "$ActionSendStreamDriverAuthMode or StreamDriver.AuthMode" option is not set to "x509/name" or the line is commented out, ask the system administrator (SA) to indicate how the audit logs are offloaded to a different system or media. If there is no evidence that the transfer of the audit logs being offloaded to another system or media is encrypted, this is a finding.
Fix: F-61811r926424_fix
Configure RHEL 9 to authenticate the remote logging server for offloading audit logs by setting the following option in "/etc/rsyslog.conf" or "/etc/rsyslog.d/[customfile].conf": $ActionSendStreamDriverAuthMode x509/name
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- RHEL-09-652045
- Vuln IDs
-
- V-258147
- Rule IDs
-
- SV-258147r1045290_rule
Checks: C-61888r1045289_chk
Verify RHEL 9 encrypts audit records offloaded onto a different system or media from the system being audited via rsyslog with the following command: $ grep -i 'StreamDriver[\.]*Mode' /etc/rsyslog.conf /etc/rsyslog.d/*.conf /etc/rsyslog.conf:$ActionSendStreamDriverMode 1 If the value of the "$ActionSendStreamDriverMode or StreamDriver.Mode" option is not set to "1" or the line is commented out, this is a finding. If the variable name "StreamDriverAuthMode" is present in an omfwd statement block, this is not a finding. However, if the "StreamDriverAuthMode" variable is in a module block, this is a finding.
Fix: F-61812r926427_fix
Configure RHEL 9 to encrypt offloaded audit records via rsyslog by setting the following options in "/etc/rsyslog.conf" or "/etc/rsyslog.d/[customfile].conf": $ActionSendStreamDriverMode 1
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- RHEL-09-652050
- Vuln IDs
-
- V-258148
- Rule IDs
-
- SV-258148r1045292_rule
Checks: C-61889r1045291_chk
Verify RHEL 9 uses the gtls driver to encrypt audit records offloaded onto a different system or media from the system being audited with the following command: $ grep -Ei 'DefaultNetStreamDriver\b|StreamDriver.Name' /etc/rsyslog.conf /etc/rsyslog.d/*.conf /etc/rsyslog.conf:$DefaultNetstreamDriver gtls If the value of the "$DefaultNetstreamDriver or StreamDriver" option is not set to "gtls" or the line is commented out, this is a finding. If the variable name "StreamDriver" is present in an omfwd statement block, this is not a finding. However, if the "StreamDriver" variable is in a module block, this is a finding.
Fix: F-61813r926430_fix
Configure RHEL 9 to use the gtls driver to encrypt offloaded audit records by setting the following options in "/etc/rsyslog.conf" or "/etc/rsyslog.d/[customfile].conf": $DefaultNetstreamDriver gtls
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- RHEL-09-652055
- Vuln IDs
-
- V-258149
- Rule IDs
-
- SV-258149r1106462_rule
Checks: C-61890r1106461_chk
Verify RHEL 9 audit system off-loads audit records onto a different system or media from the system being audited via rsyslog using TCP with the following command: $ sudo grep -iR '@@' /etc/rsyslog.conf /etc/rsyslog.d/ /etc/rsyslog.d/remoteLogging.conf:*.* @@[remoteloggingserver]:[port] If a remote server is not configured, or the line is commented out, ask the system administrator (SA) to indicate how the audit logs are off-loaded to a different system or media. If there is no evidence that the audit logs are being off-loaded to another system or media, this is a finding.
Fix: F-61814r1106361_fix
Configure RHEL 9 to off-load audit records onto a different system or media from the system being audited via TCP using rsyslog by specifying the remote logging server in "/etc/rsyslog.conf" or "/etc/rsyslog.d/[customfile].conf" with the name or IP address of the log aggregation server. *.* @@[remoteloggingserver]:[port]
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-652060
- Vuln IDs
-
- V-258150
- Rule IDs
-
- SV-258150r1045296_rule
Checks: C-61891r1045295_chk
Verify that "rsyslog" is configured to log cron events with the following command: Note: If another logging package is used, substitute the utility configuration file for "/etc/rsyslog.conf" or "/etc/rsyslog.d/*.conf" files. $ grep -s cron /etc/rsyslog.conf /etc/rsyslog.d/*.conf /etc/rsyslog.conf:*.info;mail.none;authpriv.none;cron.none /var/log/messages /etc/rsyslog.conf:cron.* /var/log/cron If the command does not return a response, check for cron logging all facilities with the following command: $ logger -p local0.info "Test message for all facilities." Check the logs for the test message with: $ sudo tail /var/log/messages If "rsyslog" is not logging messages for the cron facility or all facilities, this is a finding.
Fix: F-61815r926436_fix
Configure "rsyslog" to log all cron messages by adding or updating the following line to "/etc/rsyslog.conf" or a configuration file in the /etc/rsyslog.d/ directory: cron.* /var/log/cron The rsyslog daemon must be restarted for the changes to take effect: $ sudo systemctl restart rsyslog.service
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-653010
- Vuln IDs
-
- V-258151
- Rule IDs
-
- SV-258151r1045298_rule
Checks: C-61892r1045297_chk
Verify that the RHEL 9 audit service package is installed. Check that the audit service package is installed with the following command: $ dnf list --installed audit Example output: audit-3.0.7-101.el9_0.2.x86_64 If the "audit" package is not installed, this is a finding.
Fix: F-61816r926439_fix
Install the audit service package (if the audit service is not already installed) with the following command: $ sudo dnf install audit
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-653015
- Vuln IDs
-
- V-258152
- Rule IDs
-
- SV-258152r1015127_rule
Checks: C-61893r926441_chk
Verify the audit service is configured to produce audit records with the following command: $ systemctl status auditd.service auditd.service - Security Auditing Service Loaded:loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled) Active: active (running) since Tues 2022-05-24 12:56:56 EST; 4 weeks 0 days ago If the audit service is not "active" and "running", this is a finding.
Fix: F-61817r926442_fix
To enable the auditd service run the following command: $ sudo systemctl enable --now auditd
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000140
- Version
- RHEL-09-653020
- Vuln IDs
-
- V-258153
- Rule IDs
-
- SV-258153r1038966_rule
Checks: C-61894r926444_chk
Verify RHEL 9 takes the appropriate action when an audit processing failure occurs. Check that RHEL 9 takes the appropriate action when an audit processing failure occurs with the following command: $ sudo grep disk_error_action /etc/audit/auditd.conf disk_error_action = HALT If the value of the "disk_error_action" option is not "SYSLOG", "SINGLE", or "HALT", or the line is commented out, ask the system administrator (SA) to indicate how the system takes appropriate action when an audit process failure occurs. If there is no evidence of appropriate action, this is a finding.
Fix: F-61818r926445_fix
Configure RHEL 9 to shut down by default upon audit failure (unless availability is an overriding concern). Add or update the following line (depending on configuration "disk_error_action" can be set to "SYSLOG" or "SINGLE" depending on configuration) in "/etc/audit/auditd.conf" file: disk_error_action = HALT If availability has been determined to be more important, and this decision is documented with the information system security officer (ISSO), configure the operating system to notify SA staff and ISSO staff in the event of an audit processing failure by setting the "disk_error_action" to "SYSLOG".
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000140
- Version
- RHEL-09-653025
- Vuln IDs
-
- V-258154
- Rule IDs
-
- SV-258154r1038966_rule
Checks: C-61895r926447_chk
Verify RHEL 9 takes the appropriate action when the audit storage volume is full. Check that RHEL 9 takes the appropriate action when the audit storage volume is full with the following command: $ sudo grep disk_full_action /etc/audit/auditd.conf disk_full_action = HALT If the value of the "disk_full_action" option is not "SYSLOG", "SINGLE", or "HALT", or the line is commented out, ask the system administrator (SA) to indicate how the system takes appropriate action when an audit storage volume is full. If there is no evidence of appropriate action, this is a finding.
Fix: F-61819r926448_fix
Configure RHEL 9 to shut down by default upon audit failure (unless availability is an overriding concern). Add or update the following line (depending on configuration "disk_full_action" can be set to "SYSLOG" or "SINGLE" depending on configuration) in "/etc/audit/auditd.conf" file: disk_full_action = HALT If availability has been determined to be more important, and this decision is documented with the information system security officer (ISSO), configure the operating system to notify SA staff and ISSO staff in the event of an audit processing failure by setting the "disk_full_action" to "SYSLOG".
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001849
- Version
- RHEL-09-653030
- Vuln IDs
-
- V-258155
- Rule IDs
-
- SV-258155r1045300_rule
Checks: C-61896r1045299_chk
Verify RHEL 9 allocates audit record storage capacity to store at least one week of audit records when audit records are not immediately sent to a central audit record storage facility. Note: The partition size needed to capture a week of audit records is based on the activity level of the system and the total storage capacity available. Typically 10.0GB of storage space for audit records should be sufficient. Determine which partition the audit records are being written to with the following command: $ sudo grep -w log_file /etc/audit/auditd.conf log_file = /var/log/audit/audit.log Check the size of the partition that audit records are written to with the following command and verify whether it is sufficiently large: # df -h /var/log/audit/ /dev/sda2 24G 10.4G 13.6G 43% /var/log/audit If the audit record partition is not allocated for sufficient storage capacity, this is a finding.
Fix: F-61820r926451_fix
Allocate enough storage capacity for at least one week of audit records when audit records are not immediately sent to a central audit record storage facility. If audit records are stored on a partition made specifically for audit records, resize the partition with sufficient space to contain one week of audit records. If audit records are not stored on a partition made specifically for audit records, a new partition with sufficient space will need be to be created.
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001855
- Version
- RHEL-09-653035
- Vuln IDs
-
- V-258156
- Rule IDs
-
- SV-258156r1106364_rule
Checks: C-61897r1106363_chk
Verify RHEL 9 takes action when allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity with the following command: $ sudo grep -w space_left /etc/audit/auditd.conf space_left = 25% If the value of the "space_left" keyword is not set to 25 percent or greater of the storage volume allocated to audit logs, or if the line is commented out, ask the system administrator (SA) to indicate how the system is providing real-time alerts to the SA and ISSO. If the "space_left" value is not configured to the value 25 percent or more, this is a finding.
Fix: F-61821r1102076_fix
Configure RHEL 9 to initiate an action to notify the SA and ISSO (at a minimum) when allocated audit record storage volume reaches (at most) 75 percent of the repository maximum audit record storage capacity by adding/modifying the following line in the /etc/audit/auditd.conf file. space_left = 25%
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001855
- Version
- RHEL-09-653040
- Vuln IDs
-
- V-258157
- Rule IDs
-
- SV-258157r1134932_rule
Checks: C-61898r926456_chk
Verify RHEL 9 notifies the SA and ISSO (at a minimum) when allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity with the following command: $ sudo grep -w space_left_action /etc/audit/auditd.conf space_left_action = email If the value of the "space_left_action" is not set to "email", or if the line is commented out, ask the SA to indicate how the system is providing real-time alerts to the SA and ISSO. If there is no evidence that real-time alerts are configured on the system, this is a finding.
Fix: F-61822r926457_fix
Configure RHEL 9 to initiate an action to notify the SA and ISSO (at a minimum) when allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity by adding/modifying the following line in the /etc/audit/auditd.conf file. space_left_action = email
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001855
- Version
- RHEL-09-653045
- Vuln IDs
-
- V-258158
- Rule IDs
-
- SV-258158r971542_rule
Checks: C-61899r926459_chk
Verify RHEL 9 takes action when allocated audit record storage volume reaches 95 percent of the repository maximum audit record storage capacity with the following command: $ sudo grep -w admin_space_left /etc/audit/auditd.conf admin_space_left = 5% If the value of the "admin_space_left" keyword is not set to 5 percent of the storage volume allocated to audit logs, or if the line is commented out, ask the system administrator (SA) to indicate how the system is taking action if the allocated storage is about to reach capacity. If the "space_left" value is not configured to the correct value, this is a finding.
Fix: F-61823r926460_fix
Configure RHEL 9 to initiate an action when allocated audit record storage volume reaches 95 percent of the repository maximum audit record storage capacity by adding/modifying the following line in the /etc/audit/auditd.conf file. admin_space_left = 5%
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001855
- Version
- RHEL-09-653050
- Vuln IDs
-
- V-258159
- Rule IDs
-
- SV-258159r971542_rule
Checks: C-61900r926462_chk
Verify that RHEL 9 is configured to take action in the event of allocated audit record storage volume reaches 95 percent of the repository maximum audit record storage capacity with the following command: $ sudo grep admin_space_left_action /etc/audit/auditd.conf admin_space_left_action = single If the value of the "admin_space_left_action" is not set to "single", or if the line is commented out, ask the system administrator (SA) to indicate how the system is providing real-time alerts to the SA and information system security officer (ISSO). If there is no evidence that real-time alerts are configured on the system, this is a finding.
Fix: F-61824r926463_fix
Configure "auditd" service to take action in the event of allocated audit record storage volume reaches 95 percent of the repository maximum audit record storage capacity. Edit the following line in "/etc/audit/auditd.conf" to ensure that the system is forced into single user mode in the event the audit record storage volume is about to reach maximum capacity: admin_space_left_action = single The audit daemon must be restarted for changes to take effect.
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000140
- Version
- RHEL-09-653055
- Vuln IDs
-
- V-258160
- Rule IDs
-
- SV-258160r1038966_rule
Checks: C-61901r926465_chk
Verify that RHEL 9 takes the appropriate action when the audit files have reached maximum size with the following command: $ sudo grep max_log_file_action /etc/audit/auditd.conf max_log_file_action = ROTATE If the value of the "max_log_file_action" option is not "ROTATE", "SINGLE", or the line is commented out, ask the system administrator (SA)to indicate how the system takes appropriate action when an audit storage volume is full. If there is no evidence of appropriate action, this is a finding.
Fix: F-61825r926466_fix
Configure RHEL 9 to rotate the audit log when it reaches maximum size. Add or update the following line in "/etc/audit/auditd.conf" file: max_log_file_action = ROTATE
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000132
- Version
- RHEL-09-653060
- Vuln IDs
-
- V-258161
- Rule IDs
-
- SV-258161r958416_rule
Checks: C-61902r926468_chk
Verify that RHEL 9 Audit Daemon is configured to label all offloaded audit logs, with the following command: $ sudo grep name_format /etc/audit/auditd.conf name_format = hostname If the "name_format" option is not "hostname", "fqd", or "numeric", or the line is commented out, this is a finding.
Fix: F-61826r926469_fix
Edit the /etc/audit/auditd.conf file and add or update the "name_format" option: name_format = hostname The audit daemon must be restarted for changes to take effect.
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- RHEL-09-653065
- Vuln IDs
-
- V-258162
- Rule IDs
-
- SV-258162r958754_rule
Checks: C-61903r926471_chk
Verify that RHEL 9 audit system is configured to take an appropriate action when the internal event queue is full: $ sudo grep -i overflow_action /etc/audit/auditd.conf overflow_action = syslog If the value of the "overflow_action" option is not set to "syslog", "single", "halt" or the line is commented out, ask the system administrator (SA) to indicate how the audit logs are offloaded to a different system or media. If there is no evidence that the transfer of the audit logs being offloaded to another system or media takes appropriate action if the internal event queue becomes full, this is a finding.
Fix: F-61827r926472_fix
Edit the /etc/audit/auditd.conf file and add or update the "overflow_action" option: overflow_action = syslog The audit daemon must be restarted for changes to take effect.
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000139
- Version
- RHEL-09-653070
- Vuln IDs
-
- V-258163
- Rule IDs
-
- SV-258163r958424_rule
Checks: C-61904r926474_chk
Verify that RHEL 9 is configured to notify the SA and/or ISSO (at a minimum) in the event of an audit processing failure with the following command: $ sudo grep action_mail_acct /etc/audit/auditd.conf action_mail_acct = root If the value of the "action_mail_acct" keyword is not set to "root" and/or other accounts for security personnel, the "action_mail_acct" keyword is missing, or the retuned line is commented out, ask the SA to indicate how they and the ISSO are notified of an audit process failure. If there is no evidence of the proper personnel being notified of an audit processing failure, this is a finding.
Fix: F-61828r926475_fix
Configure "auditd" service to notify the SA and ISSO in the event of an audit processing failure. Edit the following line in "/etc/audit/auditd.conf" to ensure that administrators are notified via email for those situations: action_mail_acct = root The audit daemon must be restarted for changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-09-653075
- Vuln IDs
-
- V-258164
- Rule IDs
-
- SV-258164r1045301_rule
Checks: C-61905r926477_chk
Verify that the RHEL 9 audit system is configured to audit local events with the following command: $ sudo grep local_events /etc/audit/auditd.conf local_events = yes If "local_events" isn't set to "yes", if the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61829r926478_fix
Configure RHEL 9 to generate audit records for local events by adding or updating the following line in "/etc/audit/auditd.conf": local_events = yes The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-09-653080
- Vuln IDs
-
- V-258165
- Rule IDs
-
- SV-258165r958434_rule
Checks: C-61906r926480_chk
Verify the audit logs are group-owned by "root" or a restricted logging group. First determine if a group other than "root" has been assigned to the audit logs with the following command: $ sudo grep log_group /etc/audit/auditd.conf Then determine where the audit logs are stored with the following command: $ sudo grep -iw log_file /etc/audit/auditd.conf log_file = /var/log/audit/audit.log Then using the location of the audit log file, determine if the audit log is group-owned by "root" using the following command: $ sudo stat -c "%G %n" /var/log/audit/audit.log root /var/log/audit/audit.log If the audit log is not group-owned by "root" or the configured alternative logging group, this is a finding.
Fix: F-61830r926481_fix
Change the group of the directory of "/var/log/audit" to be owned by a correct group. Identify the group that is configured to own audit log: $ sudo grep -P '^[ ]*log_group[ ]+=.*$' /etc/audit/auditd.conf Change the ownership to that group: $ sudo chgrp ${GROUP} /var/log/audit
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-09-653085
- Vuln IDs
-
- V-258166
- Rule IDs
-
- SV-258166r1045303_rule
Checks: C-61907r1045302_chk
Verify the audit logs directory is owned by "root". Determine where the audit logs are stored with the following command: $ sudo grep -iw log_file /etc/audit/auditd.conf log_file = /var/log/audit/audit.log Using the location of the audit log file, determine if the audit log directory is owned by "root" using the following command: $ sudo stat -c '%U %n' /var/log/audit root /var/log/audit If the audit log directory is not owned by "root", this is a finding.
Fix: F-61831r926484_fix
Configure the audit log to be protected from unauthorized read access by setting the correct owner as "root" with the following command: $ sudo chown root /var/log/audit
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-09-653090
- Vuln IDs
-
- V-258167
- Rule IDs
-
- SV-258167r1101918_rule
Checks: C-61908r1101917_chk
Verify the audit logs have a mode of "0600". Determine where the audit logs are stored with the following command: $ sudo find /var/log/audit/ -type f -exec stat -c '%a %n' {} \; 600 /var/log/audit/audit.log Using the location of the audit log file, determine the mode of each audit log with the following command: $ sudo find /var/log/audit/ -type f -exec stat -c '%a %n' {} \; rw-------. 2 root root 237923 Jun 11 11:56 /var/log/audit/audit.log If the audit logs have a mode more permissive than "0600", this is a finding.
Fix: F-61832r1045305_fix
Configure the audit logs to have a mode of "0600" with the following command: Replace "[audit_log_file]" with the path to each audit log file. By default, these logs are located in "/var/log/audit/. $ sudo chmod 0600 /var/log/audit/[audit_log_file] Check the group that owns the system audit logs: $ sudo grep -iw log_group /etc/audit/auditd.conf If log_group is set to a user other than root, configure the permissions the following way: $ sudo chmod 0640 $log_file $ sudo chmod 0440 $log_file.* Otherwise, configure the permissions the following way: $ sudo chmod 0600 $log_file $ sudo chmod 0400 $log_file.*
- RMF Control
- AU-6
- Severity
- M
- CCI
- CCI-000154
- Version
- RHEL-09-653095
- Vuln IDs
-
- V-258168
- Rule IDs
-
- SV-258168r958428_rule
Checks: C-61909r943022_chk
Verify that audit system is configured to flush to disk after every 100 records with the following command: $ sudo grep freq /etc/audit/auditd.conf freq = 100 If "freq" isn't set to a value between "1" and "100", the value is missing, or the line is commented out, this is a finding.
Fix: F-61833r943023_fix
Configure RHEL 9 to flush audit to disk by adding or updating the following rule in "/etc/audit/auditd.conf": freq = 100 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-653100
- Vuln IDs
-
- V-258169
- Rule IDs
-
- SV-258169r991556_rule
Checks: C-61910r926492_chk
Verify that RHEL 9 audit system is configured to resolve audit information before writing to disk, with the following command: $ sudo grep log_format /etc/audit/auditd.conf log_format = ENRICHED If the "log_format" option is not "ENRICHED", or the line is commented out, this is a finding.
Fix: F-61834r926493_fix
Edit the /etc/audit/auditd.conf file and add or update the "log_format" option: log_format = ENRICHED The audit daemon must be restarted for changes to take effect.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-09-653105
- Vuln IDs
-
- V-258170
- Rule IDs
-
- SV-258170r991589_rule
Checks: C-61911r926495_chk
Verify that the audit system is configured to write logs to the disk with the following command: $ sudo grep write_logs /etc/audit/auditd.conf write_logs = yes If "write_logs" does not have a value of "yes", the line is commented out, or the line is missing, this is a finding.
Fix: F-61835r926496_fix
Configure the audit system to write log files to the disk. Edit the /etc/audit/auditd.conf file and add or update the "write_logs" option to "yes": write_logs = yes The audit daemon must be restarted for changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000171
- Version
- RHEL-09-653110
- Vuln IDs
-
- V-258171
- Rule IDs
-
- SV-258171r1134934_rule
Checks: C-61912r1134933_chk
Verify that the files in directory "/etc/audit/rules.d/" and "/etc/audit/auditd.conf" file have a mode of "0640" or less permissive with the following command: $ sudo find /etc/audit/rules.d/ /etc/audit/audit.rules /etc/audit/auditd.conf -type f -exec stat -c "%a %n" {} \; 600 /etc/audit/rules.d/audit.rules 640 /etc/audit/audit.rules 640 /etc/audit/auditd.conf If the audit configuration files have a mode more permissive than those shown, this is a finding.
Fix: F-61836r926499_fix
Configure the files in directory "/etc/audit/rules.d/" and the "/etc/audit/auditd.conf" file to have a mode of "0640" with the following commands: $ sudo chmod 0640 /etc/audit/rules.d/audit.rules $ sudo chmod 0640 /etc/audit/rules.d/[customrulesfile].rules $ sudo chmod 0640 /etc/audit/auditd.conf
- RMF Control
- AU-14
- Severity
- L
- CCI
- CCI-001464
- Version
- RHEL-09-653120
- Vuln IDs
-
- V-258173
- Rule IDs
-
- SV-258173r1101933_rule
Checks: C-61914r1101932_chk
Verify RHEL 9 allocates a sufficient audit_backlog_limit to capture processes that start prior to the audit daemon with the following command: $ sudo grubby --info=ALL | grep args | grep 'audit_backlog_limit' If the command returns any outputs, and audit_backlog_limit is less than "8192", this is a finding.
Fix: F-61838r926505_fix
Configure RHEL 9 to allocate sufficient audit_backlog_limit to capture processes that start prior to the audit daemon with the following command: $ sudo grubby --update-kernel=ALL --args=audit_backlog_limit=8192
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000139
- Version
- RHEL-09-653125
- Vuln IDs
-
- V-258174
- Rule IDs
-
- SV-258174r958424_rule
Checks: C-61915r926507_chk
Verify that RHEL 9 is configured to notify the appropriate interactive users in the event of an audit processing failure. Find the alias maps that are being used with the following command: $ postconf alias_maps alias_maps = hash:/etc/aliases Query the Postfix alias maps for an alias for the root user with the following command: $ postmap -q root hash:/etc/aliases isso If an alias is not set, this is a finding.
Fix: F-61839r926508_fix
Edit the aliases map file (by default /etc/aliases) used by Postfix and configure a root alias (using the user ISSO as an example): root: ISSO and then update the aliases database with the command: $ sudo newaliases
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- RHEL-09-653130
- Vuln IDs
-
- V-258175
- Rule IDs
-
- SV-258175r1045310_rule
Checks: C-61916r1045309_chk
Verify that RHEL 9 has the audispd-plugins package installed with the following command: $ dnf list --installed audispd-plugins Example output: audispd-plugins.x86_64 3.0.7-101.el9_0.2 If the "audispd-plugins" package is not installed, this is a finding.
Fix: F-61840r926511_fix
The audispd-plugins package can be installed with the following command: $ sudo dnf install audispd-plugins
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002233
- Version
- RHEL-09-654010
- Vuln IDs
-
- V-258176
- Rule IDs
-
- SV-258176r1106366_rule
Checks: C-61917r1106365_chk
Verify RHEL 9 is configured to audit the execution of the "execve" system call with the following command: $ sudo auditctl -l | grep execve -a always,exit -S arch=b32 -S execve -C uid!=euid -F euid=0 -F key=execpriv -a always,exit -S arch=b64 -S execve -C uid!=euid -F euid=0 -F key=execpriv -a always,exit -S arch=b32 -S execve -C gid!=egid -F egid=0 -F key=execpriv -a always,exit -S arch=b64 -S execve -C gid!=egid -F egid=0 -F key=execpriv If the command does not return all lines, or the lines are commented out, this is a finding.
Fix: F-61841r1045312_fix
Configure RHEL 9 to audit the execution of the "execve" system call. Add or update the following file system rules to "/etc/audit/rules.d/audit.rules": -a always,exit -F arch=b32 -S execve -C uid!=euid -F euid=0 -k execpriv -a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k execpriv -a always,exit -F arch=b32 -S execve -C gid!=egid -F egid=0 -k execpriv -a always,exit -F arch=b64 -S execve -C gid!=egid -F egid=0 -k execpriv To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654015
- Vuln IDs
-
- V-258177
- Rule IDs
-
- SV-258177r1106368_rule
Checks: C-61918r1106367_chk
Verify RHEL 9 is configured to audit the execution of the "chmod", "fchmod", and "fchmodat" system calls with the following command: $ sudo auditctl -l | grep chmod -a always,exit -S arch=b32 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=-1 -F key=perm_mod -a always,exit -S arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=-1 -F key=perm_mod If both the "b32" and "b64" audit rules are not defined for the "chmod", "fchmod", and "fchmodat" system calls, this is a finding.
Fix: F-61842r1045315_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "chmod", "fchmod", and "fchmodat" syscalls. Add or update the following rules in "/etc/audit/rules.d/audit.rules": -a always,exit -F arch=b32 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod -a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -k perm_mod To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654020
- Vuln IDs
-
- V-258178
- Rule IDs
-
- SV-258178r1106370_rule
Checks: C-61919r1106369_chk
Verify RHEL 9 is configured to audit the execution of the "chown", "fchown", "fchownat", and "lchown" system calls with the following command: $ sudo auditctl -l | grep chown -a always,exit -S arch=b32 -S lchown,fchown,chown,fchownat -F auid>=1000 -F auid!=-1 -F key=perm_mod -a always,exit -S arch=b64 -S chown,fchown,lchown,fchownat -F auid>=1000 -F auid!=-1 -F key=perm_mod If both the "b32" and "b64" audit rules are not defined for the "chown", "fchown", "fchownat", and "lchown" system calls, this is a finding.
Fix: F-61843r1045318_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "chown", "fchown", "fchownat", and "lchown"" system calls. Add or update the following rules in "/etc/audit/rules.d/audit.rules": -a always,exit -F arch=b32 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod -a always,exit -F arch=b64 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=unset -k perm_mod To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654025
- Vuln IDs
-
- V-258179
- Rule IDs
-
- SV-258179r1106371_rule
Checks: C-61920r1101944_chk
Verify RHEL 9 is configured to audit the execution of the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" system calls with the following command: $ sudo auditctl -l | grep xattr -a always,exit -S arch=b32 -S setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid>=1000 -F auid!=-1 -F key=perm_mod -a always,exit -S arch=b64 -S setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid>=1000 -F auid!=-1 -F key=perm_mod -a always,exit -S arch=b32 -S setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid=0 -F key=perm_mod -a always,exit -S arch=b64 -S setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid=0 -F key=perm_mod If both the "b32" and "b64" audit rules are not defined for the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" system calls, or any of the lines returned are commented out, this is a finding.
Fix: F-61844r1045321_fix
Configure RHEL 9 to audit the execution of the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" system calls by adding or updating the following lines to "/etc/audit/rules.d/audit.rules": -a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod -a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid>=1000 -F auid!=unset -k perm_mod -a always,exit -F arch=b32 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid=0 -k perm_mod -a always,exit -F arch=b64 -S setxattr,fsetxattr,lsetxattr,removexattr,fremovexattr,lremovexattr -F auid=0 -k perm_mod To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654030
- Vuln IDs
-
- V-258180
- Rule IDs
-
- SV-258180r1045325_rule
Checks: C-61921r1045323_chk
Verify that RHEL 9 is configured to audit the execution of the "umount" command with the following command: $ sudo auditctl -l | grep /usr/bin/umount -a always,exit -S all -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-mount If the command does not return an audit rule for "umount" or any of the lines returned are commented out, this is a finding.
Fix: F-61845r1045324_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "umount" command by adding or updating the following rules in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654035
- Vuln IDs
-
- V-258181
- Rule IDs
-
- SV-258181r1045328_rule
Checks: C-61922r1045326_chk
Verify that RHEL 9 is configured to audit the execution of the "chacl" command with the following command: $ sudo auditctl -l | grep chacl -a always,exit -S all -F path=/usr/bin/chacl -F perm=x -F auid>=1000 -F auid!=-1 -F key=perm_mod If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61846r1045327_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "chacl" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/chacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654040
- Vuln IDs
-
- V-258182
- Rule IDs
-
- SV-258182r1045331_rule
Checks: C-61923r1045329_chk
Verify that RHEL 9 is configured to audit the execution of the "setfacl" command with the following command: $ sudo auditctl -l | grep setfacl -a always,exit -S all -F path=/usr/bin/setfacl -F perm=x -F auid>=1000 -F auid!=-1 -F key=perm_mod If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61847r1045330_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "setfacl" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/setfacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654045
- Vuln IDs
-
- V-258183
- Rule IDs
-
- SV-258183r1045334_rule
Checks: C-61924r1045332_chk
Verify that RHEL 9 is configured to audit the execution of the "chcon" command with the following command: $ sudo auditctl -l | grep chcon -a always,exit -S all -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=-1 -F key=perm_mod If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61848r1045333_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "chcon" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654050
- Vuln IDs
-
- V-258184
- Rule IDs
-
- SV-258184r1045337_rule
Checks: C-61925r1045335_chk
Verify that RHEL 9 is configured to audit the execution of the "semanage" command with the following command: $ sudo auditctl -l | grep semanage -a always,exit -S all -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61849r1045336_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "semanage" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654055
- Vuln IDs
-
- V-258185
- Rule IDs
-
- SV-258185r1045340_rule
Checks: C-61926r1045338_chk
Verify that RHEL 9 is configured to audit the execution of the "setfiles" command with the following command: $ sudo auditctl -l | grep setfiles -a always,exit -S all -F path=/usr/sbin/setfiles -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61850r1045339_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "setfiles" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/sbin/setfiles -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654060
- Vuln IDs
-
- V-258186
- Rule IDs
-
- SV-258186r1045343_rule
Checks: C-61927r1045341_chk
Verify that RHEL 9 is configured to audit the execution of the "setsebool" command with the following command: $ sudo auditctl -l | grep setsebool -a always,exit -S all -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61851r1045342_fix
Configure RHEL 9 to generate an audit event for any successful/unsuccessful use of the "setsebool " command by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=unset -F key=privileged To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654065
- Vuln IDs
-
- V-258187
- Rule IDs
-
- SV-258187r1106373_rule
Checks: C-61928r1106372_chk
Verify RHEL 9 is configured to audit successful/unsuccessful attempts to use the "rename", "unlink", "rmdir", "renameat", and "unlinkat" system calls with the following command: $ sudo auditctl -l | grep 'rename\|unlink\|rmdir' -a always,exit -S arch=b32 -S unlink,rename,rmdir,unlinkat,renameat -F auid>=1000 -F auid!=-1 -F key=delete -a always,exit -S arch=b64 -S rename,rmdir,unlink,unlinkat,renameat -F auid>=1000 -F auid!=-1 -F key=delete If the command does not return an audit rule for "rename", "unlink", "rmdir", "renameat", and "unlinkat" or any of the lines returned are commented out, this is a finding.
Fix: F-61852r1045345_fix
Configure RHEL 9 to generate an audit event for any successful/unsuccessful use of the "rename", "unlink", "rmdir", "renameat", and "unlinkat" system calls by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F arch=b32 -S rename,unlink,rmdir,renameat,unlinkat -F auid>=1000 -F auid!=unset -k delete -a always,exit -F arch=b64 -S rename,unlink,rmdir,renameat,unlinkat -F auid>=1000 -F auid!=unset -k delete To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654070
- Vuln IDs
-
- V-258188
- Rule IDs
-
- SV-258188r1106375_rule
Checks: C-61929r1106374_chk
Verify RHEL 9 is configured to audit successful/unsuccessful attempts to use the "truncate", "ftruncate", "creat", "open", "openat", and "open_by_handle_at" system calls with the following command: $ sudo auditctl -l | grep 'open\b\|openat\|open_by_handle_at\|truncate\|creat' -a always,exit -S arch=b32 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -S auid!=-1 -F key=perm_access -a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -S auid!=-1 -F key=perm_access -a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -S auid!=-1 -F key=perm_access -a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -S auid!=-1 -F key=perm_access If the output does not produce rules containing "-F exit=-EPERM", this is a finding. If the output does not produce rules containing "-F exit=-EACCES", this is a finding. If the command does not return an audit rule for "truncate", "ftruncate", "creat", "open", "openat", and "open_by_handle_at" or any of the lines returned are commented out, this is a finding.
Fix: F-61853r1045348_fix
Configure RHEL 9 to generate an audit event for any successful/unsuccessful use of the "truncate", "ftruncate", "creat", "open", "openat", and "open_by_handle_at" system calls by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F arch=b32 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -k perm_access -a always,exit -F arch=b64 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -k perm_access -a always,exit -F arch=b32 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -k perm_access -a always,exit -F arch=b64 -S truncate,ftruncate,creat,open,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -k perm_access To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654075
- Vuln IDs
-
- V-258189
- Rule IDs
-
- SV-258189r1106377_rule
Checks: C-61930r1106376_chk
Verify RHEL 9 is configured to audit the execution of the "delete_module" system call with the following command: $ sudo auditctl -l | grep delete_module -a always,exit -S arch=b32 -S delete_module -F auid>=1000 -F auid!=-1 -F key=module_chng -a always,exit -S arch=b64 -S delete_module -F auid>=1000 -F auid!=-1 -F key=module_chng If both the "b32" and "b64" audit rules are not defined for the "delete_module" system call, or any of the lines returned are commented out, this is a finding.
Fix: F-61854r1045351_fix
Configure RHEL 9 to generate an audit event for any successful/unsuccessful use of the "delete_module" system call by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k module_chng -a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k module_chng To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654080
- Vuln IDs
-
- V-258190
- Rule IDs
-
- SV-258190r1106379_rule
Checks: C-61931r1106378_chk
Verify RHEL 9 is configured to audit the execution of the "init_module" and "finit_module" system calls with the following command: $ sudo auditctl -l | grep init_module -a always,exit -S arch=b32 -S init_module,finit_module -F auid>=1000 -F auid!=-1 -F key=module_chng -a always,exit -S arch=b64 -S init_module,finit_module -F auid>=1000 -F auid!=-1 -F key=module_chng If both the "b32" and "b64" audit rules are not defined for the "init_module" system call, or any of the lines returned are commented out, this is a finding.
Fix: F-61855r1045354_fix
Configure RHEL 9 to generate an audit event for any successful/unsuccessful use of the "init_module" and "finit_module" system calls by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F arch=b32 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k module_chng -a always,exit -F arch=b64 -S init_module,finit_module -F auid>=1000 -F auid!=unset -k module_chng To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654085
- Vuln IDs
-
- V-258191
- Rule IDs
-
- SV-258191r1045358_rule
Checks: C-61932r1045356_chk
Verify that RHEL 9 is configured to audit the execution of the "chage" command with the following command: $ sudo auditctl -l | grep chage -a always,exit -S all -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-chage If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61856r1045357_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "chage" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-chage To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654090
- Vuln IDs
-
- V-258192
- Rule IDs
-
- SV-258192r1045361_rule
Checks: C-61933r1045359_chk
Verify that RHEL 9 is configured to audit the execution of the "chsh" command with the following command: $ sudo auditctl -l | grep chsh -a always,exit -S all -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=-1 -F key=priv_cmd If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61857r1045360_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "chsh" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654095
- Vuln IDs
-
- V-258193
- Rule IDs
-
- SV-258193r1045364_rule
Checks: C-61934r1045362_chk
Verify that RHEL 9 is configured to audit the execution of the "crontab" command with the following command: $ sudo auditctl -l | grep crontab -a always,exit -S all -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-crontab If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61858r1045363_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "crontab" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=unset -k privileged-crontab To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654100
- Vuln IDs
-
- V-258194
- Rule IDs
-
- SV-258194r1045367_rule
Checks: C-61935r1045365_chk
Verify that RHEL 9 is configured to audit the execution of the "gpasswd" command with the following command: $ sudo auditctl -l | grep gpasswd -a always,exit -S all -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-gpasswd If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61859r1045366_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "gpasswd" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-gpasswd To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654105
- Vuln IDs
-
- V-258195
- Rule IDs
-
- SV-258195r1045370_rule
Checks: C-61936r1045368_chk
Verify that RHEL 9 is configured to audit the execution of the "kmod" command with the following command: $ sudo auditctl -l | grep kmod -a always,exit -S all -F path=/usr/bin/kmod -F perm=x -F auid>=1000 -F auid!=-1 -F key=modules If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61860r1045369_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "kmod" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/kmod -F perm=x -F auid>=1000 -F auid!=unset -k modules To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654110
- Vuln IDs
-
- V-258196
- Rule IDs
-
- SV-258196r1045373_rule
Checks: C-61937r1045371_chk
Verify that RHEL 9 is configured to audit the execution of the "newgrp" command with the following command: $ sudo auditctl -l | grep newgrp -a always,exit -S all -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=-1 -F key=priv_cmd If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61861r1045372_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "newgrp" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654115
- Vuln IDs
-
- V-258197
- Rule IDs
-
- SV-258197r1045376_rule
Checks: C-61938r1045374_chk
Verify that RHEL 9 is configured to audit the execution of the "pam_timestamp_check" command with the following command: $ sudo auditctl -l | grep timestamp -a always,exit -S all -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-pam_timestamp_check If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61862r1045375_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "pam_timestamp_check" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=unset -k privileged-pam_timestamp_check To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654120
- Vuln IDs
-
- V-258198
- Rule IDs
-
- SV-258198r1045379_rule
Checks: C-61939r1045377_chk
Verify RHEL 9 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow" with the following command: $ sudo auditctl -l | egrep '(/usr/bin/passwd)' -a always,exit -S all -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-passwd If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61863r1045378_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "passwd" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654125
- Vuln IDs
-
- V-258199
- Rule IDs
-
- SV-258199r1045382_rule
Checks: C-61940r1045380_chk
Verify that RHEL 9 is configured to audit the execution of the "postdrop" command with the following command: $ sudo auditctl -l | grep postdrop -a always,exit -S all -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61864r1045381_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "postdrop" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654130
- Vuln IDs
-
- V-258200
- Rule IDs
-
- SV-258200r1045385_rule
Checks: C-61941r1045383_chk
Verify that RHEL 9 is configured to audit the execution of the "postqueue" command with the following command: $ sudo auditctl -l | grep postqueue -a always,exit -S all -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61865r1045384_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "postqueue" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654135
- Vuln IDs
-
- V-258201
- Rule IDs
-
- SV-258201r1045388_rule
Checks: C-61942r1045386_chk
Verify that RHEL 9 is configured to audit the execution of the "ssh-agent" command with the following command: $ sudo auditctl -l | grep ssh-agent -a always,exit -S all -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-ssh If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61866r1045387_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "ssh-agent" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654140
- Vuln IDs
-
- V-258202
- Rule IDs
-
- SV-258202r1045391_rule
Checks: C-61943r1045389_chk
Verify that RHEL 9 is configured to audit the execution of the "ssh-keysign" command with the following command: $ sudo auditctl -l | grep ssh-keysign -a always,exit -S all -F path=/usr/libexec/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-ssh If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61867r1045390_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "ssh-keysign" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/libexec/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654145
- Vuln IDs
-
- V-258203
- Rule IDs
-
- SV-258203r1045394_rule
Checks: C-61944r1045392_chk
Verify that RHEL 9 is configured to audit the execution of the "su" command with the following command: $ sudo auditctl -l | grep '/usr/bin/su\b' -a always,exit -S all -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-priv_change If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61868r1045393_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "su" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654150
- Vuln IDs
-
- V-258204
- Rule IDs
-
- SV-258204r1045397_rule
Checks: C-61945r1045395_chk
Verify that RHEL 9 is configured to audit the execution of the "sudo" command with the following command: $ sudo auditctl -l | grep '/usr/bin/sudo\b' -a always,exit -S all -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=-1 -F key=priv_cmd If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61869r1045396_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "sudo" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654155
- Vuln IDs
-
- V-258205
- Rule IDs
-
- SV-258205r1045400_rule
Checks: C-61946r1045398_chk
Verify that RHEL 9 is configured to audit the execution of the "sudoedit" command with the following command: $ sudo auditctl -l | grep /usr/bin/sudoedit -a always,exit -S all -F path=/usr/bin/sudoedit -F perm=x -F auid>=1000 -F auid!=-1 -F key=priv_cmd If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61870r1045399_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "sudoedit" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/sudoedit -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654160
- Vuln IDs
-
- V-258206
- Rule IDs
-
- SV-258206r1045403_rule
Checks: C-61947r1045401_chk
Verify that RHEL 9 is configured to audit the execution of the "unix_chkpwd" command with the following command: $ sudo auditctl -l | grep unix_chkpwd -a always,exit -S all -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61871r1045402_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "unix_chkpwd" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654165
- Vuln IDs
-
- V-258207
- Rule IDs
-
- SV-258207r1045406_rule
Checks: C-61948r1045404_chk
Verify that RHEL 9 is configured to audit the execution of the "unix_update" command with the following command: $ sudo auditctl -l | grep unix_update -a always,exit -S all -F path=/usr/sbin/unix_update -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61872r1045405_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "unix_update" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/sbin/unix_update -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654170
- Vuln IDs
-
- V-258208
- Rule IDs
-
- SV-258208r1045409_rule
Checks: C-61949r1045407_chk
Verify that RHEL 9 is configured to audit the execution of the "userhelper" command with the following command: $ sudo auditctl -l | grep userhelper -a always,exit -S all -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61873r1045408_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "userhelper" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654175
- Vuln IDs
-
- V-258209
- Rule IDs
-
- SV-258209r1045412_rule
Checks: C-61950r1045410_chk
Verify that RHEL 9 is configured to audit the execution of the "usermod" command with the following command: $ sudo auditctl -l | grep usermod -a always,exit -S all -F path=/usr/sbin/usermod -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-usermod If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61874r1045411_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "usermod " command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/sbin/usermod -F perm=x -F auid>=1000 -F auid!=unset -k privileged-usermod To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654180
- Vuln IDs
-
- V-258210
- Rule IDs
-
- SV-258210r1045415_rule
Checks: C-61951r1045413_chk
Verify that RHEL 9 is configured to audit the execution of the "mount" command with the following command: $ sudo auditctl -l | grep /usr/bin/mount -a always,exit -S all -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-mount If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61875r1045414_fix
Configure RHEL 9 to generate audit records upon successful/unsuccessful attempts to use the "mount" command by adding or updating the following rule in "/etc/audit/rules.d/audit.rules": -a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- RHEL-09-654185
- Vuln IDs
-
- V-258211
- Rule IDs
-
- SV-258211r1045418_rule
Checks: C-61952r1045416_chk
Verify that RHEL 9 is configured to audit the execution of the "init" command with the following command: $ sudo auditctl -l | grep /usr/sbin/init -a always,exit -S all -F path=/usr/sbin/init -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-init If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61876r1045417_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "init" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/init -F perm=x -F auid>=1000 -F auid!=unset -k privileged-init To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- RHEL-09-654190
- Vuln IDs
-
- V-258212
- Rule IDs
-
- SV-258212r1045421_rule
Checks: C-61953r1045419_chk
Verify that RHEL 9 is configured to audit the execution of the "poweroff" command with the following command: $ sudo auditctl -l | grep poweroff -a always,exit -S all -F path=/usr/sbin/poweroff -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-poweroff If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61877r1045420_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "poweroff" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/poweroff -F perm=x -F auid>=1000 -F auid!=unset -k privileged-poweroff To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- RHEL-09-654195
- Vuln IDs
-
- V-258213
- Rule IDs
-
- SV-258213r1045424_rule
Checks: C-61954r1045422_chk
Verify that RHEL 9 is configured to audit the execution of the "reboot" command with the following command: $ sudo auditctl -l | grep reboot -a always,exit -S all -F path=/usr/sbin/reboot -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-reboot If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61878r1045423_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "reboot" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/reboot -F perm=x -F auid>=1000 -F auid!=unset -k privileged-reboot To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- RHEL-09-654200
- Vuln IDs
-
- V-258214
- Rule IDs
-
- SV-258214r1045427_rule
Checks: C-61955r1045425_chk
Verify that RHEL 9 is configured to audit the execution of the "shutdown" command with the following command: $ sudo cat /etc/audit/rules.d/* | grep shutdown -a always,exit -S all -F path=/usr/sbin/shutdown -F perm=x -F auid>=1000 -F auid!=-1 -F key=privileged-shutdown If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61879r1045426_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "shutdown" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/shutdown -F perm=x -F auid>=1000 -F auid!=unset -k privileged-shutdown To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654205
- Vuln IDs
-
- V-258215
- Rule IDs
-
- SV-258215r1106381_rule
Checks: C-61956r1106380_chk
Verify RHEL 9 generates an audit record for all uses of the "umount" and system call with the following command: $ sudo auditctl -l | grep b32 | grep 'umount\b' -a always,exit -S arch=b32 -S umount -F auid>=1000 -F auid!=-1 -F key=privileged-umount If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61880r1045429_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "umount" system call by adding or updating the following rules in "/etc/audit/audit.rules" and adding the following rules to "/etc/audit/rules.d/perm_mod.rules" or updating the existing rules in files in the "/etc/audit/rules.d/" directory: -a always,exit -F arch=b32 -S umount -F auid>=1000 -F auid!=unset -k privileged-umount To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654210
- Vuln IDs
-
- V-258216
- Rule IDs
-
- SV-258216r1102090_rule
Checks: C-61957r1102089_chk
To determine if the system is configured to audit calls to the umount2 system call, run the following command: $ sudo auditctl -l | grep umount2 -a always,exit -S arch=b64 -S umount2 -F auid>=1000 -F auid!=-1 -F key=privileged-umount -a always,exit -S arch=b32 -S umount2 -F auid>=1000 -F auid!=-1 -F key=privileged-umount If no line is returned, this is a finding.
Fix: F-61881r1045432_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "umount2" system call by adding or updating the following rules in a file in "/etc/audit/rules.d". -a always,exit -F arch=b32 -S umount2 -F auid>=1000 -F auid!=unset -k privileged-umount -a always,exit -F arch=b64 -S umount2 -F auid>=1000 -F auid!=unset -k privileged-umount To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000018
- Version
- RHEL-09-654215
- Vuln IDs
-
- V-258217
- Rule IDs
-
- SV-258217r1045436_rule
Checks: C-61958r1045434_chk
Verify RHEL 9 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/sudoers" with the following command: $ sudo auditctl -l | grep '/etc/sudoers[^.]' -w /etc/sudoers -p wa -k identity If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61882r1045435_fix
Configure RHEL 9 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/sudoers". Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": -w /etc/sudoers -p wa -k identity To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000018
- Version
- RHEL-09-654220
- Vuln IDs
-
- V-258218
- Rule IDs
-
- SV-258218r1101981_rule
Checks: C-61959r1101980_chk
Verify RHEL 9 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/sudoers.d/" with the following command: $ sudo auditctl -l | grep /etc/sudoers.d -w /etc/sudoers.d/ -p wa -k identity If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61883r1045438_fix
Configure RHEL 9 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/sudoers.d/". Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": -w /etc/sudoers.d/ -p wa -k identity To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000018
- Version
- RHEL-09-654225
- Vuln IDs
-
- V-258219
- Rule IDs
-
- SV-258219r1015130_rule
Checks: C-61960r926642_chk
Verify RHEL 9 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/group" with the following command: $ sudo auditctl -l | egrep '(/etc/group)' -w /etc/group -p wa -k identity If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61884r926643_fix
Configure RHEL 9 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/group". Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": -w /etc/group -p wa -k identity The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000018
- Version
- RHEL-09-654230
- Vuln IDs
-
- V-258220
- Rule IDs
-
- SV-258220r1015131_rule
Checks: C-61961r926645_chk
Verify RHEL 9 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow" with the following command: $ sudo auditctl -l | egrep '(/etc/gshadow)' -w /etc/gshadow -p wa -k identity If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61885r926646_fix
Configure RHEL 9 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow". Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": -w /etc/gshadow -p wa -k identity The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000018
- Version
- RHEL-09-654235
- Vuln IDs
-
- V-258221
- Rule IDs
-
- SV-258221r1015132_rule
Checks: C-61962r926648_chk
Verify RHEL 9 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/security/opasswd" with the following command: $ sudo auditctl -l | egrep '(/etc/security/opasswd)' -w /etc/security/opasswd -p wa -k identity If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61886r926649_fix
Configure RHEL 9 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/security/opasswd". Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": -w /etc/security/opasswd -p wa -k identity The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000015
- Version
- RHEL-09-654240
- Vuln IDs
-
- V-258222
- Rule IDs
-
- SV-258222r1015133_rule
Checks: C-61963r926651_chk
Verify RHEL 9 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd" with the following command: $ sudo auditctl -l | egrep '(/etc/passwd)' -w /etc/passwd -p wa -k identity If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61887r926652_fix
Configure RHEL 9 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd". Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": -w /etc/passwd -p wa -k identity The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000018
- Version
- RHEL-09-654245
- Vuln IDs
-
- V-258223
- Rule IDs
-
- SV-258223r1015134_rule
Checks: C-61964r926654_chk
Verify RHEL 9 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd with the following command: $ sudo auditctl -l | egrep '(/etc/shadow)' -w /etc/shadow -p wa -k identity If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61888r926655_fix
Configure RHEL 9 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/etc/shadow". Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": -w /etc/shadow -p wa -k identity The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- RHEL-09-654250
- Vuln IDs
-
- V-258224
- Rule IDs
-
- SV-258224r1014988_rule
Checks: C-61965r926657_chk
Verify RHEL 9 generates audit records for all account creations, modifications, disabling, and termination events that affect "/var/log/faillock" with the following command: $ sudo auditctl -l | grep /var/log/faillock -w /var/log/faillock -p wa -k logins If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61889r1014987_fix
Configure RHEL 9 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/var/log/faillock". Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": -w /var/log/faillock -p wa -k logins The audit daemon must be restarted for the changes to take effect. $ sudo service auditd restart
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- RHEL-09-654255
- Vuln IDs
-
- V-258225
- Rule IDs
-
- SV-258225r1014990_rule
Checks: C-61966r926660_chk
Verify RHEL 9 generates audit records for all account creations, modifications, disabling, and termination events that affect "/var/log/lastlog" with the following command: $ sudo auditctl -l | grep /var/log/lastlog -w /var/log/lastlog -p wa -k logins If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-61890r1014989_fix
Configure RHEL 9 to generate audit records for all account creations, modifications, disabling, and termination events that affect "/var/log/lastlog". Add or update the following file system rule to "/etc/audit/rules.d/audit.rules": -w /var/log/lastlog -p wa -k logins The audit daemon must be restarted for the changes to take effect. $ sudo service auditd restart
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000139
- Version
- RHEL-09-654265
- Vuln IDs
-
- V-258227
- Rule IDs
-
- SV-258227r1014992_rule
Checks: C-61968r926666_chk
Verify the audit service is configured to panic on a critical error with the following command: $ sudo grep "\-f" /etc/audit/audit.rules -f 2 If the value for "-f" is not "2", and availability is not documented as an overriding concern, this is a finding.
Fix: F-61892r1014991_fix
Configure RHEL 9 to shut down when auditing failures occur. Add the following line to the bottom of the /etc/audit/rules.d/audit.rules file: -f 2
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-09-654270
- Vuln IDs
-
- V-258228
- Rule IDs
-
- SV-258228r991572_rule
Checks: C-61969r926669_chk
Verify the audit system prevents unauthorized changes to logon UIDs with the following command: $ sudo grep -i immutable /etc/audit/audit.rules --loginuid-immutable If the "--loginuid-immutable" option is not returned in the "/etc/audit/audit.rules", or the line is commented out, this is a finding.
Fix: F-61893r926670_fix
Configure RHEL 9 auditing to prevent modification of login UIDs once they are set by adding the following line to /etc/audit/rules.d/audit.rules: --loginuid-immutable The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-09-654275
- Vuln IDs
-
- V-258229
- Rule IDs
-
- SV-258229r958434_rule
Checks: C-61970r926672_chk
Verify the audit system prevents unauthorized changes with the following command: $ sudo grep "^\s*[^#]" /etc/audit/audit.rules | tail -1 -e 2 If the audit system is not set to be immutable by adding the "-e 2" option to the end of "/etc/audit/audit.rules", this is a finding.
Fix: F-61894r926673_fix
Configure the audit system to set the audit rules to be immutable by adding the following line to end of "/etc/audit/rules.d/audit.rules" -e 2 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AC-17
- Severity
- H
- CCI
- CCI-000068
- Version
- RHEL-09-671010
- Vuln IDs
-
- V-258230
- Rule IDs
-
- SV-258230r1134936_rule
Checks: C-61971r1134935_chk
Verify that RHEL 9 is in FIPS mode with the following command: $ sudo fips-mode-setup --check FIPS mode is enabled. If FIPS mode is not enabled, this is a finding. If any other lines are returned by the above command, run the following command to see the currently applied crypto-policy: $ update-crypto-policies --show FIPS If the policy is not "FIPS" or a FIPS policy authorized by and documented with the ISSO, this is a finding.
Fix: F-61895r926676_fix
Configure the operating system to implement FIPS mode with the following command $ sudo fips-mode-setup --enable Reboot the system for the changes to take effect.
- RMF Control
- Severity
- M
- CCI
- CCI-004062
- Version
- RHEL-09-671015
- Vuln IDs
-
- V-258231
- Rule IDs
-
- SV-258231r1069375_rule
Checks: C-61972r1069374_chk
Verify the interactive user account passwords are using a strong password hash with the following command: $ sudo cut -d: -f2 /etc/shadow $6$kcOnRq/5$NUEYPuyL.wghQwWssXRcLRFiiru7f5JPV6GaJhNC2aK5F3PZpE/BCCtwrxRc/AInKMNX3CdMw11m9STiql12f/ Password hashes "!" or "*" indicate inactive accounts not available for logon and are not evaluated. If any interactive user password hash does not begin with "$6$", this is a finding.
Fix: F-61896r926679_fix
Lock all interactive user accounts not using SHA-512 hashing until the passwords can be regenerated with SHA-512.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-000068
- Version
- RHEL-09-671020
- Vuln IDs
-
- V-258232
- Rule IDs
-
- SV-258232r1045440_rule
Checks: C-61973r926681_chk
Verify that the IPsec service uses the system crypto policy with the following command: Note: If the ipsec service is not installed, this requirement is Not Applicable. $ sudo grep include /etc/ipsec.conf /etc/ipsec.d/*.conf /etc/ipsec.conf:include /etc/crypto-policies/back-ends/libreswan.config If the ipsec configuration file does not contain "include /etc/crypto-policies/back-ends/libreswan.config", this is a finding.
Fix: F-61897r926682_fix
Configure Libreswan to use the system cryptographic policy. Add the following line to "/etc/ipsec.conf": include /etc/crypto-policies/back-ends/libreswan.config
- RMF Control
- Severity
- M
- CCI
- CCI-004062
- Version
- RHEL-09-671025
- Vuln IDs
-
- V-258233
- Rule IDs
-
- SV-258233r1015136_rule
Checks: C-61974r1014993_chk
Verify that the pam_unix.so module is configured to use sha512 in /etc/pam.d/password-auth with the following command: $ grep "^password.*pam_unix.so.*sha512" /etc/pam.d/password-auth password sufficient pam_unix.so sha512 If "sha512" is missing, or the line is commented out, this is a finding. If the system administrator (SA) can demonstrate that the required configuration is contained in a PAM configuration file included or substacked from the system-auth file, this is not a finding.
Fix: F-61898r926685_fix
Configure RHEL 9 to use a FIPS 140-3 approved cryptographic hashing algorithm for system authentication. Edit/modify the following line in the "/etc/pam.d/password-auth" file to include the sha512 option for pam_unix.so: password sufficient pam_unix.so sha512
- RMF Control
- SC-13
- Severity
- M
- CCI
- CCI-002450
- Version
- RHEL-09-215100
- Vuln IDs
-
- V-258234
- Rule IDs
-
- SV-258234r1051250_rule
Checks: C-61975r1051248_chk
Verify that the RHEL 9 crypto-policies package is installed with the following command: $ dnf list --installed crypto-policies Example output: crypto-policies.noarch 20240828-2.git626aa59.el9_5 If the crypto-policies package is not installed, this is a finding.
Fix: F-61899r1051249_fix
Install the crypto-policies package (if the package is not already installed) with the following command: $ sudo dnf -y install crypto-policies
- RMF Control
- SC-13
- Severity
- H
- CCI
- CCI-002450
- Version
- RHEL-09-672020
- Vuln IDs
-
- V-258236
- Rule IDs
-
- SV-258236r1101920_rule
Checks: C-61977r1101919_chk
Verify that RHEL 9 cryptographic policies are not overridden. Verify that the configured policy matches the generated policy with the following command: $ sudo update-crypto-policies --check The configured policy matches the generated policy If the returned message does not match the above, but instead matches the following, this is a finding: The configured policy does NOT match the generated policy List all of the crypto backends configured on the system with the following command: $ ls -l /etc/crypto-policies/back-ends/ lrwxrwxrwx. 1 root root 40 Nov 13 16:29 bind.config -> /usr/share/crypto-policies/FIPS/bind.txt lrwxrwxrwx. 1 root root 42 Nov 13 16:29 gnutls.config -> /usr/share/crypto-policies/FIPS/gnutls.txt lrwxrwxrwx. 1 root root 40 Nov 13 16:29 java.config -> /usr/share/crypto-policies/FIPS/java.txt lrwxrwxrwx. 1 root root 46 Nov 13 16:29 javasystem.config -> /usr/share/crypto-policies/FIPS/javasystem.txt lrwxrwxrwx. 1 root root 40 Nov 13 16:29 krb5.config -> /usr/share/crypto-policies/FIPS/krb5.txt lrwxrwxrwx. 1 root root 45 Nov 13 16:29 libreswan.config -> /usr/share/crypto-policies/FIPS/libreswan.txt lrwxrwxrwx. 1 root root 42 Nov 13 16:29 libssh.config -> /usr/share/crypto-policies/FIPS/libssh.txt -rw-r--r--. 1 root root 398 Nov 13 16:29 nss.config lrwxrwxrwx. 1 root root 43 Nov 13 16:29 openssh.config -> /usr/share/crypto-policies/FIPS/openssh.txt lrwxrwxrwx. 1 root root 49 Nov 13 16:29 opensshserver.config -> /usr/share/crypto-policies/FIPS/opensshserver.txt lrwxrwxrwx. 1 root root 46 Nov 13 16:29 opensslcnf.config -> /usr/share/crypto-policies/FIPS/opensslcnf.txt lrwxrwxrwx. 1 root root 43 Nov 13 16:29 openssl.config -> /usr/share/crypto-policies/FIPS/openssl.txt lrwxrwxrwx. 1 root root 48 Nov 13 16:29 openssl_fips.config -> /usr/share/crypto-policies/FIPS/openssl_fips.txt If the paths do not point to the respective files under /usr/share/crypto-policies/FIPS path, this is a finding. Note: nss.config should not be symlinked. Note: If there is an operational need to use a subpolicy that causes the links to the crypto backends to break, this is a finding, and exceptions will need to be made by the authorizing official (AO) and documented with the information system security officer (ISSO).
Fix: F-61901r1051252_fix
Configure RHEL 9 to correctly implement the systemwide cryptographic policies by reinstalling the crypto-policies package contents. Reinstall crypto-policies with the following command: $ sudo dnf -y reinstall crypto-policies Set the crypto-policy to FIPS with the following command: $ sudo update-crypto-policies --set FIPS Setting system policy to FIPS Note: Systemwide crypto policies are applied on application startup. It is recommended to restart the system for the change of policies to fully take place.
- RMF Control
- SC-13
- Severity
- M
- CCI
- CCI-002450
- Version
- RHEL-09-215105
- Vuln IDs
-
- V-258241
- Rule IDs
-
- SV-258241r1106302_rule
Checks: C-61982r1106300_chk
Verify RHEL 9 is set to use a FIPS 140-3-compliant systemwide cryptographic policy with the following command: $ update-crypto-policies --show FIPS If the systemwide crypto policy is not set to "FIPS", this is a finding. Note: If subpolicies have been configured, they could be listed in a colon-separated list starting with "FIPS" as follows FIPS:<SUBPOLICY-NAME>. This is not a finding. Note: Subpolicies like AD-SUPPORT must be configured according to the latest guidance from the operating system vendor. Verify the current minimum crypto-policy configuration with the following commands: $ grep -E 'rsa_size|hash' /etc/crypto-policies/state/CURRENT.pol hash = SHA2-256 SHA2-384 SHA2-512 SHA2-224 SHA3-256 SHA3-384 SHA3-512 SHAKE-256 min_rsa_size = 2048 If the "hash" values do not include at least the following FIPS 140-3-compliant algorithms "SHA2-256 SHA2-384 SHA2-512 SHA2-224 SHA3-256 SHA3-384 SHA3-512 SHAKE-256", this is a finding. If there are algorithms that include "SHA1" or a hash value less than "224" this is a finding. If the "min_rsa_size" is not set to a value of at least "2048", this is a finding. If these commands do not return any output, this is a finding.
Fix: F-61906r1106301_fix
Configure RHEL 9 to use a FIPS 140-3-compliant systemwide cryptographic policy. Create a subpolicy for enhancements to the base systemwide crypto-policy by creating the file /etc/crypto-policies/policies/modules/STIG.pmod with the following content: # Define ciphers and MACs for OpenSSH and libssh cipher@SSH=AES-256-GCM AES-256-CTR AES-128-GCM AES-128-CTR mac@SSH=HMAC-SHA2-512 HMAC-SHA2-256 Apply the policy enhancements to the FIPS systemwide cryptographic policy level with the following command: $ sudo update-crypto-policies --set FIPS:STIG Note: If additional subpolicies are being employed, they must be added to the update-crypto-policies command. To make the cryptographic settings effective for already running services and applications, restart the system: $ sudo reboot
- RMF Control
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- RHEL-09-672050
- Vuln IDs
-
- V-258242
- Rule IDs
-
- SV-258242r958908_rule
Checks: C-61983r926711_chk
Verify that BIND uses the system crypto policy with the following command: Note: If the "bind" package is not installed, this requirement is Not Applicable. $ sudo grep include /etc/named.conf include "/etc/crypto-policies/back-ends/bind.config";' If BIND is installed and the BIND config file doesn't contain the include "/etc/crypto-policies/back-ends/bind.config" directive, or the line is commented out, this is a finding.
Fix: F-61907r926712_fix
Configure BIND to use the system crypto policy. Add the following line to the "options" section in "/etc/named.conf": include "/etc/crypto-policies/back-ends/bind.config";
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- RHEL-09-171011
- Vuln IDs
-
- V-270174
- Rule IDs
-
- SV-270174r1044831_rule
Checks: C-74207r1044829_chk
Note: This requirement assumes the use of the RHEL 9 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Verify RHEL 9 displays the Standard Mandatory DOD Notice and Consent Banner before granting access to the operating system via a graphical user logon. Check that the operating system displays the exact Standard Mandatory DOD Notice and Consent Banner text with the command: $ gsettings get org.gnome.login-screen banner-message-text banner-message-text= 'You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only.\nBy using this IS (which includes any device attached to this IS), you consent to the following conditions:\n-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations.\n-At any time, the USG may inspect and seize data stored on this IS.\n-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\n-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy.\n-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. ' Note: The "\n " characters are for formatting only. They will not be displayed on the graphical interface. If the banner does not match the Standard Mandatory DOD Notice and Consent Banner exactly, this is a finding.
Fix: F-74108r1044830_fix
Configure the operating system to display the Standard Mandatory DOD Notice and Consent Banner before granting access to the system. Add the following lines to the [org/gnome/login-screen] section of the "/etc/dconf/db/local.d/01-banner-message": banner-message-text='You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only.\nBy using this IS (which includes any device attached to this IS), you consent to the following conditions:\n-The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations.\n-At any time, the USG may inspect and seize data stored on this IS.\n-Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose.\n-This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy.\n-Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. ' Note: The "\n " characters are for formatting only. They will not be displayed on the graphical interface. Run the following command to update the database: $ sudo dconf update
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-09-232103
- Vuln IDs
-
- V-270175
- Rule IDs
-
- SV-270175r1117265_rule
Checks: C-74208r1044962_chk
Verify the ownership of the "/etc/audit/" directory with the following command: $ sudo stat -c "%U %n" /etc/audit/ root /etc/audit/ If the "/etc/audit/" directory does not have an owner of "root", this is a finding.
Fix: F-74109r1044963_fix
Change the owner of the file "/etc/audit/" to "root" by running the following command: $ sudo chown root /etc/audit/
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-09-232104
- Vuln IDs
-
- V-270176
- Rule IDs
-
- SV-270176r1117265_rule
Checks: C-74209r1044965_chk
Verify the group ownership of the "/etc/audit/" directory with the following command: $ sudo stat -c "%G %n" /etc/audit/ root /etc/audit/ If "/etc/audit/" does not have a group owner of "root", this is a finding.
Fix: F-74110r1044966_fix
Change the group of the file "/etc/audit/" to "root" by running the following command: $ sudo chgrp root /etc/audit/
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-09-255064
- Vuln IDs
-
- V-270177
- Rule IDs
-
- SV-270177r1051237_rule
Checks: C-74210r1051235_chk
Verify the SSH client is configured to use only ciphers employing FIPS 140-3 approved algorithms. To verify the ciphers in the systemwide SSH configuration file, use the following command: $ grep -i Ciphers /etc/crypto-policies/back-ends/openssh.config Ciphers aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr If the cipher entries in the "openssh.config" file have any ciphers other than "aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr", or they are missing or commented out, this is a finding.
Fix: F-74111r1051236_fix
Configure the SSH client to use only ciphers employing FIPS 140-3 approved algorithms. Reinstall crypto-policies with the following command: $ sudo dnf -y reinstall crypto-policies Set the crypto-policy to FIPS with the following command: $ sudo update-crypto-policies --set FIPS Setting system policy to FIPS Note: Systemwide crypto policies are applied on application startup. It is recommended to restart the system for the change of policies to fully take place.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-09-255070
- Vuln IDs
-
- V-270178
- Rule IDs
-
- SV-270178r1051243_rule
Checks: C-74211r1051241_chk
Verify the SSH client is configured to use only MACs employing FIPS 140-3 approved algorithms. To verify the MACs in the systemwide SSH configuration file, use the following command: $ grep -i MACs /etc/crypto-policies/back-ends/openssh.config MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512 If the MACs entries in the "openssh.config" file have any hashes other than "hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512", or they are missing or commented out, this is a finding.
Fix: F-74112r1051242_fix
Configure the SSH client to use only MACs employing FIPS 140-3 approved algorithms. Reinstall crypto-policies with the following command: $ sudo dnf -y reinstall crypto-policies Set the crypto-policy to FIPS with the following command: $ sudo update-crypto-policies --set FIPS Setting system policy to FIPS Note: Systemwide crypto policies are applied on application startup. It is recommended to restart the system for the change of policies to fully take place.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-09-433016
- Vuln IDs
-
- V-270180
- Rule IDs
-
- SV-270180r1045182_rule
Checks: C-74213r1045180_chk
Verify the RHEL 9 "fapolicyd" employs a deny-all, permit-by-exception policy. Check that "fapolicyd" is in enforcement mode with the following command: $ sudo grep permissive /etc/fapolicyd/fapolicyd.conf permissive = 0 Check that "fapolicyd" employs a deny-all policy on system mounts with the following commands: $ sudo tail /etc/fapolicyd/compiled.rules allow exe=/usr/bin/python3.7 : ftype=text/x-python deny_audit perm=any pattern=ld_so : all deny perm=any all : all If "fapolicyd" is not running in enforcement mode with a deny-all, permit-by-exception policy, this is a finding.
Fix: F-74114r1045181_fix
Configure RHEL 9 to employ a deny-all, permit-by-exception application allow listing policy with "fapolicyd". With the "fapolicyd" installed and enabled, configure the daemon to function in permissive mode until the allow list is built correctly to avoid system lockout. Do this by editing the "/etc/fapolicyd/fapolicyd.conf" file with the following line: permissive = 1 Build the allow list in a file within the "/etc/fapolicyd/rules.d" directory, ensuring the last rule is "deny perm=any all : all". Once it is determined the allow list is built correctly, set the "fapolicyd" to enforcing mode by editing the "permissive" line in the /etc/fapolicyd/fapolicyd.conf file. permissive = 0
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000015
- Version
- RHEL-09-215101
- Vuln IDs
-
- V-272488
- Rule IDs
-
- SV-272488r1082178_rule
Checks: C-76542r1082176_chk
Verify that RHEL 9 has the Postfix package installed with the following command: $ sudo dnf list --installed postfix Example output: postfix.x86_64 2:3.5.25-1.el9 If the "postfix" package is not installed, this is a finding.
Fix: F-76447r1082177_fix
Install the Postfix package with the following command: $ sudo dnf install postfix
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002235
- Version
- RHEL-09-431016
- Vuln IDs
-
- V-272496
- Rule IDs
-
- SV-272496r1134956_rule
Checks: C-76549r1069439_chk
Verify that RHEL 9 elevates the SELinux context when an administrator calls the sudo command with the following command: This command must be run as root: # grep -r sysadm_r /etc/sudoers /etc/sudoers.d %{designated_group_or_user_name} ALL=(ALL) TYPE=sysadm_t ROLE=sysadm_r ALL If conflicting results are returned, this is a finding. If a designated sudoers administrator group or account(s) is not configured to elevate the SELinux type and role to "sysadm_t" and "sysadm_r" with the use of the sudo command, this is a finding.
Fix: F-76453r1082183_fix
Configure RHEL 9 to elevate the SELinux context when an administrator calls the sudo command. Edit a file in the "/etc/sudoers.d" directory with the following command: $ sudo visudo -f /etc/sudoers.d/<customfile> Use the following example to build the <customfile> in the /etc/sudoers.d directory to allow any administrator belonging to a designated sudoers admin group to elevate their SELinux context with the use of the sudo command: %{designated_group_or_user_name} ALL=(ALL) TYPE=sysadm_t ROLE=sysadm_r ALL Remove any configurations that conflict with the above from the following locations: /etc/sudoers /etc/sudoers.d/