Red Hat Enterprise Linux 8 Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates +1 ✎ 9
Comparison against the immediately-prior release (V2R3). 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.
Added rules 1
- V-274877 Medium RHEL 8 must audit any script or executable called by cron as root or by any privileged user.
Content changes 9
- V-230260 Medium checkfix RHEL 8 library files must have mode 755 or less permissive.
- V-230261 Medium checkfix RHEL 8 library files must be owned by root.
- V-230262 Medium checkfix RHEL 8 library files must be group-owned by root or a system account.
- V-230271 Medium check RHEL 8 must require users to provide a password for privilege escalation.
- V-230272 Medium check RHEL 8 must require users to reauthenticate for privilege escalation.
- V-230500 Medium check RHEL 8 must be configured to prohibit or restrict the use of functions, ports, protocols, and/or services, as defined in the Ports, Protocols, and Services Management (PPSM) Category Assignments List (CAL) and vulnerability assessments.
- V-230552 Low descriptioncheck The RHEL 8 file integrity tool must be configured to verify Access Control Lists (ACLs).
- V-237641 Medium check RHEL 8 must restrict privilege elevation to authorized personnel.
- V-244532 Medium check RHEL 8 must be configured so that all files and directories contained in local interactive user home directories are group-owned by a group of which the home directory owner is a member.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-010000
- Vuln IDs
-
- V-230221
- Rule IDs
-
- SV-230221r1017040_rule
Checks: C-32890r858733_chk
Verify the version of the operating system is vendor supported. Note: The lifecycle time spans and dates are subject to adjustment. Check the version of the operating system with the following command: $ sudo cat /etc/redhat-release Red Hat Enterprise Linux Server release 8.6 (Ootpa) Current End of Extended Update Support for RHEL 8.1 is 30 November 2021. Current End of Extended Update Support for RHEL 8.2 is 30 April 2022. Current End of Extended Update Support for RHEL 8.4 is 31 May 2023. Current End of Maintenance Support for RHEL 8.5 is 31 May 2022. Current End of Extended Update Support for RHEL 8.6 is 31 May 2024. Current End of Maintenance Support for RHEL 8.7 is 31 May 2023. Current End of Extended Update Support for RHEL 8.8 is 31 May 2025. Current End of Maintenance Support for RHEL 8.9 is 31 May 2024. Current End of Maintenance Support for RHEL 8.10 is 31 May 2029. If the release is not supported by the vendor, this is a finding.
Fix: F-32865r567410_fix
Upgrade to a supported version of RHEL 8.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010010
- Vuln IDs
-
- V-230222
- Rule IDs
-
- SV-230222r1017041_rule
Checks: C-32891r567412_chk
Verify the operating system security patches and updates are installed and up to date. Updates are required to be applied with a frequency determined by the site or Program Management Office (PMO). Obtain the list of available package security updates from Red Hat. The URL for updates is https://rhn.redhat.com/errata/. 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 yum history list | more Loaded plugins: langpacks, product-id, subscription-manager ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 70 | install aide | 2020-03-05 10:58 | Install | 1 69 | update -y | 2020-03-04 14:34 | Update | 18 EE 68 | install vlc | 2020-02-21 17:12 | Install | 21 67 | update -y | 2020-02-21 17:04 | Update | 7 EE If package updates have not been performed on the system within the timeframe the site/program documentation requires, this is a finding. Typical update frequency may be overridden by Information Assurance Vulnerability Alert (IAVA) notifications from CYBERCOM. If the operating system is in non-compliance with the Information Assurance Vulnerability Management (IAVM) process, this is a finding.
Fix: F-32866r567413_fix
Install the operating system patches or updated packages available from Red Hat within 30 days or sooner as local policy dictates.
- RMF Control
- AC-17
- Severity
- H
- CCI
- CCI-000068
- Version
- RHEL-08-010020
- Vuln IDs
-
- V-230223
- Rule IDs
-
- SV-230223r1069327_rule
Checks: C-32892r1069263_chk
Verify the operating system implements DOD-approved encryption to protect the confidentiality of remote access sessions. Show the configured systemwide cryptographic policy by running the following command: $ sudo update-crypto-policies --show FIPS If the main policy name is not "FIPS", this is a finding. If the AD-SUPPORT subpolicy module is included (e.g., "FIPS:AD-SUPPORT"), and Active Directory support is not documented as an operational requirement with the information system security officer (ISSO), this is a finding. If the NO-ENFORCE-EMS subpolicy module is included (e.g., "FIPS:NO-ENFORCE-EMS"), and not enforcing EMS is not documented as an operational requirement with the ISSO, this is a finding. If any other subpolicy module is included, this is a finding.
Fix: F-32867r928584_fix
Configure the operating system to implement DOD-approved encryption by following the steps below: To enable strict FIPS compliance, the fips=1 kernel option needs to be added to the kernel boot parameters during system installation so key generation is done with FIPS-approved algorithms and continuous monitoring tests in place. Enable FIPS mode after installation (not strict FIPS-compliant) with the following command: $ sudo fips-mode-setup --enable Reboot the system for the changes to take effect.
- RMF Control
- SC-28
- Severity
- H
- CCI
- CCI-001199
- Version
- RHEL-08-010030
- Vuln IDs
-
- V-230224
- Rule IDs
-
- SV-230224r1044787_rule
Checks: C-32893r917863_chk
Verify RHEL 8 prevents unauthorized disclosure or modification of all information requiring at-rest protection by using disk encryption. 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 all system partitions are encrypted with the following command: $ sudo blkid /dev/mapper/rhel-root: UUID="67b7d7fe-de60-6fd0-befb-e6748cf97743" TYPE="crypto_LUKS" Every persistent disk partition present must be of type "crypto_LUKS". If any partitions other than the boot partition or pseudo file systems (such as /proc or /sys) are not type "crypto_LUKS", ask the administrator to indicate how the partitions are encrypted. If there is no evidence that these partitions are encrypted, this is a finding.
Fix: F-32868r567419_fix
Configure RHEL 8 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
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- RHEL-08-010040
- Vuln IDs
-
- V-230225
- Rule IDs
-
- SV-230225r1069297_rule
Checks: C-32894r1069203_chk
Verify any publicly accessible connection to the operating system 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: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. If conflicting results are returned, this is a finding. View the file specified by the banner keyword to check that it matches the text of the Standard Mandatory DOD Notice and Consent Banner: "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 system does not display a graphical logon banner or the banner does not match the Standard Mandatory DOD Notice and Consent Banner, this is a finding. If the text in the file does not match the Standard Mandatory DOD Notice and Consent Banner, this is a finding.
Fix: F-32869r951589_fix
Configure the operating system to display the Standard Mandatory DOD Notice and Consent Banner before granting access to the system via the ssh. Edit the "/etc/ssh/sshd_config" file 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 Either create the file containing the banner or replace the text in the file 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." The SSH service must be restarted for changes to take effect.
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- RHEL-08-010050
- Vuln IDs
-
- V-230226
- Rule IDs
-
- SV-230226r1069298_rule
Checks: C-32895r1069205_chk
Verify RHEL 8 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 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Check that the operating system displays the exact Standard Mandatory DoD Notice and Consent Banner text with the command: $ sudo grep -r banner-message-text /etc/dconf/db/local.d/* /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. If the banner does not match the Standard Mandatory DoD Notice and Consent Banner exactly, this is a finding.
Fix: F-32870r743915_fix
Configure the operating system to display the Standard Mandatory DoD Notice and Consent Banner before granting access to the system. Note: If the system does not have a graphical user interface installed, this requirement is Not Applicable. 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
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- RHEL-08-010060
- Vuln IDs
-
- V-230227
- Rule IDs
-
- SV-230227r1017046_rule
Checks: C-32896r567427_chk
Verify RHEL 8 displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the operating system via a command line user logon. Check that RHEL 8 displays a banner 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, this is a finding.
Fix: F-32871r567428_fix
Configure RHEL 8 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
- AC-17
- Severity
- M
- CCI
- CCI-000067
- Version
- RHEL-08-010070
- Vuln IDs
-
- V-230228
- Rule IDs
-
- SV-230228r1069299_rule
Checks: C-32897r1069207_chk
Verify that RHEL 8 monitors all remote access methods. Check that remote access methods are being logged by running the following command: $ sudo grep -E '(auth\.\*|authpriv\.\*|daemon\.\*)' /etc/rsyslog.conf /etc/rsyslog.d/*.conf /etc/rsyslog.d/*.conf auth.*;authpriv.*;daemon.* /var/log/secure If "auth.*", "authpriv.*" or "daemon.*" are not configured to be logged, this is a finding.
Fix: F-32872r567431_fix
Configure RHEL 8 to monitor all remote access methods by installing rsyslog with the following command: $ sudo yum install rsyslog Then add or update the following lines to the "/etc/rsyslog.conf" file: auth.*;authpriv.*;daemon.* /var/log/secure The "rsyslog" service must be restarted for the changes to take effect. To restart the "rsyslog" service, run the following command: $ sudo systemctl restart rsyslog.service
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000185
- Version
- RHEL-08-010090
- Vuln IDs
-
- V-230229
- Rule IDs
-
- SV-230229r1017048_rule
Checks: C-32898r858738_chk
Verify RHEL 8 for PKI-based authentication has valid certificates by constructing a certification path (which includes status information) to an accepted trust anchor. Note: If the System Administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. 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 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-32873r809269_fix
Configure RHEL 8, 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 at cyber.mil and copy into the following file: /etc/sssd/pki/sssd_auth_ca_db.pem
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- RHEL-08-010100
- Vuln IDs
-
- V-230230
- Rule IDs
-
- SV-230230r1069287_rule
Checks: C-32899r1069182_chk
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 Enter passphrase: If the contents of the key are displayed, this is a finding.
Fix: F-32874r1069183_fix
Create a new private and public key pair that utilizes a passcode with the following command: $ sudo ssh-keygen -p -f /path/to/file
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000196
- Version
- RHEL-08-010110
- Vuln IDs
-
- V-230231
- Rule IDs
-
- SV-230231r1017050_rule
Checks: C-32900r567439_chk
Verify that the shadow password suite configuration is set to encrypt password with a FIPS 140-2 approved cryptographic hashing algorithm. Check the hashing algorithm that is being used to hash passwords with the following command: $ sudo grep -i crypt /etc/login.defs ENCRYPT_METHOD SHA512 If "ENCRYPT_METHOD" does not equal SHA512 or greater, this is a finding.
Fix: F-32875r567440_fix
Configure RHEL 8 to encrypt all stored passwords. Edit/Modify the following line in the "/etc/login.defs" file and set "[ENCRYPT_METHOD]" to SHA512. ENCRYPT_METHOD SHA512
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000196
- Version
- RHEL-08-010120
- Vuln IDs
-
- V-230232
- Rule IDs
-
- SV-230232r1017051_rule
Checks: C-32901r567442_chk
Confirm that 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-32876r567443_fix
Lock all interactive user accounts not using SHA-512 hashing until the passwords can be regenerated with SHA-512.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000196
- Version
- RHEL-08-010130
- Vuln IDs
-
- V-230233
- Rule IDs
-
- SV-230233r1044790_rule
Checks: C-32902r1044788_chk
Check that a minimum number of hash rounds is configured by running the following command: $ sudo grep -E "^SHA_CRYPT_" /etc/login.defs If only one of "SHA_CRYPT_MIN_ROUNDS" or "SHA_CRYPT_MAX_ROUNDS" is set, and this value is below "100000", this is a finding. If both "SHA_CRYPT_MIN_ROUNDS" and "SHA_CRYPT_MAX_ROUNDS" are set, and the highest value for either is below "100000", this is a finding.
Fix: F-32877r1044789_fix
Configure RHEL 8 to encrypt all stored passwords with a strong cryptographic hash. Edit/modify the following line in the "/etc/login.defs" file and set "SHA_CRYPT_MIN_ROUNDS" to a value no lower than "100000": SHA_CRYPT_MIN_ROUNDS 100000
- RMF Control
- AC-3
- Severity
- H
- CCI
- CCI-000213
- Version
- RHEL-08-010140
- Vuln IDs
-
- V-230234
- Rule IDs
-
- SV-230234r1017053_rule
Checks: C-32903r743920_chk
For systems that use BIOS, this is Not Applicable. Check to see if an encrypted grub superusers password is set. On systems that use UEFI, use the following command: $ sudo grep -iw grub2_password /boot/efi/EFI/redhat/user.cfg GRUB2_PASSWORD=grub.pbkdf2.sha512.[password_hash] If the grub superusers password does not begin with "grub.pbkdf2.sha512", this is a finding.
Fix: F-32878r743921_fix
Configure the system to require a grub bootloader password for the grub superusers account with the grub2-setpassword command, which creates/overwrites the /boot/efi/EFI/redhat/user.cfg file. Generate an encrypted grub2 password for the grub superusers account with the following command: $ sudo grub2-setpassword Enter password: Confirm password:
- RMF Control
- AC-3
- Severity
- H
- CCI
- CCI-000213
- Version
- RHEL-08-010150
- Vuln IDs
-
- V-230235
- Rule IDs
-
- SV-230235r1017054_rule
Checks: C-32904r743923_chk
For systems that use UEFI, this is Not Applicable. Check to see if an encrypted grub superusers password is set. On systems that use a BIOS, use the following command: $ sudo grep -iw grub2_password /boot/grub2/user.cfg GRUB2_PASSWORD=grub.pbkdf2.sha512.[password_hash] If the grub superusers password does not begin with "grub.pbkdf2.sha512", this is a finding.
Fix: F-32879r743924_fix
Configure the system to require a grub bootloader password for the grub superusers account with the grub2-setpassword command, which creates/overwrites the /boot/grub2/user.cfg file. Generate an encrypted grub2 password for the grub superusers account with the following command: $ sudo grub2-setpassword Enter password: Confirm password:
- RMF Control
- AC-3
- Severity
- M
- CCI
- CCI-000213
- Version
- RHEL-08-010151
- Vuln IDs
-
- V-230236
- Rule IDs
-
- SV-230236r1017055_rule
Checks: C-32905r743926_chk
Check to see if the system requires authentication for rescue mode with the following command: $ sudo grep sulogin-shell /usr/lib/systemd/system/rescue.service ExecStart=-/usr/lib/systemd/systemd-sulogin-shell rescue If the "ExecStart" line is configured for anything other than "/usr/lib/systemd/systemd-sulogin-shell rescue", commented out, or missing, this is a finding.
Fix: F-32880r743927_fix
Configure the system to require authentication upon booting into rescue mode by adding the following line to the "/usr/lib/systemd/system/rescue.service" file. ExecStart=-/usr/lib/systemd/systemd-sulogin-shell rescue
- RMF Control
- IA-7
- Severity
- M
- CCI
- CCI-000803
- Version
- RHEL-08-010160
- Vuln IDs
-
- V-230237
- Rule IDs
-
- SV-230237r1017056_rule
Checks: C-32906r809274_chk
Verify that the pam_unix.so module is configured to use sha512. Check that the pam_unix.so module is configured to use sha512 in /etc/pam.d/password-auth with the following command: $ sudo grep password /etc/pam.d/password-auth | grep pam_unix password sufficient pam_unix.so sha512 If "sha512" is missing, or is commented out, this is a finding.
Fix: F-32881r809275_fix
Configure RHEL 8 to use a FIPS 140-2 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
- IA-7
- Severity
- M
- CCI
- CCI-000803
- Version
- RHEL-08-010161
- Vuln IDs
-
- V-230238
- Rule IDs
-
- SV-230238r1017057_rule
Checks: C-32907r646861_chk
Verify that RHEL 8 prevents system daemons from using Kerberos for authentication. If the system is a server utilizing krb5-server-1.17-18.el8.x86_64 or newer, this requirement is not applicable. If the system is a workstation utilizing krb5-workstation-1.17-18.el8.x86_64 or newer, this requirement is not applicable. Check if there are available keytabs with the following command: $ sudo ls -al /etc/*.keytab If this command produces any file(s), this is a finding.
Fix: F-32882r567461_fix
Configure RHEL 8 to prevent system daemons from using Kerberos for authentication. Remove any files with the .keytab extension from the operating system.
- RMF Control
- IA-7
- Severity
- M
- CCI
- CCI-000803
- Version
- RHEL-08-010162
- Vuln IDs
-
- V-230239
- Rule IDs
-
- SV-230239r1017058_rule
Checks: C-32908r646863_chk
Verify the krb5-workstation package has not been installed on the system with the following commands: If the system is a server or is utilizing krb5-workstation-1.17-18.el8.x86_64 or newer, this is Not Applicable. $ sudo yum list installed krb5-workstation krb5-workstation.x86_64 1.17-9.el8 repository If the krb5-workstation package is installed and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.
Fix: F-32883r567464_fix
Document the krb5-workstation package with the ISSO as an operational requirement or remove it from the system with the following command: $ sudo yum remove krb5-workstation
- RMF Control
- SC-3
- Severity
- M
- CCI
- CCI-001084
- Version
- RHEL-08-010170
- Vuln IDs
-
- V-230240
- Rule IDs
-
- SV-230240r1017059_rule
Checks: C-32909r567466_chk
Verify the operating system verifies correct operation of all security functions. Check if "SELinux" is active and in "Enforcing" mode with the following command: $ sudo getenforce Enforcing If "SELinux" is not active and not in "Enforcing" mode, this is a finding.
Fix: F-32884r567467_fix
Configure the operating system to verify correct operation of all security functions. Set the "SELinux" status and the "Enforcing" mode by modifying the "/etc/selinux/config" file to have the following line: SELINUX=enforcing A reboot is required for the changes to take effect.
- RMF Control
- SC-3
- Severity
- L
- CCI
- CCI-001084
- Version
- RHEL-08-010171
- Vuln IDs
-
- V-230241
- Rule IDs
-
- SV-230241r1017060_rule
Checks: C-32910r567469_chk
Verify the operating system has the policycoreutils package installed with the following command: $ sudo yum list installed policycoreutils policycoreutils.x86_64 2.9-3.el8 @anaconda If the policycoreutils package is not installed, this is a finding.
Fix: F-32885r567470_fix
Configure the operating system to have the policycoreutils package installed with the following command: $ sudo yum install policycoreutils
- RMF Control
- SC-4
- Severity
- M
- CCI
- CCI-001090
- Version
- RHEL-08-010190
- Vuln IDs
-
- V-230243
- Rule IDs
-
- SV-230243r1069294_rule
Checks: C-32912r1069197_chk
Verify that all world-writable directories have the sticky bit set. Check to see that all world-writable directories have the sticky bit set by running the following command: $ sudo find / -type d \( -perm -0002 -a ! -perm -1000 \) 2>/dev/null -exec ls -ald {} \; drwxrwxrwx. 14 root root 4096 Sep 13 15:13 /tmp If any of the returned directories are world-writable and do not have the sticky bit set, this is a finding.
Fix: F-32887r567476_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: $ sudo chmod 1777 [World-Writable Directory]
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- RHEL-08-010200
- Vuln IDs
-
- V-230244
- Rule IDs
-
- SV-230244r1069300_rule
Checks: C-32913r1069209_chk
Verify the SSH server automatically terminates a user session after the SSH client has become unresponsive. Check that 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' /etc/ssh/sshd_config:ClientAliveCountMax 1 If "ClientAliveCountMax" do not exist, is not set to a value of "1" in "/etc/ssh/sshd_config", or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-32888r917866_fix
Note: This setting must be applied in conjunction with RHEL-08-010201 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" file: ClientAliveCountMax 1 For the changes to take effect, the SSH daemon must be restarted: $ sudo systemctl restart sshd.service
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- RHEL-08-010210
- Vuln IDs
-
- V-230245
- Rule IDs
-
- SV-230245r1017063_rule
Checks: C-32914r567481_chk
Verify that the "/var/log/messages" file has mode "0640" or less permissive with the following command: $ sudo stat -c "%a %n" /var/log/messages 640 /var/log/messages If a value of "0640" or less permissive is not returned, this is a finding.
Fix: F-32889r567482_fix
Change the permissions of the file "/var/log/messages" to "0640" by running the following command: $ sudo chmod 0640 /var/log/messages
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- RHEL-08-010220
- Vuln IDs
-
- V-230246
- Rule IDs
-
- SV-230246r1017064_rule
Checks: C-32915r567484_chk
Verify that the /var/log/messages file is owned by root with the following command: $ sudo stat -c "%U" /var/log/messages root If "root" is not returned as a result, this is a finding.
Fix: F-32890r567485_fix
Change the owner of the file /var/log/messages to root by running the following command: $ sudo chown root /var/log/messages
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- RHEL-08-010230
- Vuln IDs
-
- V-230247
- Rule IDs
-
- SV-230247r1017065_rule
Checks: C-32916r567487_chk
Verify the "/var/log/messages" file is group-owned by root with the following command: $ sudo stat -c "%G" /var/log/messages root If "root" is not returned as a result, this is a finding.
Fix: F-32891r567488_fix
Change the group of the file "/var/log/messages" to "root" by running the following command: $ sudo chgrp root /var/log/messages
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- RHEL-08-010240
- Vuln IDs
-
- V-230248
- Rule IDs
-
- SV-230248r1069291_rule
Checks: C-32917r1069191_chk
Verify that the "/var/log" directory has a mode of "0755" or less with the following command: $ sudo stat -c "%a %n" /var/log 755 /var/log If a value of "0755" or less permissive is not returned, this is a finding.
Fix: F-32892r567491_fix
Change the permissions of the directory "/var/log" to "0755" by running the following command: $ sudo chmod 0755 /var/log
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001314
- Version
- RHEL-08-010250
- Vuln IDs
-
- V-230249
- Rule IDs
-
- SV-230249r1017067_rule
Checks: C-32918r567493_chk
Verify the /var/log directory is owned by root with the following command: $ sudo stat -c "%U" /var/log root If "root" is not returned as a result, this is a finding.
Fix: F-32893r567494_fix
Change 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-08-010260
- Vuln IDs
-
- V-230250
- Rule IDs
-
- SV-230250r1017068_rule
Checks: C-32919r567496_chk
Verify the "/var/log" directory is group-owned by root with the following command: $ sudo stat -c "%G" /var/log root If "root" is not returned as a result, this is a finding.
Fix: F-32894r567497_fix
Change the group of the directory "/var/log" to "root" by running the following command: $ sudo chgrp root /var/log
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-08-010290
- Vuln IDs
-
- V-230251
- Rule IDs
-
- SV-230251r1044814_rule
Checks: C-32920r1044812_chk
Verify the RHEL 8 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 -oMACs=hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512,hmac-sha2-256 If the MACs entries in the "opensshserver.config" file have any hashes other than "hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512,hmac-sha2-256", the order differs from the example above, or they are missing or commented out, this is a finding.
Fix: F-32895r1044813_fix
Configure the RHEL 8 SSH server to use only MACs employing FIPS 140-3 approved algorithms by updating the "/etc/crypto-policies/back-ends/opensshserver.config" file with the following commands. To manually update the MACs in the systemwide SSH configuration, use the following command: $ sudo sed -i -E 's/(-oMACs=)[^ ]*/\1hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512,hmac-sha2-256/' "$(readlink -f /etc/crypto-policies/back-ends/opensshserver.config)" A reboot is required for the changes to take effect.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-08-010291
- Vuln IDs
-
- V-230252
- Rule IDs
-
- SV-230252r1067104_rule
Checks: C-32921r1067104_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 -oCiphers=aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr If the ciphers entries in the "opensshserver.config" file have any hashes other than "aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr", the order differs from the example above, or they are missing or commented out, this is a finding.
Fix: F-32896r1044816_fix
Configure the RHEL 8 SSH server to use only ciphers employing FIPS 140-3 approved algorithms by updating the "/etc/crypto-policies/back-ends/opensshserver.config" file with the following commands. To manually update the ciphers in the systemwide SSH configuration, use the following command: $ sudo sed -i -E 's/(-oCiphers=)[^ ]*/\1aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr/' "$(readlink -f /etc/crypto-policies/back-ends/opensshserver.config)" A reboot is required for the changes to take effect.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-08-010292
- Vuln IDs
-
- V-230253
- Rule IDs
-
- SV-230253r1044799_rule
Checks: C-32922r1044797_chk
Note: If the operating system is RHEL versions 8.0 or 8.1, this requirement is not applicable. Verify the operating system SSH server uses strong entropy with the following command: $ sudo grep -i ssh_use_strong_rng /etc/sysconfig/sshd SSH_USE_STRONG_RNG=32 If the "SSH_USE_STRONG_RNG" line does not equal "32", is commented out, or is missing, this is a finding.
Fix: F-32897r1044798_fix
Configure the operating system SSH server to use strong entropy. Add or modify the following line in the "/etc/sysconfig/sshd" file. SSH_USE_STRONG_RNG=32 The SSH service must be restarted for changes to take effect. Restart the SSH Daemon with the following command: $ sudo systemctl restart sshd.service
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-08-010293
- Vuln IDs
-
- V-230254
- Rule IDs
-
- SV-230254r1017072_rule
Checks: C-32923r567508_chk
Verify the OpenSSL library is configured to use only ciphers employing FIPS 140-2-approved algorithms: Verify that system-wide crypto policies are in effect: $ sudo grep -i opensslcnf.config /etc/pki/tls/openssl.cnf .include /etc/crypto-policies/back-ends/opensslcnf.config If the "opensslcnf.config" is not defined in the "/etc/pki/tls/openssl.cnf" file, this is a finding. Verify which system-wide crypto policy is in use: $ sudo update-crypto-policies --show FIPS If the system-wide crypto policy is set to anything other than "FIPS", this is a finding.
Fix: F-32898r567509_fix
Configure the RHEL 8 OpenSSL library to use only ciphers employing FIPS 140-2-approved algorithms with the following command: $ sudo fips-mode-setup --enable A reboot is required for the changes to take effect.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-08-010294
- Vuln IDs
-
- V-230255
- Rule IDs
-
- SV-230255r1017075_rule
Checks: C-32924r1017073_chk
Verify the OpenSSL library is configured to use only DoD-approved TLS encryption: For versions prior to crypto-policies-20210617-1.gitc776d3e.el8.noarch: $ sudo grep -i MinProtocol /etc/crypto-policies/back-ends/opensslcnf.config MinProtocol = TLSv1.2 If the "MinProtocol" is set to anything older than "TLSv1.2", this is a finding. For version crypto-policies-20210617-1.gitc776d3e.el8.noarch and newer: $ sudo grep -i MinProtocol /etc/crypto-policies/back-ends/opensslcnf.config TLS.MinProtocol = TLSv1.2 DTLS.MinProtocol = DTLSv1.2 If the "TLS.MinProtocol" is set to anything older than "TLSv1.2" or the "DTLS.MinProtocol" is set to anything older than DTLSv1.2, this is a finding.
Fix: F-32899r1017074_fix
Configure the RHEL 8 OpenSSL library to use only DoD-approved TLS encryption by editing the following line in the "/etc/crypto-policies/back-ends/opensslcnf.config" file: For versions prior to crypto-policies-20210617-1.gitc776d3e.el8.noarch: MinProtocol = TLSv1.2 For version crypto-policies-20210617-1.gitc776d3e.el8.noarch and newer: TLS.MinProtocol = TLSv1.2 DTLS.MinProtocol = DTLSv1.2 A reboot is required for the changes to take effect.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-08-010295
- Vuln IDs
-
- V-230256
- Rule IDs
-
- SV-230256r1017076_rule
Checks: C-32925r792858_chk
Verify the GnuTLS library is configured to only allow DoD-approved SSL/TLS Versions: $ sudo grep -io +vers.* /etc/crypto-policies/back-ends/gnutls.config +VERS-ALL:-VERS-DTLS0.9:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-DTLS1.0:+COMP-NULL:%PROFILE_MEDIUM If the "gnutls.config" does not list "-VERS-DTLS0.9:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-DTLS1.0" to disable unapproved SSL/TLS versions, this is a finding.
Fix: F-32900r567515_fix
Configure the RHEL 8 GnuTLS library to use only DoD-approved encryption by adding the following line to "/etc/crypto-policies/back-ends/gnutls.config": +VERS-ALL:-VERS-DTLS0.9:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-DTLS1.0 A reboot is required for the changes to take effect.
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-08-010300
- Vuln IDs
-
- V-230257
- Rule IDs
-
- SV-230257r1017077_rule
Checks: C-32926r792860_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/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-32901r792861_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-08-010310
- Vuln IDs
-
- V-230258
- Rule IDs
-
- SV-230258r1017078_rule
Checks: C-32927r567520_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/local/bin /usr/local/sbin ! -user root -exec ls -l {} \; If any system commands are returned, this is a finding.
Fix: F-32902r567521_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-08-010320
- Vuln IDs
-
- V-230259
- Rule IDs
-
- SV-230259r1017079_rule
Checks: C-32928r792863_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/local/bin /usr/local/sbin ! -group root -exec ls -l {} \; If any system commands are returned and is not group-owned by a required system account, this is a finding.
Fix: F-32903r567524_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-08-010330
- Vuln IDs
-
- V-230260
- Rule IDs
-
- SV-230260r1101888_rule
Checks: C-32929r1101886_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-32904r1101887_fix
Configure the systemwide shared library files contained in the directories "/lib", "/lib64", "/usr/lib", and "/usr/lib64" 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
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-08-010340
- Vuln IDs
-
- V-230261
- Rule IDs
-
- SV-230261r1101891_rule
Checks: C-32930r1101889_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-32905r1101890_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-08-010350
- Vuln IDs
-
- V-230262
- Rule IDs
-
- SV-230262r1101894_rule
Checks: C-32931r1101892_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-32906r1101893_fix
Configure 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 chown :root {} +
- RMF Control
- CM-3
- Severity
- M
- CCI
- CCI-001744
- Version
- RHEL-08-010360
- Vuln IDs
-
- V-230263
- Rule IDs
-
- SV-230263r1017083_rule
Checks: C-32932r902714_chk
Verify the operating system routinely checks the baseline configuration for unauthorized changes and notifies the system administrator when anomalies in the operation of any security functions are discovered. Check that RHEL 8 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@example_server_name.mil If the file integrity application does not exist, or 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-32907r902715_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@example_server_name.mil Note: Per requirement RHEL-08-010358, the "mailx" package must be installed on the system to enable email functionality.
- RMF Control
- CM-5
- Severity
- H
- CCI
- CCI-001749
- Version
- RHEL-08-010370
- Vuln IDs
-
- V-230264
- Rule IDs
-
- SV-230264r1017377_rule
Checks: C-32933r880709_chk
Verify the operating system prevents the installation of patches, service packs, device drivers, or operating system components from a repository without verification that they have been digitally signed using a certificate that is recognized and approved by the organization. Check that YUM verifies the signature of packages from a repository prior to install with the following command: $ sudo grep -E '^\[.*\]|gpgcheck' /etc/yum.repos.d/*.repo /etc/yum.repos.d/appstream.repo:[appstream] /etc/yum.repos.d/appstream.repo:gpgcheck=1 /etc/yum.repos.d/baseos.repo:[baseos] /etc/yum.repos.d/baseos.repo:gpgcheck=1 If "gpgcheck" is not set to "1", or if options are missing or commented out, ask the System Administrator how the certificates for patches and other operating system components are verified. If there is no process to validate certificates that is approved by the organization, this is a finding.
Fix: F-32908r880710_fix
Configure the operating system to verify the signature of packages from a repository prior to install by setting the following option in the "/etc/yum.repos.d/[your_repo_name].repo" file: gpgcheck=1
- RMF Control
- CM-5
- Severity
- H
- CCI
- CCI-001749
- Version
- RHEL-08-010371
- Vuln IDs
-
- V-230265
- Rule IDs
-
- SV-230265r1017378_rule
Checks: C-32934r567541_chk
Verify the operating system prevents the installation of patches, service packs, device drivers, or operating system components from a repository without verification that they have been digitally signed using a certificate that is recognized and approved by the organization. Check if YUM is configured to perform a signature check on local packages with the following command: $ sudo grep -i localpkg_gpgcheck /etc/dnf/dnf.conf localpkg_gpgcheck =True If "localpkg_gpgcheck" is not set to either "1", "True", or "yes", commented out, or is missing from "/etc/dnf/dnf.conf", this is a finding.
Fix: F-32909r567542_fix
Configure the operating system to remove all software components after updated versions have been installed. Set the "localpkg_gpgcheck" option to "True" in the "/etc/dnf/dnf.conf" file: localpkg_gpgcheck=True
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001749
- Version
- RHEL-08-010372
- Vuln IDs
-
- V-230266
- Rule IDs
-
- SV-230266r1017084_rule
Checks: C-32935r858746_chk
Verify the operating system is configured to disable kernel image loading with the following commands: 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-32910r858747_fix
Configure the operating system to disable kernel image loading. 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
- AC-3
- Severity
- M
- CCI
- CCI-002165
- Version
- RHEL-08-010373
- Vuln IDs
-
- V-230267
- Rule IDs
-
- SV-230267r1017085_rule
Checks: C-32936r858749_chk
Verify the operating system is configured to enable DAC on symlinks with the following commands: 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-32911r858750_fix
Configure the operating system 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
- AC-3
- Severity
- M
- CCI
- CCI-002165
- Version
- RHEL-08-010374
- Vuln IDs
-
- V-230268
- Rule IDs
-
- SV-230268r1017086_rule
Checks: C-32937r858752_chk
Verify the operating system is configured to enable DAC on hardlinks with the following commands: 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-32912r858753_fix
Configure the operating system to enable DAC on hardlinks. 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
- SC-4
- Severity
- L
- CCI
- CCI-001090
- Version
- RHEL-08-010375
- Vuln IDs
-
- V-230269
- Rule IDs
-
- SV-230269r1017087_rule
Checks: C-32938r833295_chk
Verify the operating system 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-32913r858755_fix
Configure the operating system 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-4
- Severity
- L
- CCI
- CCI-001090
- Version
- RHEL-08-010376
- Vuln IDs
-
- V-230270
- Rule IDs
-
- SV-230270r1017088_rule
Checks: C-32939r833297_chk
Verify the operating system is configured to prevent kernel profiling by unprivileged 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-32914r858757_fix
Configure the operating system to prevent kernel profiling by unprivileged 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
- IA-11
- Severity
- M
- CCI
- CCI-002038
- Version
- RHEL-08-010380
- Vuln IDs
-
- V-230271
- Rule IDs
-
- SV-230271r1101896_rule
Checks: C-32940r1101895_chk
Verify that "/etc/sudoers" has no occurrences of "NOPASSWD". Check that the "/etc/sudoers" file has no occurrences of "NOPASSWD" by running the following command: $ sudo grep -iR 'NOPASSWD' /etc/sudoers /etc/sudoers.d/ %admin ALL=(ALL) NOPASSWD: ALL 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 utilizing multifactor authentication (MFA), this is a finding.
Fix: F-32915r854025_fix
Remove any occurrence of "NOPASSWD" found in "/etc/sudoers" file or files in the "/etc/sudoers.d" directory.
- RMF Control
- IA-11
- Severity
- M
- CCI
- CCI-002038
- Version
- RHEL-08-010381
- Vuln IDs
-
- V-230272
- Rule IDs
-
- SV-230272r1101898_rule
Checks: C-32941r1101897_chk
Verify that "/etc/sudoers" has no occurrences of "!authenticate". Check that the "/etc/sudoers" file has no occurrences of "!authenticate" by running the following command: $ sudo egrep -iR '!authenticate' /etc/sudoers /etc/sudoers.d/ If any occurrences of "!authenticate" return from the command, this is a finding.
Fix: F-32916r567563_fix
Remove any occurrence of "!authenticate" found in "/etc/sudoers" file or files in the "/etc/sudoers.d" directory.
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-001948
- Version
- RHEL-08-010390
- Vuln IDs
-
- V-230273
- Rule IDs
-
- SV-230273r1017381_rule
Checks: C-32942r743941_chk
Verify the operating system has the packages required for multifactor authentication installed with the following commands: $ sudo yum list installed openssl-pkcs11 openssl-pkcs11.x86_64 0.4.8-2.el8 @anaconda If the "openssl-pkcs11" package is not installed, ask the administrator to indicate what type of multifactor authentication is being utilized and what packages are installed to support it. If there is no evidence of multifactor authentication being used, this is a finding.
Fix: F-32917r743942_fix
Configure the operating system to implement multifactor authentication by installing the required package with the following command: $ sudo yum install openssl-pkcs11
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-001948
- Version
- RHEL-08-010400
- Vuln IDs
-
- V-230274
- Rule IDs
-
- SV-230274r1017089_rule
Checks: C-32943r858740_chk
Verify the operating system implements certificate status checking for multifactor authentication. Note: If the System Administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. Check to see if Online Certificate Status Protocol (OCSP) is enabled and using the proper digest value on the system with the following command: $ sudo grep certificate_verification /etc/sssd/sssd.conf /etc/sssd/conf.d/*.conf | grep -v "^#" certificate_verification = ocsp_dgst=sha1 If the certificate_verification line is missing from the [sssd] section, or is missing "ocsp_dgst=sha1", ask the administrator to indicate what type of multifactor authentication is being utilized 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-32918r809280_fix
Configure the operating system to implement certificate status checking for multifactor authentication. Review the "/etc/sssd/sssd.conf" file to determine if the system is configured to prevent OCSP or certificate verification. Add the following line to the [sssd] section of the "/etc/sssd/sssd.conf" file: certificate_verification = ocsp_dgst=sha1 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-2
- Severity
- M
- CCI
- CCI-001953
- Version
- RHEL-08-010410
- Vuln IDs
-
- V-230275
- Rule IDs
-
- SV-230275r958816_rule
Checks: C-32944r567571_chk
Verify RHEL 8 accepts PIV credentials. Check that the "opensc" package is installed on the system with the following command: $ sudo yum list installed opensc opensc.x86_64 0.19.0-5.el8 @anaconda Check that "opensc" accepts PIV cards with the following command: $ sudo opensc-tool --list-drivers | grep -i piv PIV-II Personal Identity Verification Card If the "opensc" package is not installed and the "opensc-tool" driver list does not include "PIV-II", this is a finding.
Fix: F-32919r567572_fix
Configure RHEL 8 to accept PIV credentials. Install the "opensc" package using the following command: $ sudo yum install opensc
- RMF Control
- SI-16
- Severity
- M
- CCI
- CCI-002824
- Version
- RHEL-08-010420
- Vuln IDs
-
- V-230276
- Rule IDs
-
- SV-230276r958928_rule
Checks: C-32945r567574_chk
Verify the NX (no-execution) bit flag is set on the system. Check that the no-execution bit flag is set with the following commands: $ sudo dmesg | grep NX [ 0.000000] NX (Execute Disable) protection: active If "dmesg" does not show "NX (Execute Disable) protection" active, check the cpuinfo settings with the following command: $ sudo less /proc/cpuinfo | grep -i flags flags : fpu vme de pse tsc ms nx rdtscp lm constant_tsc If "flags" does not contain the "nx" flag, this is a finding.
Fix: F-32920r567575_fix
The NX bit execute protection must be enabled in the system BIOS.
- RMF Control
- SC-3
- Severity
- M
- CCI
- CCI-001084
- Version
- RHEL-08-010421
- Vuln IDs
-
- V-230277
- Rule IDs
-
- SV-230277r1017090_rule
Checks: C-32946r792883_chk
Verify that GRUB 2 is configured to enable page poisoning to mitigate use-after-free vulnerabilities with the following commands: Check that the current GRUB 2 configuration has page poisoning enabled: $ sudo grub2-editenv list | grep page_poison kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 page_poison=1 vsyscall=none audit=1 audit_backlog_limit=8192 boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 If "page_poison" is not set to "1" or is missing, this is a finding. Check that page poisoning is enabled by default to persist in kernel updates: $ 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-32921r567578_fix
Configure RHEL 8 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-08-010422
- Vuln IDs
-
- V-230278
- Rule IDs
-
- SV-230278r1017091_rule
Checks: C-32947r792885_chk
Verify that GRUB 2 is configured to disable vsyscalls with the following commands: Check that the current GRUB 2 configuration disables vsyscalls: $ sudo grub2-editenv list | grep vsyscall kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 page_poison=1 vsyscall=none audit=1 audit_backlog_limit=8192 boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 If "vsyscall" is not set to "none" or is missing, this is a finding. Check that vsyscalls are disabled by default to persist in kernel updates: $ 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-32922r743947_fix
Document the use of vsyscalls 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-08-010423
- Vuln IDs
-
- V-230279
- Rule IDs
-
- SV-230279r1069286_rule
Checks: C-32948r1069179_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-32923r1069180_fix
Configure RHEL 8 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
- SI-16
- Severity
- M
- CCI
- CCI-002824
- Version
- RHEL-08-010430
- Vuln IDs
-
- V-230280
- Rule IDs
-
- SV-230280r1017093_rule
Checks: C-32949r858765_chk
Verify RHEL 8 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-32924r858766_fix
Configure the operating system 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
- SI-2
- Severity
- L
- CCI
- CCI-002617
- Version
- RHEL-08-010440
- Vuln IDs
-
- V-230281
- Rule IDs
-
- SV-230281r958936_rule
Checks: C-32950r567589_chk
Verify the operating system removes all software components after updated versions have been installed. Check if YUM is configured to remove unneeded packages with the following command: $ sudo grep -i clean_requirements_on_remove /etc/dnf/dnf.conf clean_requirements_on_remove=True If "clean_requirements_on_remove" is not set to either "1", "True", or "yes", commented out, or is missing from "/etc/dnf/dnf.conf", this is a finding.
Fix: F-32925r567590_fix
Configure the operating system to remove all software components after updated versions have been installed. Set the "clean_requirements_on_remove" option to "True" in the "/etc/dnf/dnf.conf" file: clean_requirements_on_remove=True
- RMF Control
- SI-6
- Severity
- M
- CCI
- CCI-002696
- Version
- RHEL-08-010450
- Vuln IDs
-
- V-230282
- Rule IDs
-
- SV-230282r958944_rule
Checks: C-32951r567592_chk
Ensure the operating system verifies correct operation of all security functions. Check if "SELinux" is active and is enforcing the targeted policy with the following command: $ sudo sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Memory protection checking: actual (secure) Max kernel policy version: 31 If the "Loaded policy name" is not set to "targeted", this is a finding. Verify that the /etc/selinux/config file is configured to the "SELINUXTYPE" to "targeted": $ sudo grep -i "selinuxtype" /etc/selinux/config | grep -v '^#' SELINUXTYPE = targeted If no results are returned or "SELINUXTYPE" is not set to "targeted", this is a finding.
Fix: F-32926r567593_fix
Configure the operating system to verify correct operation of all security functions. Set the "SELinuxtype" to the "targeted" policy by modifying the "/etc/selinux/config" file to have the following line: SELINUXTYPE=targeted A reboot is required for the changes to take effect.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-010460
- Vuln IDs
-
- V-230283
- Rule IDs
-
- SV-230283r1017094_rule
Checks: C-32952r567595_chk
Verify there are no "shosts.equiv" files on RHEL 8 with the following command: $ sudo find / -name shosts.equiv If a "shosts.equiv" file is found, this is a finding.
Fix: F-32927r567596_fix
Remove any found "shosts.equiv" files from the system. $ sudo rm /etc/ssh/shosts.equiv
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-010470
- Vuln IDs
-
- V-230284
- Rule IDs
-
- SV-230284r1017095_rule
Checks: C-32953r567598_chk
Verify there are no ".shosts" files on RHEL 8 with the following command: $ sudo find / -name '*.shosts' If any ".shosts" files are found, this is a finding.
Fix: F-32928r567599_fix
Remove any found ".shosts" files from the system. $ sudo rm /[path]/[to]/[file]/.shosts
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-08-010471
- Vuln IDs
-
- V-230285
- Rule IDs
-
- SV-230285r1017096_rule
Checks: C-32954r928586_chk
Note: For RHEL versions 8.4 and above running with kernel FIPS mode enabled as specified by RHEL-08-010020, this requirement is Not Applicable. Check that RHEL 8 has enabled the hardware random number generator entropy gatherer service. Verify the rngd service is enabled and active with the following commands: $ sudo systemctl is-enabled rngd enabled $ sudo systemctl is-active rngd active If the service is not "enabled" and "active", this is a finding.
Fix: F-32929r917875_fix
Start the rngd service and enable the rngd service with the following commands: $ sudo systemctl start rngd.service $ sudo systemctl enable rngd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010480
- Vuln IDs
-
- V-230286
- Rule IDs
-
- SV-230286r1017097_rule
Checks: C-32955r567604_chk
Verify the SSH public host key files have mode "0644" or less permissive with the following command: $ sudo ls -l /etc/ssh/*.pub -rw-r--r-- 1 root root 618 Nov 28 06:43 ssh_host_dsa_key.pub -rw-r--r-- 1 root root 347 Nov 28 06:43 ssh_host_key.pub -rw-r--r-- 1 root root 238 Nov 28 06:43 ssh_host_rsa_key.pub If any key.pub file has a mode more permissive than "0644", this is a finding. Note: SSH public key files may be found in other directories on the system depending on the installation.
Fix: F-32930r567605_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 The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010490
- Vuln IDs
-
- V-230287
- Rule IDs
-
- SV-230287r1017098_rule
Checks: C-32956r880712_chk
Verify the SSH private host key files have mode "0640" or less permissive with the following command: $ sudo ls -l /etc/ssh/ssh_host*key -rw-r----- 1 root ssh_keys 668 Nov 28 06:43 ssh_host_dsa_key -rw-r----- 1 root ssh_keys 582 Nov 28 06:43 ssh_host_key -rw-r----- 1 root ssh_keys 887 Nov 28 06:43 ssh_host_rsa_key If any private host key file has a mode more permissive than "0640", this is a finding.
Fix: F-32931r880713_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 The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010500
- Vuln IDs
-
- V-230288
- Rule IDs
-
- SV-230288r1069301_rule
Checks: C-32957r1069211_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' /etc/ssh/sshd_config:StrictModes yes If "StrictModes" is set to "no", is missing, or the returned line is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-32932r567611_fix
Configure SSH to perform strict mode checking of home directory configuration files. Uncomment the "StrictModes" keyword in "/etc/ssh/sshd_config" and set the value to "yes": StrictModes yes The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010520
- Vuln IDs
-
- V-230290
- Rule IDs
-
- SV-230290r1069302_rule
Checks: C-32959r1069213_chk
Verify the SSH daemon does not allow authentication using known host’s 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' /etc/ssh/sshd_config:IgnoreUserKnownHosts yes If the value is returned as "no", the returned line is commented out, or no output is returned, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-32934r567617_fix
Configure the SSH daemon to not allow authentication using known host’s authentication. Add the following line in "/etc/ssh/sshd_config", or uncomment the line and set the value to "yes": IgnoreUserKnownHosts yes The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010521
- Vuln IDs
-
- V-230291
- Rule IDs
-
- SV-230291r1069303_rule
Checks: C-32960r1069215_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' /etc/ssh/sshd_config:KerberosAuthentication no If the value is returned as "yes", the returned line is commented out, no output is returned, or has not been documented with the information system security officer (ISSO), this is a finding. If conflicting results are returned, this is a finding.
Fix: F-32935r743956_fix
Configure the SSH daemon to not allow Kerberos authentication. Add the following line in "/etc/ssh/sshd_config", or uncomment the line and set the value to "no": KerberosAuthentication no The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-08-010540
- Vuln IDs
-
- V-230292
- Rule IDs
-
- SV-230292r1017103_rule
Checks: C-32961r902717_chk
Verify that a separate file system has been created for "/var". Check that a file system has been created for "/var" with the following command: $ sudo grep /var /etc/fstab /dev/mapper/... /var xfs defaults,nodev 0 0 If a separate entry for "/var" is not in use, this is a finding.
Fix: F-32936r567623_fix
Migrate the "/var" path onto a separate file system.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-08-010541
- Vuln IDs
-
- V-230293
- Rule IDs
-
- SV-230293r1017104_rule
Checks: C-32962r902719_chk
Verify that a separate file system has been created for "/var/log". Check that a file system has been created for "/var/log" with the following command: $ sudo grep /var/log /etc/fstab /dev/mapper/... /var/log xfs defaults,nodev,noexec,nosuid 0 0 If a separate entry for "/var/log" is not in use, this is a finding.
Fix: F-32937r567626_fix
Migrate the "/var/log" path onto a separate file system.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-08-010542
- Vuln IDs
-
- V-230294
- Rule IDs
-
- SV-230294r1017105_rule
Checks: C-32963r567628_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. $ sudo grep /var/log/audit /etc/fstab UUID=3645951a /var/log/audit xfs defaults 1 2 If an entry for "/var/log/audit" does not exist, ask the System Administrator if the system audit logs are being written to a different file system/partition on the system, then grep for that file system/partition. If a separate file system/partition does not exist for the system audit data path, this is a finding.
Fix: F-32938r567629_fix
Migrate the system audit data path onto a separate file system.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010543
- Vuln IDs
-
- V-230295
- Rule IDs
-
- SV-230295r1017106_rule
Checks: C-32964r567631_chk
Verify that a separate file system/partition has been created for non-privileged local interactive user home directories. $ sudo grep /tmp /etc/fstab /dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0 If a separate entry for the file system/partition "/tmp" does not exist, this is a finding.
Fix: F-32939r567632_fix
Migrate the "/tmp" directory onto a separate file system/partition.
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000770
- Version
- RHEL-08-010550
- Vuln IDs
-
- V-230296
- Rule IDs
-
- SV-230296r1069322_rule
Checks: C-32965r1069253_chk
Verify remote access using SSH prevents users from logging on directly as "root". Check that 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. If conflicting results are returned, this is a finding.
Fix: F-32940r567635_fix
Configure RHEL 8 to stop users from logging on remotely as the "root" user via SSH. Edit the appropriate "/etc/ssh/sshd_config" file to uncomment or add the line for the "PermitRootLogin" keyword and set its value to "no": PermitRootLogin no The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010561
- Vuln IDs
-
- V-230298
- Rule IDs
-
- SV-230298r1017108_rule
Checks: C-32967r567640_chk
Verify the rsyslog service is enabled and active with the following commands: $ sudo systemctl is-enabled rsyslog enabled $ sudo systemctl is-active rsyslog active If the service is not "enabled" and "active" this is a finding.
Fix: F-32942r567641_fix
Start the auditd service, and enable the rsyslog service with the following commands: $ sudo systemctl start rsyslog.service $ sudo systemctl enable rsyslog.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010570
- Vuln IDs
-
- V-230299
- Rule IDs
-
- SV-230299r1017109_rule
Checks: C-32968r567643_chk
Verify file systems that contain user home directories are mounted with the "nosuid" option. 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. Find the file system(s) that contain the user home directories with the following command: $ sudo awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1,$3,$6}' /etc/passwd smithj:1001: /home/smithj robinst:1002: /home/robinst Check the file systems that are mounted at boot time with the following command: $ sudo more /etc/fstab UUID=a411dc99-f2a1-4c87-9e05-184977be8539 /home xfs rw,relatime,discard,data=ordered,nosuid,nodev,noexec 0 0 If a file system found in "/etc/fstab" refers to the user home directory file system and it does not have the "nosuid" option set, this is a finding.
Fix: F-32943r567644_fix
Configure the "/etc/fstab" to use the "nosuid" option on file systems that contain user home directories for interactive users.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010571
- Vuln IDs
-
- V-230300
- Rule IDs
-
- SV-230300r1017110_rule
Checks: C-32969r743958_chk
For systems that use UEFI, this is Not Applicable. Verify the /boot directory is mounted with the "nosuid" option with the following command: $ sudo 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-32944r567647_fix
Configure the "/etc/fstab" to use the "nosuid" option on the /boot directory.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010580
- Vuln IDs
-
- V-230301
- Rule IDs
-
- SV-230301r1017111_rule
Checks: C-32970r567649_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-32945r567650_fix
Configure the "/etc/fstab" to use the "nodev" option on all non-root local partitions.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010590
- Vuln IDs
-
- V-230302
- Rule IDs
-
- SV-230302r1017112_rule
Checks: C-32971r567652_chk
Verify file systems that contain user home directories are mounted with the "noexec" option. 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. Find the file system(s) that contain the user home directories with the following command: $ sudo awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1,$3,$6}' /etc/passwd smithj:1001: /home/smithj robinst:1002: /home/robinst Check the file systems that are mounted at boot time with the following command: $ sudo more /etc/fstab UUID=a411dc99-f2a1-4c87-9e05-184977be8539 /home ext4 rw,relatime,discard,data=ordered,nosuid,nodev,noexec 0 2 If a file system found in "/etc/fstab" refers to the user home directory file system and it does not have the "noexec" option set, this is a finding.
Fix: F-32946r567653_fix
Configure the "/etc/fstab" to use the "noexec" option on file systems that contain user home directories for interactive users.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010600
- Vuln IDs
-
- V-230303
- Rule IDs
-
- SV-230303r1017113_rule
Checks: C-32972r567655_chk
Verify file systems that are used for removable media are mounted with the "nodev" option with the following command: $ sudo 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-32947r567656_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-08-010610
- Vuln IDs
-
- V-230304
- Rule IDs
-
- SV-230304r1017114_rule
Checks: C-32973r567658_chk
Verify file systems that are used for removable media are mounted with the "noexec" option with the following command: $ sudo 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-32948r567659_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-08-010620
- Vuln IDs
-
- V-230305
- Rule IDs
-
- SV-230305r1017115_rule
Checks: C-32974r567661_chk
Verify file systems that are used for removable media are mounted with the "nosuid" option with the following command: $ sudo 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-32949r567662_fix
Configure the "/etc/fstab" to use the "nosuid" option on file systems that are associated with removable media.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010630
- Vuln IDs
-
- V-230306
- Rule IDs
-
- SV-230306r1017116_rule
Checks: C-32975r567664_chk
Verify that file systems being imported via NFS are mounted with the "noexec" option with the following command: $ sudo grep nfs /etc/fstab | grep noexec UUID=e06097bb-cfcd-437b-9e4d-a691f5662a7d /store nfs rw,nosuid,nodev,noexec 0 0 If a file system found in "/etc/fstab" refers to NFS and it does not have the "noexec" option set, this is a finding.
Fix: F-32950r567665_fix
Configure the "/etc/fstab" 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-08-010640
- Vuln IDs
-
- V-230307
- Rule IDs
-
- SV-230307r1017117_rule
Checks: C-32976r567667_chk
Verify file systems that are being NFS-imported are mounted with the "nodev" option with the following command: $ sudo grep nfs /etc/fstab | grep nodev UUID=e06097bb-cfcd-437b-9e4d-a691f5662a7d /store nfs rw,nosuid,nodev,noexec 0 0 If a file system found in "/etc/fstab" refers to NFS and it does not have the "nodev" option set, this is a finding.
Fix: F-32951r567668_fix
Configure the "/etc/fstab" 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-08-010650
- Vuln IDs
-
- V-230308
- Rule IDs
-
- SV-230308r1017118_rule
Checks: C-32977r567670_chk
Verify that file systems being imported via NFS are mounted with the "nosuid" option with the following command: $ sudo grep nfs /etc/fstab | grep nosuid UUID=e06097bb-cfcd-437b-9e4d-a691f5662a7d /store nfs rw,nosuid,nodev,noexec 0 0 If a file system found in "/etc/fstab" refers to NFS and it does not have the "nosuid" option set, this is a finding.
Fix: F-32952r567671_fix
Configure the "/etc/fstab" 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-08-010660
- Vuln IDs
-
- V-230309
- Rule IDs
-
- SV-230309r1017119_rule
Checks: C-32978r567673_chk
Verify that local initialization files do not execute world-writable programs. Check the system for world-writable files. The following command will discover and print world-writable files. Run it once for each local partition [PART]: $ sudo find [PART] -xdev -type f -perm -0002 -print For all files listed, check for their presence in the local initialization files with the following commands: Note: The example will be for a system that is configured to create user home directories in the "/home" directory. $ sudo grep <file> /home/*/.* If any local initialization files are found to reference world-writable files, this is a finding.
Fix: F-32953r567674_fix
Set the mode on files being executed by the local initialization files with the following command: $ sudo chmod 0755 <file>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010670
- Vuln IDs
-
- V-230310
- Rule IDs
-
- SV-230310r1017120_rule
Checks: C-32979r567676_chk
Verify that kernel core dumps are disabled unless needed with the following command: $ sudo systemctl status kdump.service kdump.service - Crash recovery kernel arming Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; vendor preset: enabled) Active: active (exited) since Mon 2020-05-04 16:08:09 EDT; 3min ago Main PID: 1130 (code=exited, status=0/SUCCESS) If the "kdump" service is active, ask the System Administrator if the use of the service is required and documented with the Information System Security Officer (ISSO). If the service is active and is not documented, this is a finding.
Fix: F-32954r567677_fix
If kernel core dumps are not required, disable the "kdump" service with the following command: # systemctl disable kdump.service If kernel core dumps are required, document the need with the ISSO.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010671
- Vuln IDs
-
- V-230311
- Rule IDs
-
- SV-230311r1017121_rule
Checks: C-32980r833304_chk
Verify RHEL 8 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-32955r858768_fix
Configure RHEL 8 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 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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010672
- Vuln IDs
-
- V-230312
- Rule IDs
-
- SV-230312r1017122_rule
Checks: C-32981r833306_chk
Verify RHEL 8 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-32956r833307_fix
Configure the system to disable the systemd-coredump.socket with the following commands: $ sudo systemctl disable --now systemd-coredump.socket $ sudo systemctl mask 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-08-010673
- Vuln IDs
-
- V-230313
- Rule IDs
-
- SV-230313r1069304_rule
Checks: C-32982r1069217_chk
Verify the operating system disables core dumps for all users by issuing the following command: $ sudo grep -r -s '^[^#].*core' /etc/security/limits.conf /etc/security/limits.d/*.conf /etc/security/limits.d/core_dumps.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, 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-32957r1017123_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 ".conf" file defined in /etc/security/limits.d/: * hard core 0
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010674
- Vuln IDs
-
- V-230314
- Rule IDs
-
- SV-230314r1017125_rule
Checks: C-32983r567688_chk
Verify the operating system disables storing core dumps for all users by issuing the following command: $ sudo grep -i storage /etc/systemd/coredump.conf Storage=none If the "Storage" item is missing, 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-32958r567689_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-08-010675
- Vuln IDs
-
- V-230315
- Rule IDs
-
- SV-230315r1017126_rule
Checks: C-32984r567691_chk
Verify the operating system disables core dump backtraces by issuing the following command: $ sudo grep -i ProcessSizeMax /etc/systemd/coredump.conf ProcessSizeMax=0 If the "ProcessSizeMax" item is missing, 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-32959r567692_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-08-010680
- Vuln IDs
-
- V-230316
- Rule IDs
-
- SV-230316r1044801_rule
Checks: C-32985r1044800_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 is not applicable. Determine whether the system is using local or DNS name resolution with the following command: $ sudo grep hosts /etc/nsswitch.conf hosts: files dns If the DNS entry is missing from the host's line in the "/etc/nsswitch.conf" file, the "/etc/resolv.conf" file must be empty. Verify the "/etc/resolv.conf" file is empty with the following command: $ sudo ls -al /etc/resolv.conf -rw-r--r-- 1 root root 0 Aug 19 08:31 resolv.conf If local host authentication is being used and the "/etc/resolv.conf" file is not empty, this is a finding. If the DNS entry is found on the host's line of the "/etc/nsswitch.conf" file, verify the operating system is configured to use two or more name servers for DNS resolution. Determine the name servers used by the system with the following command: $ sudo 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-32960r567695_fix
Configure the operating system to use two or more name servers for DNS resolution. By default, "NetworkManager" on RHEL 8 dynamically updates the /etc/resolv.conf file with the DNS settings from active "NetworkManager" connection profiles. However, this feature can be disabled to allow manual configurations. If manually configuring DNS, edit the "/etc/resolv.conf" file to uncomment or add the two or more "nameserver" option lines with the IP address of local authoritative name servers. If local host resolution is being performed, the "/etc/resolv.conf" file must be empty. An empty "/etc/resolv.conf" file can be created as follows: $ sudo echo -n > /etc/resolv.conf
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010690
- Vuln IDs
-
- V-230317
- Rule IDs
-
- SV-230317r1069320_rule
Checks: C-32986r1069249_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 grep -irw path= /home/*/.* /home/[localinteractiveuser]/.bash_profile:PATH=$PATH:$HOME/.local/bin:$HOME/bin If any local interactive user initialization files have executable search path statements that include directories outside of their home directory and is not documented with the ISSO as an operational requirement, this is a finding.
Fix: F-32961r567698_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-08-010700
- Vuln IDs
-
- V-230318
- Rule IDs
-
- SV-230318r1017129_rule
Checks: C-32987r567700_chk
The following command will discover and print world-writable directories that are not owned by a system account, given the assumption that only system accounts have a uid lower than 1000. Run it once for each local partition [PART]: $ sudo find [PART] -xdev -type d -perm -0002 -uid +999 -print If there is output, this is a finding.
Fix: F-32962r567701_fix
All directories in local partitions which are world-writable should be owned by root or another system account. If any world-writable directories are not owned by a system account, this should be investigated. Following this, the files should be deleted or assigned to an appropriate group.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010710
- Vuln IDs
-
- V-230319
- Rule IDs
-
- SV-230319r1017130_rule
Checks: C-32988r567703_chk
The following command will discover and print world-writable directories that are not group-owned by a system account, given the assumption that only system accounts have a gid lower than 1000. Run it once for each local partition [PART]: $ sudo find [PART] -xdev -type d -perm -0002 -gid +999 -print If there is output, this is a finding.
Fix: F-32963r567704_fix
All directories in local partitions which are world-writable must be group-owned by root or another system account. If any world-writable directories are not group-owned by a system account, this must be investigated. Following this, the directories must be deleted or assigned to an appropriate group.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010720
- Vuln IDs
-
- V-230320
- Rule IDs
-
- SV-230320r1017131_rule
Checks: C-32989r567706_chk
Verify local interactive users on RHEL 8 have a home directory assigned with the following command: $ sudo pwck -r user 'lp': directory '/var/spool/lpd' does not exist user 'news': directory '/var/spool/news' does not exist user 'uucp': directory '/var/spool/uucp' does not exist user 'www-data': directory '/var/www' does not exist Ask the System Administrator (SA) if any users found without home directories are local interactive users. If the SA is unable to provide a response, check for users with a User Identifier (UID) of 1000 or greater with the following command: $ sudo awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1, $3, $6}' /etc/passwd If any interactive users do not have a home directory assigned, this is a finding.
Fix: F-32964r567707_fix
Assign home directories to all local interactive users on RHEL 8 that currently do not have a home directory assigned.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010730
- Vuln IDs
-
- V-230321
- Rule IDs
-
- SV-230321r1017132_rule
Checks: C-32990r567709_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. $ sudo ls -ld $(awk -F: '($3>=1000)&&($7 !~ /nologin/){print $6}' /etc/passwd) drwxr-x--- 2 smithj admin 4096 Jun 5 12:41 smithj If home directories referenced in "/etc/passwd" do not have a mode of "0750" or less permissive, this is a finding.
Fix: F-32965r567710_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 "smithj". $ sudo chmod 0750 /home/smithj
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010740
- Vuln IDs
-
- V-230322
- Rule IDs
-
- SV-230322r1017133_rule
Checks: C-32991r880715_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 UID. Evidence of interactive use may be obtained from a number of log files containing system logon information. The returned directory "/home/smithj" is used as an example. $ sudo ls -ld $(awk -F: '($3>=1000)&&($7 !~ /nologin/){print $6}' /etc/passwd) drwxr-x--- 2 smithj admin 4096 Jun 5 12:41 smithj Check the user's primary group with the following command: $ sudo grep $(grep smithj /etc/passwd | awk -F: '{print $4}') /etc/group admin:x:250:smithj,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-32966r880716_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 "smithj", who has a home directory of "/home/smithj", and has a primary group of users. $ sudo chgrp users /home/smithj
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010750
- Vuln IDs
-
- V-230323
- Rule IDs
-
- SV-230323r1017134_rule
Checks: C-32992r567715_chk
Verify the assigned home directory of all local interactive users on RHEL 8 exists with the following command: $ sudo ls -ld $(awk -F: '($3>=1000)&&($7 !~ /nologin/){print $6}' /etc/passwd) drwxr-xr-x 2 smithj admin 4096 Jun 5 12:41 smithj Note: This may miss interactive users that have been assigned a privileged User ID (UID). Evidence of interactive use may be obtained from a number of log files containing system logon information. Check that all referenced home directories exist with the following command: $ sudo pwck -r user 'smithj': directory '/home/smithj' does not exist If any home directories referenced in "/etc/passwd" are returned as not defined, this is a finding.
Fix: F-32967r567716_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 smithj, who has a home directory of "/home/smithj", a UID of "smithj", and a Group Identifier (GID) of "users assigned" in "/etc/passwd". $ sudo mkdir /home/smithj $ sudo chown smithj /home/smithj $ sudo chgrp users /home/smithj $ sudo chmod 0750 /home/smithj
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010760
- Vuln IDs
-
- V-230324
- Rule IDs
-
- SV-230324r1017135_rule
Checks: C-32993r567718_chk
Verify all local interactive users on RHEL 8 are assigned a home directory upon creation with the following command: $ sudo 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-32968r567719_fix
Configure RHEL 8 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-08-010770
- Vuln IDs
-
- V-230325
- Rule IDs
-
- SV-230325r1017136_rule
Checks: C-32994r917877_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 "smithj" user, who has a home directory of "/home/smithj". $ sudo ls -al /home/smithj/.[^.]* | more -rw-------. 1 smithj users 2984 Apr 27 19:02 .bash_history -rw-r--r--. 1 smithj users 18 Aug 21 2019 .bash_logout -rw-r--r--. 1 smithj users 193 Aug 21 2019 .bash_profile If any local initialization files have a mode more permissive than "0740", this is a finding.
Fix: F-32969r917878_fix
Set the mode of the local initialization files to "0740" with the following command: Note: The example will be for the smithj user, who has a home directory of "/home/smithj". $ sudo chmod 0740 /home/smithj/.<INIT_FILE>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010780
- Vuln IDs
-
- V-230326
- Rule IDs
-
- SV-230326r1069284_rule
Checks: C-32995r1069175_chk
Verify all local files and directories on RHEL 8 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-32970r567725_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 8 with the "chown" command: $ sudo chown <user> <file>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010790
- Vuln IDs
-
- V-230327
- Rule IDs
-
- SV-230327r1069285_rule
Checks: C-32996r1069177_chk
Verify all local files and directories on RHEL 8 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-32971r567728_fix
Either remove all files and directories from RHEL 8 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-08-010800
- Vuln IDs
-
- V-230328
- Rule IDs
-
- SV-230328r1017139_rule
Checks: C-32997r902721_chk
Verify that a separate file system has been created for non-privileged local interactive user home directories. Check the home directory assignment for all non-privileged users, users with a User Identifier (UID) greater than 1000, on the system with the following command: $ sudo awk -F: '($3>=1000)&&($7 !~ /nologin/){print $1,$3,$6}' /etc/passwd doej 1001 /home/doej publicj 1002 /home/publicj smithj 1003 /home/smithj The output of the command will give the directory/partition that contains the home directories for the non-privileged users on the system (in this example, "/home") and users’ shell. All accounts with a valid shell (such as /bin/bash) are considered interactive users. Check that a file system/partition has been created for the nonprivileged interactive users with the following command: Note: The partition of "/home" is used in the example. $ sudo grep /home /etc/fstab /dev/mapper/... /home xfs defaults,noexec,nosuid,nodev 0 0 If a separate entry for the file system/partition containing the nonprivileged interactive user home directories does not exist, this is a finding.
Fix: F-32972r902722_fix
Migrate the "/home" directory onto a separate file system.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-010820
- Vuln IDs
-
- V-230329
- Rule IDs
-
- SV-230329r1017140_rule
Checks: C-32998r567733_chk
Verify the operating system does not allow an unattended or automatic logon to the system via a graphical user interface. Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Check for the value of the "AutomaticLoginEnable" in the "/etc/gdm/custom.conf" file with the following command: $ sudo grep -i automaticloginenable /etc/gdm/custom.conf AutomaticLoginEnable=false If the value of "AutomaticLoginEnable" is not set to "false", this is a finding.
Fix: F-32973r567734_fix
Configure the operating system to not allow an unattended or automatic logon to the system via a graphical user interface. Add or edit the line for the "AutomaticLoginEnable" parameter in the [daemon] section of the "/etc/gdm/custom.conf" file to "false": [daemon] AutomaticLoginEnable=false
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010830
- Vuln IDs
-
- V-230330
- Rule IDs
-
- SV-230330r1069305_rule
Checks: C-32999r1069219_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' /etc/ssh/sshd_config:PermitUserEnvironment no If "PermitUserEnvironment" is set to "yes", is missing completely, or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-32974r567737_fix
Configure RHEL 8 to allow the SSH daemon to not allow unattended or automatic logon to the system. Add or edit the following line in the "/etc/ssh/sshd_config" file: PermitUserEnvironment no The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: $ sudo systemctl restart sshd.service
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-000016
- Version
- RHEL-08-020000
- Vuln IDs
-
- V-230331
- Rule IDs
-
- SV-230331r1017143_rule
Checks: C-33000r1017142_chk
Verify that 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 system_account_name 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-32975r567740_fix
If a temporary account must be created configure the system to terminate the account after a 72 hour time period with the following command to set an expiration date on it. Substitute "system_account_name" with the account to be created. $ sudo chage -E `date -d "+3 days" +%Y-%m-%d` system_account_name
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020010
- Vuln IDs
-
- V-230332
- Rule IDs
-
- SV-230332r1017144_rule
Checks: C-33001r567742_chk
Check that the system locks an account after three unsuccessful logon attempts with the following commands: 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. Note: This check applies to RHEL versions 8.0 and 8.1, if the system is RHEL version 8.2 or newer, this check is not applicable. $ sudo grep pam_faillock.so /etc/pam.d/password-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "deny" option is not set to "3" or less (but not "0") on the "preauth" line with the "pam_faillock.so" module, or is missing from this line, this is a finding. If any line referencing the "pam_faillock.so" module is commented out, this is a finding. $ sudo grep pam_faillock.so /etc/pam.d/system-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "deny" option is not set to "3" or less (but not "0") on the "preauth" line with the "pam_faillock.so" module, or is missing from this line, this is a finding. If any line referencing the "pam_faillock.so" module is commented out, this is a finding.
Fix: F-32976r567743_fix
Configure the operating system to lock an account when three unsuccessful logon attempts occur. Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so 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
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020011
- Vuln IDs
-
- V-230333
- Rule IDs
-
- SV-230333r1017145_rule
Checks: C-33002r743964_chk
Note: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. Verify the "/etc/security/faillock.conf" file is configured to lock an account after three unsuccessful logon attempts: $ sudo 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-32977r743965_fix
Configure the operating system 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-08-020012
- Vuln IDs
-
- V-230334
- Rule IDs
-
- SV-230334r1017146_rule
Checks: C-33003r567748_chk
Check that the system locks an account after three unsuccessful logon attempts within a period of 15 minutes with the following commands: 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. Note: This check applies to RHEL versions 8.0 and 8.1, if the system is RHEL version 8.2 or newer, this check is not applicable. $ sudo grep pam_faillock.so /etc/pam.d/password-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "fail_interval" option is not set to "900" or less (but not "0") on the "preauth" lines with the "pam_faillock.so" module, or is missing from this line, this is a finding. $ sudo grep pam_faillock.so /etc/pam.d/system-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "fail_interval" option is not set to "900" or less (but not "0") on the "preauth" lines with the "pam_faillock.so" module, or is missing from this line, this is a finding.
Fix: F-32978r567749_fix
Configure the operating system to lock an account when three unsuccessful logon attempts occur in 15 minutes. Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so 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
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020013
- Vuln IDs
-
- V-230335
- Rule IDs
-
- SV-230335r1017147_rule
Checks: C-33004r743967_chk
Note: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. Verify the "/etc/security/faillock.conf" file is configured to lock an account after three unsuccessful logon attempts within 15 minutes: $ sudo grep 'fail_interval =' /etc/security/faillock.conf fail_interval = 900 If the "fail_interval" option is not set to "900" or more, is missing or commented out, this is a finding.
Fix: F-32979r743968_fix
Configure the operating system to lock an account when three unsuccessful logon attempts occur in 15 minutes. Add/Modify the "/etc/security/faillock.conf" file to match the following line: fail_interval = 900
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020014
- Vuln IDs
-
- V-230336
- Rule IDs
-
- SV-230336r1017148_rule
Checks: C-33005r567754_chk
Check that the system locks an account after three unsuccessful logon attempts within a period of 15 minutes until released by an administrator with the following commands: 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. Note: This check applies to RHEL versions 8.0 and 8.1, if the system is RHEL version 8.2 or newer, this check is not applicable. $ sudo grep pam_faillock.so /etc/pam.d/password-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "unlock_time" option is not set to "0" on the "preauth" and "authfail" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding. $ sudo grep pam_faillock.so /etc/pam.d/system-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "unlock_time" option is not set to "0" on the "preauth" and "authfail" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding.
Fix: F-32980r567755_fix
Configure the operating system to lock an account until released by an administrator when three unsuccessful logon attempts occur in 15 minutes. Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so 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
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020015
- Vuln IDs
-
- V-230337
- Rule IDs
-
- SV-230337r1069292_rule
Checks: C-33006r1069193_chk
Note: If temporary accounts do not exist or are not used this is not applicable. This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. Verify the "/etc/security/faillock.conf" file is configured to lock an account until released by an administrator after three unsuccessful logon attempts: $ sudo grep 'unlock_time =' /etc/security/faillock.conf unlock_time = 0 If the "unlock_time" option is not set to "0", is missing or commented out, this is a finding.
Fix: F-32981r743971_fix
Configure the operating system to lock an account until released by an administrator when three unsuccessful logon attempts occur in 15 minutes. Add/Modify the "/etc/security/faillock.conf" file to match the following line: unlock_time = 0
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020016
- Vuln IDs
-
- V-230338
- Rule IDs
-
- SV-230338r1017150_rule
Checks: C-33007r567760_chk
Check that the faillock directory contents persists after a reboot with the following commands: 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. Note: This check applies to RHEL versions 8.0 and 8.1, if the system is RHEL version 8.2 or newer, this check is not applicable. $ sudo grep pam_faillock.so /etc/pam.d/password-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "dir" option is not set to a non-default documented tally log directory on the "preauth" and "authfail" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding. $ sudo grep pam_faillock.so /etc/pam.d/system-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "dir" option is not set to a non-default documented tally log directory on the "preauth" and "authfail" lines with the "pam_faillock.so" module, or is missing from these lines, this is a finding.
Fix: F-32982r567761_fix
Configure the operating system maintain the contents of the faillock directory after a reboot. Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: Note: Using the default faillock directory of /var/run/faillock will result in the contents being cleared in the event of a reboot. auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so 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
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020017
- Vuln IDs
-
- V-230339
- Rule IDs
-
- SV-230339r1017151_rule
Checks: C-33008r743973_chk
Note: This check applies to RHEL versions 8.2 or newer. If the system is RHEL version 8.0 or 8.1, this check is not applicable. Verify the "/etc/security/faillock.conf" file is configured use a non-default faillock directory to ensure contents persist after reboot: $ sudo grep 'dir =' /etc/security/faillock.conf dir = /var/log/faillock If the "dir" option is not set to a non-default documented tally log directory, is missing or commented out, this is a finding.
Fix: F-32983r743974_fix
Configure the operating system 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
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020018
- Vuln IDs
-
- V-230340
- Rule IDs
-
- SV-230340r1017152_rule
Checks: C-33009r567766_chk
Check that the system prevents informative messages from being presented to the user pertaining to logon information with the following commands: 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. Note: This check applies to RHEL versions 8.0 and 8.1, if the system is RHEL version 8.2 or newer, this check is not applicable. $ sudo grep pam_faillock.so /etc/pam.d/password-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "silent" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding. $ sudo grep pam_faillock.so /etc/pam.d/system-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "silent" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding.
Fix: F-32984r567767_fix
Configure the operating system to prevent informative messages from being presented at logon attempts. Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so 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
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020019
- Vuln IDs
-
- V-230341
- Rule IDs
-
- SV-230341r1017153_rule
Checks: C-33010r743976_chk
Note: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. Verify the "/etc/security/faillock.conf" file is configured to prevent informative messages from being presented at logon attempts: $ sudo grep silent /etc/security/faillock.conf silent If the "silent" option is not set, is missing or commented out, this is a finding.
Fix: F-32985r743977_fix
Configure the operating system to prevent informative messages from being presented at logon attempts. Add/Modify the "/etc/security/faillock.conf" file to match the following line: silent
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020020
- Vuln IDs
-
- V-230342
- Rule IDs
-
- SV-230342r1017154_rule
Checks: C-33011r646871_chk
Check that the system logs user name information when unsuccessful logon attempts occur with the following commands: If the system is RHEL version 8.2 or newer, this check is not applicable. 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. $ sudo grep pam_faillock.so /etc/pam.d/password-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "audit" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding. $ sudo grep pam_faillock.so /etc/pam.d/system-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "audit" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding.
Fix: F-32986r567773_fix
Configure the operating system to log user name information when unsuccessful logon attempts occur. Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so 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
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020021
- Vuln IDs
-
- V-230343
- Rule IDs
-
- SV-230343r1017155_rule
Checks: C-33012r743979_chk
Note: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. Verify the "/etc/security/faillock.conf" file is configured to log user name information when unsuccessful logon attempts occur: $ sudo grep audit /etc/security/faillock.conf audit If the "audit" option is not set, is missing or commented out, this is a finding.
Fix: F-32987r743980_fix
Configure the operating system to log user name information when unsuccessful logon attempts occur. Add/Modify the "/etc/security/faillock.conf" file to match the following line: audit
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020022
- Vuln IDs
-
- V-230344
- Rule IDs
-
- SV-230344r1017156_rule
Checks: C-33013r646873_chk
Check that the system includes the root account when locking an account after three unsuccessful logon attempts within a period of 15 minutes with the following commands: If the system is RHEL version 8.2 or newer, this check is not applicable. 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. $ sudo grep pam_faillock.so /etc/pam.d/password-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "even_deny_root" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding. $ sudo grep pam_faillock.so /etc/pam.d/system-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so If the "even_deny_root" option is missing from the "preauth" line with the "pam_faillock.so" module, this is a finding.
Fix: F-32988r567779_fix
Configure the operating system to include root when locking an account after three unsuccessful logon attempts occur in 15 minutes. Add/Modify the appropriate sections of the "/etc/pam.d/system-auth" and "/etc/pam.d/password-auth" files to match the following lines: auth required pam_faillock.so preauth dir=/var/log/faillock silent audit deny=3 even_deny_root fail_interval=900 unlock_time=0 auth required pam_faillock.so authfail dir=/var/log/faillock unlock_time=0 account required pam_faillock.so 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
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020023
- Vuln IDs
-
- V-230345
- Rule IDs
-
- SV-230345r1017157_rule
Checks: C-33014r743982_chk
Note: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. Verify the "/etc/security/faillock.conf" file is configured to log user name information when unsuccessful logon attempts occur: $ sudo grep even_deny_root /etc/security/faillock.conf even_deny_root If the "even_deny_root" option is not set, is missing or commented out, this is a finding.
Fix: F-32989r743983_fix
Configure the operating system to include root when locking an account after three unsuccessful logon attempts occur in 15 minutes. Add/Modify the "/etc/security/faillock.conf" file to match the following line: even_deny_root
- RMF Control
- AC-10
- Severity
- L
- CCI
- CCI-000054
- Version
- RHEL-08-020024
- Vuln IDs
-
- V-230346
- Rule IDs
-
- SV-230346r1069306_rule
Checks: C-33015r1069221_chk
Verify the operating system limits the number of concurrent sessions to "10" for all accounts and/or account types by issuing the following command: $ sudo grep -r -s '^[^#].*maxlogins' /etc/security/limits.conf /etc/security/limits.d/*.conf /etc/security/limits.d/maxlogins.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-32990r1017158_fix
Configure the operating system 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-11
- Severity
- M
- CCI
- CCI-000056
- Version
- RHEL-08-020030
- Vuln IDs
-
- V-230347
- Rule IDs
-
- SV-230347r1017160_rule
Checks: C-33016r567787_chk
Verify the operating system enables a user's session lock until that user re-establishes access using established identification and authentication procedures with the following command: $ sudo gsettings get org.gnome.desktop.screensaver lock-enabled true If the setting is "false", this is a finding. Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable.
Fix: F-32991r567788_fix
Configure the operating system 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-08-020050
- Vuln IDs
-
- V-230351
- Rule IDs
-
- SV-230351r1017164_rule
Checks: C-33020r792897_chk
Verify the operating system enables a user's session lock until that user re-establishes access using established identification and authentication procedures with the following command: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. $ sudo grep -R removal-action /etc/dconf/db/* /etc/dconf/db/distro.d/20-authselect:removal-action='lock-screen' If the "removal-action='lock-screen'" setting is missing or commented out from the dconf database files, this is a finding.
Fix: F-32995r792898_fix
Configure the operating system to enable a user's session lock until that user re-establishes access using established identification and authentication procedures. Select/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. Edit or add the "[org/gnome/settings-daemon/peripherals/smartcard]" section of the database file and add or update the following lines: removal-action='lock-screen' Update the system databases: $ sudo dconf update
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- RHEL-08-020060
- Vuln IDs
-
- V-230352
- Rule IDs
-
- SV-230352r1017165_rule
Checks: C-33021r646875_chk
Verify the operating system initiates a session lock after a 15-minute period of inactivity for graphical user interfaces with the following commands: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. 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-32996r567803_fix
Configure the operating system 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-08-020080
- Vuln IDs
-
- V-230354
- Rule IDs
-
- SV-230354r1069323_rule
Checks: C-33023r743988_chk
Verify the operating system prevents a user from overriding settings for graphical user interfaces. Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. 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 graphical settings are locked from non-privileged 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. $ sudo grep -i lock-delay /etc/dconf/db/local.d/locks/* /org/gnome/desktop/screensaver/lock-delay If the command does not return at least the example result, this is a finding.
Fix: F-32998r1069255_fix
Configure the operating system to prevent a user from overriding settings for graphical user interfaces. 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/locks/session Add the following setting to prevent non-privileged users from modifying it: /org/gnome/desktop/screensaver/lock-delay Run the following command to update the database: $ sudo dconf update
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000187
- Version
- RHEL-08-020090
- Vuln IDs
-
- V-230355
- Rule IDs
-
- SV-230355r1017168_rule
Checks: C-33024r858742_chk
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: Note: If the System Administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. $ sudo cat /etc/sssd/sssd.conf [sssd] config_file_version = 2 services = pam, sudo, ssh domains = testing.test [pam] pam_cert_auth = True [domain/testing.test] id_provider = ldap [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 System Administrator to indicate how certificates are mapped to accounts. If there is no evidence of certificate mapping, this is a finding.
Fix: F-32999r818835_fix
Configure the operating system 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 =<SAN>.*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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-020100
- Vuln IDs
-
- V-230356
- Rule IDs
-
- SV-230356r982195_rule
Checks: C-33025r902726_chk
Verify the operating system uses "pwquality" to enforce the password complexity rules. Check for the use of "pwquality" in the password-auth file with the following command: $ sudo cat /etc/pam.d/password-auth | grep pam_pwquality password requisite pam_pwquality.so If the command does not return a line containing the value "pam_pwquality.so" as shown, or the line is commented out, this is a finding.
Fix: F-33000r902727_fix
Configure the operating system 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 requisite pam_pwquality.so
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000192
- Version
- RHEL-08-020110
- Vuln IDs
-
- V-230357
- Rule IDs
-
- SV-230357r1017169_rule
Checks: C-33026r833312_chk
Verify the value for "ucredit" with the following command: $ sudo grep -r ucredit /etc/security/pwquality.conf* /etc/security/pwquality.conf:ucredit = -1 If the value of "ucredit" is a positive number or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33001r858770_fix
Configure the operating system to enforce password complexity by requiring that at least one uppercase character be used by setting the "ucredit" option. Add the following line to /etc/security/pwquality.conf (or modify the line to have the required value): ucredit = -1 Remove any configurations that conflict with the above value.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000193
- Version
- RHEL-08-020120
- Vuln IDs
-
- V-230358
- Rule IDs
-
- SV-230358r1017170_rule
Checks: C-33027r833314_chk
Verify the value for "lcredit" with the following command: $ sudo grep -r lcredit /etc/security/pwquality.conf* /etc/security/pwquality.conf:lcredit = -1 If the value of "lcredit" is a positive number or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33002r858772_fix
Configure the operating system to enforce password complexity by requiring that at least one lower-case character be used by setting the "lcredit" option. Add the following line to /etc/security/pwquality.conf (or modify the line to have the required value): lcredit = -1 Remove any configurations that conflict with the above value.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000194
- Version
- RHEL-08-020130
- Vuln IDs
-
- V-230359
- Rule IDs
-
- SV-230359r1017171_rule
Checks: C-33028r833316_chk
Verify the value for "dcredit" with the following command: $ sudo grep -r dcredit /etc/security/pwquality.conf* /etc/security/pwquality.conf:dcredit = -1 If the value of "dcredit" is a positive number or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33003r858774_fix
Configure the operating system to enforce password complexity by requiring that at least one numeric character be used by setting the "dcredit" option. Add the following line to /etc/security/pwquality.conf (or modify the line to have the required value): dcredit = -1 Remove any configurations that conflict with the above value.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000195
- Version
- RHEL-08-020140
- Vuln IDs
-
- V-230360
- Rule IDs
-
- SV-230360r1017172_rule
Checks: C-33029r833318_chk
Check for the value of the "maxclassrepeat" option with the following command: $ sudo grep -r maxclassrepeat /etc/security/pwquality.conf* /etc/security/pwquality.conf:maxclassrepeat = 4 If the value of "maxclassrepeat" is set to "0", more than "4" or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33004r858776_fix
Configure the operating system 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 the following line to "/etc/security/pwquality.conf" conf (or modify the line to have the required value): maxclassrepeat = 4 Remove any configurations that conflict with the above value.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000195
- Version
- RHEL-08-020150
- Vuln IDs
-
- V-230361
- Rule IDs
-
- SV-230361r1017173_rule
Checks: C-33030r833320_chk
Check for the value of the "maxrepeat" option with the following command: $ sudo grep -r maxrepeat /etc/security/pwquality.conf* /etc/security/pwquality.conf:maxrepeat = 3 If the value of "maxrepeat" is set to more than "3" or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33005r858778_fix
Configure the operating system to require the change of the number of repeating consecutive characters when passwords are changed by setting the "maxrepeat" option. Add the following line to "/etc/security/pwquality.conf conf" (or modify the line to have the required value): maxrepeat = 3 Remove any configurations that conflict with the above value.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000195
- Version
- RHEL-08-020160
- Vuln IDs
-
- V-230362
- Rule IDs
-
- SV-230362r1017174_rule
Checks: C-33031r833322_chk
Verify the value of the "minclass" option with the following command: $ sudo grep -r minclass /etc/security/pwquality.conf* /etc/security/pwquality.conf:minclass = 4 If the value of "minclass" is set to less than "4" or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33006r858780_fix
Configure the operating system to require the change of at least four character classes when passwords are changed by setting the "minclass" option. Add the following line to "/etc/security/pwquality.conf conf" (or modify the line to have the required value): minclass = 4 Remove any configurations that conflict with the above value.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000195
- Version
- RHEL-08-020170
- Vuln IDs
-
- V-230363
- Rule IDs
-
- SV-230363r1017175_rule
Checks: C-33032r833324_chk
Verify the value of the "difok" option with the following command: $ sudo grep -r difok /etc/security/pwquality.conf* /etc/security/pwquality.conf:difok = 8 If the value of "difok" is set to less than "8" or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33007r858782_fix
Configure the operating system to require the change of at least eight of the total number of characters when passwords are changed by setting the "difok" option. Add the following line to "/etc/security/pwquality.conf" (or modify the line to have the required value): difok = 8 Remove any configurations that conflict with the above value.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000198
- Version
- RHEL-08-020180
- Vuln IDs
-
- V-230364
- Rule IDs
-
- SV-230364r1017176_rule
Checks: C-33033r567838_chk
Check whether the minimum time period between password changes for each user account is one day or greater. $ sudo awk -F: '$4 < 1 {print $1 " " $4}' /etc/shadow If any results are returned that are not associated with a system account, this is a finding.
Fix: F-33008r567839_fix
Configure non-compliant accounts to enforce a 24 hours/1 day minimum password lifetime: $ sudo chage -m 1 [user]
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000198
- Version
- RHEL-08-020190
- Vuln IDs
-
- V-230365
- Rule IDs
-
- SV-230365r1017177_rule
Checks: C-33034r567841_chk
Verify the operating system enforces 24 hours/1 day 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: $ sudo 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-33009r567842_fix
Configure the operating system to enforce 24 hours/1 day 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
- IA-5
- Severity
- M
- CCI
- CCI-000199
- Version
- RHEL-08-020200
- Vuln IDs
-
- V-230366
- Rule IDs
-
- SV-230366r1038967_rule
Checks: C-33035r646877_chk
Verify that RHEL 8 enforces a 60-day maximum password lifetime for new user accounts by running the following command: $ sudo 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-33010r567845_fix
Configure RHEL 8 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
- IA-5
- Severity
- M
- CCI
- CCI-000199
- Version
- RHEL-08-020210
- Vuln IDs
-
- V-230367
- Rule IDs
-
- SV-230367r1038967_rule
Checks: C-33036r567847_chk
Check whether the maximum time period for existing passwords is restricted to 60 days with the following commands: $ sudo awk -F: '$5 > 60 {print $1 " " $5}' /etc/shadow $ sudo awk -F: '$5 <= 0 {print $1 " " $5}' /etc/shadow If any results are returned that are not associated with a system account, this is a finding.
Fix: F-33011r567848_fix
Configure non-compliant accounts to enforce a 60-day maximum password lifetime restriction. $ sudo chage -M 60 [user]
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000205
- Version
- RHEL-08-020230
- Vuln IDs
-
- V-230369
- Rule IDs
-
- SV-230369r1017181_rule
Checks: C-33038r833326_chk
Verify the operating system enforces a minimum 15-character password length. The "minlen" option sets the minimum number of characters in a new password. Check for the value of the "minlen" option with the following command: $ sudo grep -r minlen /etc/security/pwquality.conf* /etc/security/pwquality.conf:minlen = 15 If the command does not return a "minlen" value of 15 or greater, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33013r858784_fix
Configure operating system to enforce a minimum 15-character password length. Add the following line to "/etc/security/pwquality.conf" (or modify the line to have the required value): minlen = 15 Remove any configurations that conflict with the above value.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000205
- Version
- RHEL-08-020231
- Vuln IDs
-
- V-230370
- Rule IDs
-
- SV-230370r1017182_rule
Checks: C-33039r567856_chk
Verify that RHEL 8 enforces a minimum 15-character password length for new user accounts by running the following command: $ sudo grep -i pass_min_len /etc/login.defs PASS_MIN_LEN 15 If the "PASS_MIN_LEN" parameter value is less than "15", or commented out, this is a finding.
Fix: F-33014r567857_fix
Configure operating system to enforce a minimum 15-character password length for new user accounts. Add, or modify the following line in the "/etc/login.defs" file: PASS_MIN_LEN 15
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000764
- Version
- RHEL-08-020240
- Vuln IDs
-
- V-230371
- Rule IDs
-
- SV-230371r1017183_rule
Checks: C-33040r567859_chk
Verify that RHEL 8 contains no duplicate User IDs (UIDs) for interactive users. Check that the operating system 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-33015r567860_fix
Edit the file "/etc/passwd" and provide each interactive user account that has a duplicate User ID (UID) with a unique UID.
- RMF Control
- IA-2
- Severity
- M
- CCI
- CCI-000765
- Version
- RHEL-08-020250
- Vuln IDs
-
- V-230372
- Rule IDs
-
- SV-230372r1017184_rule
Checks: C-33041r942943_chk
Verify RHEL 8 uses multifactor authentication for local access to accounts. Note: If the System Administrator demonstrates the use of an approved alternate multifactor authentication method, this requirement is not applicable. Check that the "pam_cert_auth" setting is set to "true" in the "/etc/sssd/sssd.conf" file. Check that the "try_cert_auth" or "require_cert_auth" options are configured in both "/etc/pam.d/system-auth" and "/etc/pam.d/smartcard-auth" files with the following command: $ sudo grep -ir cert_auth /etc/sssd/sssd.conf /etc/sssd/conf.d/*.conf /etc/pam.d/* /etc/sssd/sssd.conf:pam_cert_auth = True /etc/pam.d/smartcard-auth:auth sufficient pam_sss.so try_cert_auth /etc/pam.d/system-auth:auth [success=done authinfo_unavail=ignore ignore=ignore default=die] pam_sss.so try_cert_auth If "pam_cert_auth" is not set to "true" in "/etc/sssd/sssd.conf", this is a finding. If "pam_sss.so" is not set to "try_cert_auth" or "require_cert_auth" in both the "/etc/pam.d/smartcard-auth" and "/etc/pam.d/system-auth" files, this is a finding.
Fix: F-33016r942944_fix
Configure RHEL 8 to use multifactor authentication for local access to accounts. Add or update the "pam_cert_auth" setting in the "/etc/sssd/sssd.conf" file to match the following line: [pam] pam_cert_auth = True Add or update "pam_sss.so" with "try_cert_auth" or "require_cert_auth" in the "/etc/pam.d/system-auth" and "/etc/pam.d/smartcard-auth" files based on the following examples: /etc/pam.d/smartcard-auth:auth sufficient pam_sss.so try_cert_auth /etc/pam.d/system-auth:auth [success=done authinfo_unavail=ignore ignore=ignore default=die] pam_sss.so try_cert_auth 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-4
- Severity
- M
- CCI
- CCI-000795
- Version
- RHEL-08-020260
- Vuln IDs
-
- V-230373
- Rule IDs
-
- SV-230373r1017185_rule
Checks: C-33042r567865_chk
Verify the 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-33017r567866_fix
Configure RHEL 8 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 DoD recommendation is 35 days, but a lower value is acceptable. The value "-1" will disable this feature, and "0" will disable the account immediately after the password expires.
- RMF Control
- AC-2
- Severity
- M
- CCI
- CCI-001682
- Version
- RHEL-08-020270
- Vuln IDs
-
- V-230374
- Rule IDs
-
- SV-230374r1069293_rule
Checks: C-33043r1069195_chk
Note: If temporary accounts do not exist or are not used this is not applicable. 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-33018r902730_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-5
- Severity
- M
- CCI
- CCI-001619
- Version
- RHEL-08-020280
- Vuln IDs
-
- V-230375
- Rule IDs
-
- SV-230375r1017187_rule
Checks: C-33044r833328_chk
Verify the value for "ocredit" with the following command: $ sudo grep -r ocredit /etc/security/pwquality.conf* /etc/security/pwquality.conf:ocredit = -1 If the value of "ocredit" is a positive number or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33019r858786_fix
Configure the operating system to enforce password complexity by requiring that at least one special character be used by setting the "ocredit" option. Add the following line to /etc/security/pwquality.conf (or modify the line to have the required value): ocredit = -1 Remove any configurations that conflict with the above value.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-002007
- Version
- RHEL-08-020290
- Vuln IDs
-
- V-230376
- Rule IDs
-
- SV-230376r1069307_rule
Checks: C-33045r1069223_chk
Note: If smart card authentication is not being used on the system this item is Not Applicable. Verify that the SSSD prohibits the use of cached authentications after one day. Check that SSSD allows cached authentications with the following command: $ sudo grep cache_credentials /etc/sssd/sssd.conf /etc/sssd/sssd.conf: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 offline_credentials_expiration /etc/sssd/sssd.conf /etc/sssd/sssd.conf:offline_credentials_expiration = 1 If "offline_credentials_expiration" is not set to a value of "1", this is a finding.
Fix: F-33020r942947_fix
Configure the SSSD to prohibit the use of cached authentications after one day. Add or change the following line in "/etc/sssd/sssd.conf" just below the line "[pam]". offline_credentials_expiration = 1
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-020300
- Vuln IDs
-
- V-230377
- Rule IDs
-
- SV-230377r1017188_rule
Checks: C-33046r833330_chk
Verify RHEL 8 prevents the use of dictionary words for passwords. Determine if the field "dictcheck" is set with the following command: $ sudo grep -r dictcheck /etc/security/pwquality.conf* /etc/security/pwquality.conf:dictcheck=1 If the "dictcheck" parameter is not set to "1", or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33021r858788_fix
Configure RHEL 8 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/pwquality.conf.d/ directory to contain the "dictcheck" parameter: dictcheck=1 Remove any configurations that conflict with the above value.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-020310
- Vuln IDs
-
- V-230378
- Rule IDs
-
- SV-230378r1017189_rule
Checks: C-33047r567880_chk
Verify the operating system enforces a delay of at least four seconds between console logon prompts following a failed logon attempt with the following command: $ sudo 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-33022r567881_fix
Configure the operating system 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-08-020320
- Vuln IDs
-
- V-230379
- Rule IDs
-
- SV-230379r1017190_rule
Checks: C-33048r1014799_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 account, 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-33023r1014800_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-08-020330
- Vuln IDs
-
- V-230380
- Rule IDs
-
- SV-230380r1069308_rule
Checks: C-33049r1069225_chk
To verify that null passwords cannot be used, run 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' /etc/ssh/sshd_config:PermitEmptyPasswords no If "PermitEmptyPasswords" is set to "yes", this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33024r743992_fix
Edit the following line in "etc/ssh/sshd_config" to prevent logons with empty passwords. PermitEmptyPasswords no The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: $ sudo systemctl restart sshd.service
- RMF Control
- AC-9
- Severity
- L
- CCI
- CCI-000052
- Version
- RHEL-08-020340
- Vuln IDs
-
- V-230381
- Rule IDs
-
- SV-230381r1069295_rule
Checks: C-33050r1069199_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.so" is missing from "/etc/pam.d/postlogin" file, or the silent option is present, this is a finding.
Fix: F-33025r567890_fix
Configure the operating system 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
- AC-9
- Severity
- M
- CCI
- CCI-000052
- Version
- RHEL-08-020350
- Vuln IDs
-
- V-230382
- Rule IDs
-
- SV-230382r1069309_rule
Checks: C-33051r1069227_chk
Verify SSH 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' /etc/ssh/sshd_config:PrintLastLog yes If the "PrintLastLog" keyword is set to "no", is missing, or is commented out, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33026r567893_fix
Configure SSH to provide users with feedback on when account accesses last occurred by setting the required configuration options in "/etc/pam.d/sshd" or in the "sshd_config" file used by the system ("/etc/ssh/sshd_config" will be used in the example) (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). Modify the "PrintLastLog" line in "/etc/ssh/sshd_config" to match the following: PrintLastLog yes The SSH service must be restarted for changes to "sshd_config" to take effect.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-020351
- Vuln IDs
-
- V-230383
- Rule IDs
-
- SV-230383r1017192_rule
Checks: C-33052r567895_chk
Verify the operating system defines default permissions for all authenticated users in such a way that the user can only read and modify their own files. Check for the value of the "UMASK" parameter in "/etc/login.defs" file 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-33027r567896_fix
Configure the operating system 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 line for the "UMASK" parameter in "/etc/login.defs" file to "077": UMASK 077
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-020352
- Vuln IDs
-
- V-230384
- Rule IDs
-
- SV-230384r1017193_rule
Checks: C-33053r858731_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 grep -ir ^umask /home | grep -v '.bash_history' If any local interactive user initialization files are found to have a umask statement that has a value less restrictive than "077", this is a finding.
Fix: F-33028r567899_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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-020353
- Vuln IDs
-
- V-230385
- Rule IDs
-
- SV-230385r1017194_rule
Checks: C-33054r792900_chk
Verify that the umask default for installed shells is "077". Check for the value of the "UMASK" parameter in the "/etc/bashrc", "/etc/csh.cshrc" and "/etc/profile" files with the following command: Note: If the value of the "UMASK" parameter is set to "000" in the "/etc/bashrc" the "/etc/csh.cshrc" or the "/etc/profile" files, the Severity is raised to a CAT I. # grep -i umask /etc/bashrc /etc/csh.cshrc /etc/profile /etc/bashrc: umask 077 /etc/bashrc: umask 077 /etc/csh.cshrc: umask 077 /etc/csh.cshrc: umask 077 /etc/profile: umask 077 /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-33029r792901_fix
Configure the operating system 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/bashrc", "/etc/csh.cshrc" and "/etc/profile"files to "077": UMASK 077
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002233
- Version
- RHEL-08-030000
- Vuln IDs
-
- V-230386
- Rule IDs
-
- SV-230386r958730_rule
Checks: C-33055r567904_chk
Verify RHEL 8 audits the execution of privileged functions. Check if RHEL 8 is configured to audit the execution of the "execve" system call, by running the following command: $ sudo grep execve /etc/audit/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 If the command does not return all lines, or the lines are commented out, this is a finding.
Fix: F-33030r567905_fix
Configure RHEL 8 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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-030010
- Vuln IDs
-
- V-230387
- Rule IDs
-
- SV-230387r1017195_rule
Checks: C-33056r743994_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. $ sudo 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:# Log cron stuff /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. $ sudo grep -s /var/log/messages /etc/rsyslog.conf /etc/rsyslog.d/*.conf /etc/rsyslog.conf:*.info;mail.none;authpriv.none;cron.none /var/log/messages If "rsyslog" is not logging messages for the cron facility or all facilities, this is a finding.
Fix: F-33031r743995_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-5
- Severity
- M
- CCI
- CCI-000139
- Version
- RHEL-08-030020
- Vuln IDs
-
- V-230388
- Rule IDs
-
- SV-230388r1017196_rule
Checks: C-33057r567910_chk
Verify that the SA and ISSO (at a minimum) are notified in the event of an audit processing failure. Check that RHEL 8 notifies the SA and 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 system administrator 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-33032r567911_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
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000139
- Version
- RHEL-08-030030
- Vuln IDs
-
- V-230389
- Rule IDs
-
- SV-230389r1017197_rule
Checks: C-33058r567913_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 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-33033r567914_fix
Configure RHEL 8 to notify administrators in the event of an audit processing failure. Add/update the following line in "/etc/aliases": postmaster: root
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000140
- Version
- RHEL-08-030040
- Vuln IDs
-
- V-230390
- Rule IDs
-
- SV-230390r1038966_rule
Checks: C-33059r567916_chk
Verify RHEL 8 takes the appropriate action when an audit processing failure occurs. Check that RHEL 8 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 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-33034r567917_fix
Configure RHEL 8 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 ISSO, configure the operating system to notify system administration 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-08-030060
- Vuln IDs
-
- V-230392
- Rule IDs
-
- SV-230392r1038966_rule
Checks: C-33061r567922_chk
Verify RHEL 8 takes the appropriate action when the audit storage volume is full. Check that RHEL 8 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 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-33036r567923_fix
Configure RHEL 8 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 ISSO, configure the operating system to notify system administration staff and ISSO staff in the event of an audit processing failure by setting the "disk_full_action" to "SYSLOG".
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-030061
- Vuln IDs
-
- V-230393
- Rule IDs
-
- SV-230393r1017200_rule
Checks: C-33062r567925_chk
Verify the RHEL 8 Audit Daemon is configured to include local events, with the following command: $ sudo grep local_events /etc/audit/auditd.conf local_events = yes If the value of the "local_events" option is not set to "yes", or the line is commented out, this is a finding.
Fix: F-33037r567926_fix
Configure RHEL 8 to audit local events on the system. Add or update the following line in "/etc/audit/auditd.conf" file: local_events = yes
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- RHEL-08-030062
- Vuln IDs
-
- V-230394
- Rule IDs
-
- SV-230394r958754_rule
Checks: C-33063r567928_chk
Verify the RHEL 8 Audit Daemon is configured to label all off-loaded 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-33038r567929_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
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-08-030063
- Vuln IDs
-
- V-230395
- Rule IDs
-
- SV-230395r1017201_rule
Checks: C-33064r567931_chk
Verify the RHEL 8 Audit Daemon 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-33039r567932_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
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-08-030070
- Vuln IDs
-
- V-230396
- Rule IDs
-
- SV-230396r1017202_rule
Checks: C-33065r567934_chk
Verify the audit logs have a mode of "0600" or less permissive. First, 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, check if the audit log has a mode of "0600" or less permissive with the following command: $ sudo stat -c "%a %n" /var/log/audit/audit.log 600 /var/log/audit/audit.log If the audit log has a mode more permissive than "0600", this is a finding.
Fix: F-33040r902732_fix
Configure the audit log to be protected from unauthorized read access by setting the correct permissive mode with the following command: $ sudo chmod 0600 /var/log/audit/audit.log
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-08-030080
- Vuln IDs
-
- V-230397
- Rule IDs
-
- SV-230397r1017203_rule
Checks: C-33066r567937_chk
Verify the audit logs are owned by "root". First, 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 is owned by "root" using the following command: $ sudo ls -al /var/log/audit/audit.log rw------- 2 root root 23 Jun 11 11:56 /var/log/audit/audit.log If the audit log is not owned by "root", this is a finding.
Fix: F-33041r567938_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 [audit_log_file] Replace "[audit_log_file]" to the correct audit log path, by default this location is "/var/log/audit/audit.log".
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-08-030090
- Vuln IDs
-
- V-230398
- Rule IDs
-
- SV-230398r1017204_rule
Checks: C-33067r567940_chk
Verify the audit logs are group-owned by "root". First 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 is group-owned by "root" using the following command: $ sudo ls -al /var/log/audit/audit.log rw------- 2 root root 23 Jun 11 11:56 /var/log/audit/audit.log If the audit log is not group-owned by "root", this is a finding.
Fix: F-33042r567941_fix
Configure the audit log to be owned by root by configuring the log group in the /etc/audit/auditd.conf file: log_group = root
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-08-030100
- Vuln IDs
-
- V-230399
- Rule IDs
-
- SV-230399r1017205_rule
Checks: C-33068r567943_chk
Verify the audit log directory is owned by "root" to prevent unauthorized read access. 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 Determine the owner of the audit log directory by using the output of the above command (ex: "/var/log/audit/"). Run the following command with the correct audit log directory path: $ sudo ls -ld /var/log/audit drw------- 2 root root 23 Jun 11 11:56 /var/log/audit If the audit log directory is not owned by "root", this is a finding.
Fix: F-33043r567944_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 [audit_log_directory] Replace "[audit_log_directory]" with the correct audit log directory path, by default this location is usually "/var/log/audit".
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-08-030110
- Vuln IDs
-
- V-230400
- Rule IDs
-
- SV-230400r1017206_rule
Checks: C-33069r567946_chk
Verify the audit log directory is group-owned by "root" to prevent unauthorized read access. 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 Determine the group owner of the audit log directory by using the output of the above command (ex: "/var/log/audit/"). Run the following command with the correct audit log directory path: $ sudo ls -ld /var/log/audit drw------- 2 root root 23 Jun 11 11:56 /var/log/audit If the audit log directory is not group-owned by "root", this is a finding.
Fix: F-33044r567947_fix
Configure the audit log to be protected from unauthorized read access by setting the correct group-owner as "root" with the following command: $ sudo chgrp root [audit_log_directory] Replace "[audit_log_directory]" with the correct audit log directory path, by default this location is usually "/var/log/audit".
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-08-030120
- Vuln IDs
-
- V-230401
- Rule IDs
-
- SV-230401r1017207_rule
Checks: C-33070r567949_chk
Verify the audit log directories have a mode of "0700" or less permissive by first determining 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, determine the directory where the audit logs are stored (ex: "/var/log/audit"). Run the following command to determine the permissions for the audit log folder: $ sudo stat -c "%a %n" /var/log/audit 700 /var/log/audit If the audit log directory has a mode more permissive than "0700", this is a finding.
Fix: F-33045r567950_fix
Configure the audit log directory to be protected from unauthorized read access by setting the correct permissive mode with the following command: $ sudo chmod 0700 [audit_log_directory] Replace "[audit_log_directory]" to the correct audit log directory path, by default this location is "/var/log/audit".
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-08-030121
- Vuln IDs
-
- V-230402
- Rule IDs
-
- SV-230402r1017208_rule
Checks: C-33071r567952_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 "/etc/audit/audit.rules", this is a finding.
Fix: F-33046r567953_fix
Configure the audit system to set the audit rules to be immutable by adding the following line to "/etc/audit/rules.d/audit.rules" -e 2 Note: Once set, the system must be rebooted for auditing to be changed. It is recommended to add this option as the last step in securing the system.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- RHEL-08-030122
- Vuln IDs
-
- V-230403
- Rule IDs
-
- SV-230403r1017209_rule
Checks: C-33072r567955_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 login UIDs are not set to be immutable by adding the "--loginuid-immutable" option to the "/etc/audit/audit.rules", this is a finding.
Fix: F-33047r567956_fix
Configure the audit system to set the logon UIDs to be immutable by adding the following line to "/etc/audit/rules.d/audit.rules" --loginuid-immutable
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030130
- Vuln IDs
-
- V-230404
- Rule IDs
-
- SV-230404r1017210_rule
Checks: C-33073r567958_chk
Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/shadow". Check the auditing rules in "/etc/audit/audit.rules" with the following command: $ sudo grep /etc/shadow /etc/audit/audit.rules -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-33048r567959_fix
Configure RHEL 8 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-000169
- Version
- RHEL-08-030140
- Vuln IDs
-
- V-230405
- Rule IDs
-
- SV-230405r1017211_rule
Checks: C-33074r567961_chk
Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/security/opasswd". Check the auditing rules in "/etc/audit/audit.rules" with the following command: $ sudo grep /etc/security/opasswd /etc/audit/audit.rules -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-33049r567962_fix
Configure RHEL 8 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
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030150
- Vuln IDs
-
- V-230406
- Rule IDs
-
- SV-230406r1017212_rule
Checks: C-33075r567964_chk
Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/passwd". Check the auditing rules in "/etc/audit/audit.rules" with the following command: $ sudo grep /etc/passwd /etc/audit/audit.rules -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-33050r567965_fix
Configure RHEL 8 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
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030160
- Vuln IDs
-
- V-230407
- Rule IDs
-
- SV-230407r1017213_rule
Checks: C-33076r567967_chk
Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/gshadow". Check the auditing rules in "/etc/audit/audit.rules" with the following command: $ sudo grep /etc/gshadow /etc/audit/audit.rules -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-33051r567968_fix
Configure RHEL 8 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
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030170
- Vuln IDs
-
- V-230408
- Rule IDs
-
- SV-230408r1017214_rule
Checks: C-33077r567970_chk
Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/group". Check the auditing rules in "/etc/audit/audit.rules" with the following command: $ sudo grep /etc/group /etc/audit/audit.rules -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-33052r567971_fix
Configure RHEL 8 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
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030171
- Vuln IDs
-
- V-230409
- Rule IDs
-
- SV-230409r1017215_rule
Checks: C-33078r567973_chk
Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/sudoers". Check the auditing rules in "/etc/audit/audit.rules" with the following command: $ sudo grep /etc/sudoers /etc/audit/audit.rules -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-33053r567974_fix
Configure RHEL 8 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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030172
- Vuln IDs
-
- V-230410
- Rule IDs
-
- SV-230410r1017216_rule
Checks: C-33079r567976_chk
Verify RHEL 8 generates audit records for all account creations, modifications, disabling, and termination events that affect "/etc/sudoers.d/". Check the auditing rules in "/etc/audit/audit.rules" with the following command: $ sudo grep /etc/sudoers.d/ /etc/audit/audit.rules -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-33054r567977_fix
Configure RHEL 8 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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030180
- Vuln IDs
-
- V-230411
- Rule IDs
-
- SV-230411r1017217_rule
Checks: C-33080r743999_chk
Verify the audit service is configured to produce audit records. Check that the audit service is installed with the following command: $ sudo yum list installed audit If the "audit" package is not installed, this is a finding.
Fix: F-33055r646880_fix
Configure the audit service to produce audit records containing the information needed to establish when (date and time) an event occurred. Install the audit service (if the audit service is not already installed) with the following command: $ sudo yum install audit
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030190
- Vuln IDs
-
- V-230412
- Rule IDs
-
- SV-230412r1017218_rule
Checks: C-33081r567982_chk
Verify RHEL 8 generates audit records when successful/unsuccessful attempts to use the "su" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w /usr/bin/su /etc/audit/audit.rules -a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=unset -k privileged-priv_change If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33056r567983_fix
Configure RHEL 8 to generate audit records when successful/unsuccessful attempts to use the "su" command occur 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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030200
- Vuln IDs
-
- V-230413
- Rule IDs
-
- SV-230413r1017219_rule
Checks: C-33082r809293_chk
Verify if RHEL 8 is configured to audit the execution of the "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" system calls by running the following command: $ sudo grep xattr /etc/audit/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 If the command does not return an audit rule for "setxattr", "fsetxattr", "lsetxattr", "removexattr", "fremovexattr", and "lremovexattr" or any of the lines returned are commented out, this is a finding.
Fix: F-33057r809294_fix
Configure RHEL 8 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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030250
- Vuln IDs
-
- V-230418
- Rule IDs
-
- SV-230418r1017220_rule
Checks: C-33087r568000_chk
Verify that an audit event is generated for any successful/unsuccessful use of the "chage" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w chage /etc/audit/audit.rules -a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-chage If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33062r568001_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "chage" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-chage The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030260
- Vuln IDs
-
- V-230419
- Rule IDs
-
- SV-230419r1017221_rule
Checks: C-33088r568003_chk
Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "chcon" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w chcon /etc/audit/audit.rules -a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33063r568004_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chcon" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/chcon -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030280
- Vuln IDs
-
- V-230421
- Rule IDs
-
- SV-230421r1017222_rule
Checks: C-33090r568009_chk
Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "ssh-agent" by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep ssh-agent /etc/audit/audit.rules -a always,exit -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33065r568010_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "ssh-agent" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/ssh-agent -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030290
- Vuln IDs
-
- V-230422
- Rule IDs
-
- SV-230422r1017223_rule
Checks: C-33091r568012_chk
Verify that an audit event is generated for any successful/unsuccessful use of the "passwd" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w passwd /etc/audit/audit.rules -a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33066r568013_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "passwd" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-passwd The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030300
- Vuln IDs
-
- V-230423
- Rule IDs
-
- SV-230423r1017224_rule
Checks: C-33092r568015_chk
Verify that an audit event is generated for any successful/unsuccessful use of the "mount" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w /usr/bin/mount /etc/audit/audit.rules -a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33067r568016_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "mount" command by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030301
- Vuln IDs
-
- V-230424
- Rule IDs
-
- SV-230424r1017225_rule
Checks: C-33093r568018_chk
Verify that an audit event is generated for any successful/unsuccessful use of the "umount" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w /usr/bin/umount /etc/audit/audit.rules -a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33068r568019_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "umount" command by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -F auid!=unset -k privileged-mount The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030302
- Vuln IDs
-
- V-230425
- Rule IDs
-
- SV-230425r1017226_rule
Checks: C-33094r568021_chk
Verify that an audit event is generated for any successful/unsuccessful use of the "mount" syscall by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w "\-S mount" /etc/audit/audit.rules -a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount -a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33069r568022_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "mount" syscall by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount -a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=unset -k privileged-mount The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030310
- Vuln IDs
-
- V-230426
- Rule IDs
-
- SV-230426r1017227_rule
Checks: C-33095r568024_chk
Verify that an audit event is generated for any successful/unsuccessful use of the "unix_update" by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w "unix_update" /etc/audit/audit.rules -a always,exit -F path=/usr/sbin/unix_update -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33070r568025_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "unix_update" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/unix_update -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030311
- Vuln IDs
-
- V-230427
- Rule IDs
-
- SV-230427r1017228_rule
Checks: C-33096r568027_chk
Verify that an audit event is generated for any successful/unsuccessful use of "postdrop" by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w "postdrop" /etc/audit/audit.rules -a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33071r568028_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "postdrop" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/postdrop -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030312
- Vuln IDs
-
- V-230428
- Rule IDs
-
- SV-230428r1017229_rule
Checks: C-33097r568030_chk
Verify that an audit event is generated for any successful/unsuccessful use of "postqueue" by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w "postqueue" /etc/audit/audit.rules -a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33072r568031_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "postqueue" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/postqueue -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030313
- Vuln IDs
-
- V-230429
- Rule IDs
-
- SV-230429r1017230_rule
Checks: C-33098r568033_chk
Verify that an audit event is generated for any successful/unsuccessful use of "semanage" by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w "semanage" /etc/audit/audit.rules -a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33073r568034_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "semanage" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/semanage -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030314
- Vuln IDs
-
- V-230430
- Rule IDs
-
- SV-230430r1017231_rule
Checks: C-33099r568036_chk
Verify that an audit event is generated for any successful/unsuccessful use of "setfiles" by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w "setfiles" /etc/audit/audit.rules -a always,exit -F path=/usr/sbin/setfiles -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33074r568037_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "setfiles" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/setfiles -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030315
- Vuln IDs
-
- V-230431
- Rule IDs
-
- SV-230431r1017232_rule
Checks: C-33100r568039_chk
Verify that an audit event is generated for any successful/unsuccessful use of "userhelper" by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w "userhelper" /etc/audit/audit.rules -a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33075r568040_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "userhelper" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/userhelper -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030316
- Vuln IDs
-
- V-230432
- Rule IDs
-
- SV-230432r1017233_rule
Checks: C-33101r568042_chk
Verify that an audit event is generated for any successful/unsuccessful use of "setsebool" by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w "setsebool" /etc/audit/audit.rules -a always,exit -F path=/usr/sbin/setsebool -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33076r568043_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "setsebool" by adding or updating the following rule 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 -k privileged-unix-update The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030317
- Vuln IDs
-
- V-230433
- Rule IDs
-
- SV-230433r1017234_rule
Checks: C-33102r568045_chk
Verify that an audit event is generated for any successful/unsuccessful use of "unix_chkpwd" by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w "unix_chkpwd" /etc/audit/audit.rules -a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33077r568046_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "unix_chkpwd" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/unix_chkpwd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-unix-update The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030320
- Vuln IDs
-
- V-230434
- Rule IDs
-
- SV-230434r1017235_rule
Checks: C-33103r568048_chk
Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "ssh-keysign" by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep ssh-keysign /etc/audit/audit.rules -a always,exit -F path=/usr/libexec/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33078r744001_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "ssh-keysign" by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/libexec/openssh/ssh-keysign -F perm=x -F auid>=1000 -F auid!=unset -k privileged-ssh The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030330
- Vuln IDs
-
- V-230435
- Rule IDs
-
- SV-230435r1017236_rule
Checks: C-33104r568051_chk
Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "setfacl" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w setfacl /etc/audit/audit.rules -a always,exit -F path=/usr/bin/setfacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33079r568052_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "setfacl" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/setfacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030340
- Vuln IDs
-
- V-230436
- Rule IDs
-
- SV-230436r1017237_rule
Checks: C-33105r568054_chk
Verify that an audit event is generated for any successful/unsuccessful use of the "pam_timestamp_check" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w pam_timestamp_check /etc/audit/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 If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33080r568055_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "pam_timestamp_check" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/pam_timestamp_check -F perm=x -F auid>=1000 -F auid!=unset -k privileged-pam_timestamp_check The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030350
- Vuln IDs
-
- V-230437
- Rule IDs
-
- SV-230437r1017238_rule
Checks: C-33106r568057_chk
Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "newgrp" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w newgrp /etc/audit/audit.rules -a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33081r568058_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "newgrp" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030360
- Vuln IDs
-
- V-230438
- Rule IDs
-
- SV-230438r1017241_rule
Checks: C-33107r1017239_chk
Verify RHEL 8 generates an audit record upon successful/unsuccessful attempts to use the "init_module" and "finit_module" system calls by using the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep init_module /etc/audit/audit.rules -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 If the command does not return an audit rule for "init_module" and "finit_module" or any of the lines returned are commented out, this is a finding.
Fix: F-33082r1017240_fix
Configure the audit system 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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030361
- Vuln IDs
-
- V-230439
- Rule IDs
-
- SV-230439r1017243_rule
Checks: C-33108r1017242_chk
Verify RHEL 8 generates an audit record upon successful/unsuccessful attempts to use the "rename", "unlink", "rmdir", "renameat", and "unlinkat" system calls by using the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep 'rename\|unlink\|rmdir' /etc/audit/audit.rules -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 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-33083r809301_fix
Configure the audit system 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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030370
- Vuln IDs
-
- V-230444
- Rule IDs
-
- SV-230444r1017244_rule
Checks: C-33113r568078_chk
Verify that an audit event is generated for any successful/unsuccessful use of the "gpasswd" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w gpasswd /etc/audit/audit.rules -a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-gpasswd If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33088r568079_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "gpasswd" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -F auid!=unset -k privileged-gpasswd The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030390
- Vuln IDs
-
- V-230446
- Rule IDs
-
- SV-230446r1017245_rule
Checks: C-33115r568084_chk
Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "delete_module" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w "delete_module" /etc/audit/audit.rules -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 If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33090r568085_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "delete_module" command 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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030400
- Vuln IDs
-
- V-230447
- Rule IDs
-
- SV-230447r1017246_rule
Checks: C-33116r568087_chk
Verify that an audit event is generated for any successful/unsuccessful use of the "crontab" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w crontab /etc/audit/audit.rules -a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=unset -k privileged-crontab If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33091r568088_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "crontab" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -F auid!=unset -k privileged-crontab The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030410
- Vuln IDs
-
- V-230448
- Rule IDs
-
- SV-230448r1017247_rule
Checks: C-33117r568090_chk
Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "chsh" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w chsh /etc/audit/audit.rules -a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33092r568091_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chsh" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030420
- Vuln IDs
-
- V-230449
- Rule IDs
-
- SV-230449r1017249_rule
Checks: C-33118r1017248_chk
Verify RHEL 8 generates an audit record upon successful/unsuccessful attempts to use the "truncate", "ftruncate", "creat", "open", "openat", and "open_by_handle_at" system calls by using the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep 'open\|truncate\|creat' /etc/audit/audit.rules -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 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-33093r809304_fix
Configure the audit system 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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030480
- Vuln IDs
-
- V-230455
- Rule IDs
-
- SV-230455r1017251_rule
Checks: C-33124r1017250_chk
Verify RHEL 8 generates an audit record upon successful/unsuccessful attempts to use the "chown", "fchown", "fchownat" and "lchown" system calls by using the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep chown /etc/audit/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 If audit rules are not defined for "chown", "fchown", "fchownat", and "lchown" or any of the lines returned are commented out, this is a finding.
Fix: F-33099r809307_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chown", "fchown", "fchownat", and "lchown" system calls by adding or updating the following line to "/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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030490
- Vuln IDs
-
- V-230456
- Rule IDs
-
- SV-230456r1017253_rule
Checks: C-33125r1017252_chk
Verify RHEL 8 generates an audit record upon successful/unsuccessful attempts to use the "chmod", "fchmod", and "fchmodat" syscalls by using the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep chmod /etc/audit/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 If the command does not return an audit rule for "chmod", "fchmod", and "fchmodat", or any of the lines returned are commented out, this is a finding.
Fix: F-33100r809310_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chmod", "fchmod", and "fchmodat" syscalls by adding or updating the following line to "/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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030550
- Vuln IDs
-
- V-230462
- Rule IDs
-
- SV-230462r1017254_rule
Checks: C-33131r568132_chk
Verify that an audit event is generated for any successful/unsuccessful use of the "sudo" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w sudo /etc/audit/audit.rules -a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33106r568133_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "sudo" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -F auid!=unset -k priv_cmd The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030560
- Vuln IDs
-
- V-230463
- Rule IDs
-
- SV-230463r1017255_rule
Checks: C-33132r568135_chk
Verify that an audit event is generated for any successful/unsuccessful use of the "usermod" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w usermod /etc/audit/audit.rules -a always,exit -F path=/usr/sbin/usermod -F perm=x -F auid>=1000 -F auid!=unset -k privileged-usermod If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33107r568136_fix
Configure the audit system to generate an audit event for any successful/unsuccessful uses of the "usermod" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/sbin/usermod -F perm=x -F auid>=1000 -F auid!=unset -k privileged-usermod The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030570
- Vuln IDs
-
- V-230464
- Rule IDs
-
- SV-230464r1017256_rule
Checks: C-33133r568138_chk
Verify RHEL 8 generates an audit record when successful/unsuccessful attempts to use the "chacl" command by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w chacl /etc/audit/audit.rules -a always,exit -F path=/usr/bin/chacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33108r568139_fix
Configure the audit system to generate an audit event for any successful/unsuccessful use of the "chacl" command by adding or updating the following rule in the "/etc/audit/rules.d/audit.rules" file: -a always,exit -F path=/usr/bin/chacl -F perm=x -F auid>=1000 -F auid!=unset -k perm_mod The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030580
- Vuln IDs
-
- V-230465
- Rule IDs
-
- SV-230465r1017257_rule
Checks: C-33134r568141_chk
Verify if RHEL 8 is configured to audit the execution of the module management program "kmod", by running the following command: $ sudo grep "/usr/bin/kmod" /etc/audit/audit.rules -a always,exit -F path=/usr/bin/kmod -F perm=x -F auid>=1000 -F auid!=unset -k modules If the command does not return a line, or the line is commented out, this is a finding.
Fix: F-33109r568142_fix
Configure RHEL 8 to audit the execution of the module management program "kmod" by adding or updating the following line to "/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 The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030590
- Vuln IDs
-
- V-230466
- Rule IDs
-
- SV-230466r1017258_rule
Checks: C-33135r568144_chk
Verify RHEL 8 generates an audit record when successful/unsuccessful modifications to the "faillock" file occur. First, determine where the faillock tallies are stored with the following commands: For RHEL versions 8.0 and 8.1: $ sudo grep -i pam_faillock.so /etc/pam.d/system-auth auth required pam_faillock.so preauth dir=/var/log/faillock silent deny=3 fail_interval=900 even_deny_root For RHEL versions 8.2 and newer: $ sudo grep dir /etc/security/faillock.conf dir=/var/log/faillock Using the location of the faillock log file, check that the following calls are being audited by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w faillock /etc/audit/audit.rules -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-33110r568145_fix
Configure the audit system to generate an audit event for any successful/unsuccessful modifications to the "faillock" file by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: -w /var/log/faillock -p wa -k logins The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030600
- Vuln IDs
-
- V-230467
- Rule IDs
-
- SV-230467r1017259_rule
Checks: C-33136r568147_chk
Verify RHEL 8 generates an audit record when successful/unsuccessful modifications to the "lastlog" file by performing the following command to check the file system rules in "/etc/audit/audit.rules": $ sudo grep -w lastlog /etc/audit/audit.rules -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-33111r568148_fix
Configure the audit system to generate an audit event for any successful/unsuccessful modifications to the "lastlog" file by adding or updating the following rules in the "/etc/audit/rules.d/audit.rules" file: -w /var/log/lastlog -p wa -k logins The audit daemon must be restarted for the changes to take effect.
- RMF Control
- AU-12
- Severity
- L
- CCI
- CCI-000169
- Version
- RHEL-08-030601
- Vuln IDs
-
- V-230468
- Rule IDs
-
- SV-230468r1017260_rule
Checks: C-33137r792903_chk
Verify RHEL 8 enables auditing of processes that start prior to the audit daemon with the following commands: $ sudo grub2-editenv list | grep audit kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 audit=1 audit_backlog_limit=8192 boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 If the "audit" entry does not equal "1", is missing, or the line is commented out, this is a finding. Check that auditing is enabled by default to persist in kernel updates: $ sudo grep audit /etc/default/grub GRUB_CMDLINE_LINUX="audit=1" If "audit" is not set to "1", is missing or commented out, this is a finding.
Fix: F-33112r568151_fix
Configure RHEL 8 to audit 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
- AU-4
- Severity
- L
- CCI
- CCI-001849
- Version
- RHEL-08-030602
- Vuln IDs
-
- V-230469
- Rule IDs
-
- SV-230469r958752_rule
Checks: C-33138r792905_chk
Verify RHEL 8 allocates a sufficient audit_backlog_limit to capture processes that start prior to the audit daemon with the following commands: $ sudo grub2-editenv list | grep audit kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 audit=1 audit_backlog_limit=8192 boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 If the "audit_backlog_limit" entry does not equal "8192" or greater, is missing, or the line is commented out, this is a finding. Check the audit_backlog_limit is set to persist in kernel updates: $ sudo grep audit /etc/default/grub GRUB_CMDLINE_LINUX="audit_backlog_limit=8192" If "audit_backlog_limit" is not set to "8192" or greater, is missing or commented out, this is a finding.
Fix: F-33113r568154_fix
Configure RHEL 8 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" Add or modify the following line in "/etc/default/grub" to ensure the configuration survives kernel updates: GRUB_CMDLINE_LINUX="audit_backlog_limit=8192"
- RMF Control
- AU-12
- Severity
- L
- CCI
- CCI-000169
- Version
- RHEL-08-030603
- Vuln IDs
-
- V-230470
- Rule IDs
-
- SV-230470r1017261_rule
Checks: C-33139r1014802_chk
Verify RHEL 8 enables Linux audit logging of the USBGuard daemon with the following commands: Note: If the USBGuard daemon is not installed and enabled, this requirement is Not Applicable. $ sudo grep -i auditbackend /etc/usbguard/usbguard-daemon.conf AuditBackend=LinuxAudit If the "AuditBackend" entry does not equal "LinuxAudit", is missing, or the line is commented out, this is a finding. If the system is a virtual machine with no virtual or physical USB peripherals attached, this is not a finding.
Fix: F-33114r744005_fix
Configure RHEL 8 to enable Linux audit logging of the USBGuard daemon by adding or modifying the following line in "/etc/usbguard/usbguard-daemon.conf": AuditBackend=LinuxAudit
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000171
- Version
- RHEL-08-030610
- Vuln IDs
-
- V-230471
- Rule IDs
-
- SV-230471r1069296_rule
Checks: C-33140r1069201_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 by using the following commands: $ sudo find /etc/audit/rules.d/ -type f -name *.rules -exec ls -al {} \; -rw-r-----. 1 root root 284 May 1 20:30 /etc/audit/rules.d/audit.rules $ sudo ls -l /etc/audit/auditd.conf -rw-r----- 1 root root 621 Sep 22 17:19 auditd.conf If the files in the "/etc/audit/rules.d/" directory or the "/etc/audit/auditd.conf" file have a mode more permissive than "0640", this is a finding.
Fix: F-33115r568160_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-9
- Severity
- M
- CCI
- CCI-001493
- Version
- RHEL-08-030620
- Vuln IDs
-
- V-230472
- Rule IDs
-
- SV-230472r1017263_rule
Checks: C-33141r568162_chk
Verify the audit tools are protected from unauthorized access, deletion, or modification by checking the permissive mode. Check the octal permission of each audit tool by running the following command: $ sudo 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 tools has a mode more permissive than "0755", this is a finding.
Fix: F-33116r568163_fix
Configure the audit tools to be protected from unauthorized access by setting the correct permissive mode using the following command: $ sudo chmod 0755 [audit_tool] Replace "[audit_tool]" with the audit tool that does not have the correct permissive mode.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001493
- Version
- RHEL-08-030630
- Vuln IDs
-
- V-230473
- Rule IDs
-
- SV-230473r1017264_rule
Checks: C-33142r744007_chk
Verify the audit tools are owned by "root" to prevent any unauthorized access, deletion, or modification. Check the owner of each audit tool by running 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 of the audit tools are not owned by "root", this is a finding.
Fix: F-33117r568166_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-08-030640
- Vuln IDs
-
- V-230474
- Rule IDs
-
- SV-230474r1017265_rule
Checks: C-33143r568168_chk
Verify the audit tools are group-owned by "root" to prevent any unauthorized access, deletion, or modification. Check the owner of each audit tool by running the following commands: $ 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 of the audit tools are not group-owned by "root", this is a finding.
Fix: F-33118r568169_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
- AU-9
- Severity
- M
- CCI
- CCI-001496
- Version
- RHEL-08-030650
- Vuln IDs
-
- V-230475
- Rule IDs
-
- SV-230475r1017266_rule
Checks: C-33144r880721_chk
Verify that Advanced Intrusion Detection Environment (AIDE) is properly configured to use cryptographic mechanisms to protect the integrity of audit tools. If AIDE is not installed, ask the System Administrator how file integrity checks are performed on the system. Check the selection lines to ensure AIDE is configured to add/check with the following command: $ sudo grep -E '(\/usr\/sbin\/(audit|au|rsys))' /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/rsyslogd p+i+n+u+g+s+b+acl+xattrs+sha512 /usr/sbin/augenrules p+i+n+u+g+s+b+acl+xattrs+sha512 If any of the audit tools listed above do not have an appropriate selection line, ask the system administrator 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-33119r568172_fix
Add or update the following lines to "/etc/aide.conf", to protect the integrity of the audit tools. # 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/rsyslogd 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
- AU-4
- Severity
- M
- CCI
- CCI-001849
- Version
- RHEL-08-030660
- Vuln IDs
-
- V-230476
- Rule IDs
-
- SV-230476r958752_rule
Checks: C-33145r809312_chk
Verify RHEL 8 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. Determine to which partition the audit records are being written with the following command: $ sudo grep -iw log_file /etc/audit/auditd.conf log_file = /var/log/audit/audit.log Check the size of the partition to which audit records are written (with the example being /var/log/audit/) with the following command: $ sudo df -h /var/log/audit/ /dev/sda2 24G 10.4G 13.6G 43% /var/log/audit If the audit records are not written to a partition made specifically for audit records (/var/log/audit is a separate partition), determine the amount of space being used by other files in the partition with the following command: $ sudo du -sh [audit_partition] 1.8G /var/log/audit If the audit record partition is not allocated for sufficient storage capacity, this is a finding. 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.0 GB of storage space for audit records should be sufficient.
Fix: F-33120r568175_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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-030670
- Vuln IDs
-
- V-230477
- Rule IDs
-
- SV-230477r1017267_rule
Checks: C-33146r568177_chk
Verify the operating system has the packages required for offloading audit logs installed with the following commands: $ sudo yum list installed rsyslog rsyslog.x86_64 8.1911.0-3.el8 @AppStream If the "rsyslog" package is not installed, ask the administrator to indicate how audit logs are being offloaded and what packages are installed to support it. If there is no evidence of audit logs being offloaded, this is a finding.
Fix: F-33121r568178_fix
Configure the operating system to offload audit logs by installing the required packages with the following command: $ sudo yum install rsyslog
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-030680
- Vuln IDs
-
- V-230478
- Rule IDs
-
- SV-230478r1017268_rule
Checks: C-33147r744009_chk
Verify the operating system has the packages required for encrypting offloaded audit logs installed with the following commands: $ sudo yum list installed rsyslog-gnutls rsyslog-gnutls.x86_64 8.1911.0-3.el8 @AppStream If the "rsyslog-gnutls" package is not installed, ask the administrator to indicate how audit logs are being encrypted during offloading and what packages are installed to support it. If there is no evidence of audit logs being encrypted during offloading, this is a finding.
Fix: F-33122r744010_fix
Configure the operating system to encrypt offloaded audit logs by installing the required packages with the following command: $ sudo yum install rsyslog-gnutls
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- RHEL-08-030690
- Vuln IDs
-
- V-230479
- Rule IDs
-
- SV-230479r958754_rule
Checks: C-33148r917881_chk
Verify the audit system offloads audit records onto a different system or media from the system being audited with the following command: $ sudo grep @@ /etc/rsyslog.conf /etc/rsyslog.d/*.conf /etc/rsyslog.conf:*.* @@[logaggregationserver.example.mil]:[port] If a remote server is not configured, or the line is commented out, ask the system administrator to indicate how the audit logs are offloaded to a different system or media. If there is no evidence that the audit logs are being offloaded to another system or media, this is a finding.
Fix: F-33123r917882_fix
Configure the operating system to offload audit records onto a different system or media from the system being audited 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. For UDP: *.* @[logaggregationserver.example.mil]:[port] For TCP: *.* @@[logaggregationserver.example.mil]:[port]
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- RHEL-08-030700
- Vuln IDs
-
- V-230480
- Rule IDs
-
- SV-230480r958754_rule
Checks: C-33149r568186_chk
Verify the 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 to indicate how the audit logs are off-loaded to a different system or media. If there is no evidence that the transfer of the audit logs being off-loaded to another system or media takes appropriate action if the internal event queue becomes full, this is a finding.
Fix: F-33124r568187_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-4
- Severity
- M
- CCI
- CCI-001851
- Version
- RHEL-08-030710
- Vuln IDs
-
- V-230481
- Rule IDs
-
- SV-230481r958754_rule
Checks: C-33150r818839_chk
Verify the operating system encrypts audit records off-loaded onto a different system or media from the system being audited with the following commands: $ sudo grep -i '$DefaultNetstreamDriver' /etc/rsyslog.conf /etc/rsyslog.d/*.conf /etc/rsyslog.conf:$DefaultNetstreamDriver gtls If the value of the "$DefaultNetstreamDriver" option is not set to "gtls" or the line is commented out, this is a finding. $ sudo grep -i '$ActionSendStreamDriverMode' /etc/rsyslog.conf /etc/rsyslog.d/*.conf /etc/rsyslog.conf:$ActionSendStreamDriverMode 1 If the value of the "$ActionSendStreamDriverMode" option is not set to "1" or the line is commented out, this is a finding. If neither of the definitions above are set, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or media. If there is no evidence that the transfer of the audit logs being off-loaded to another system or media is encrypted, this is a finding.
Fix: F-33125r568190_fix
Configure the operating system to encrypt off-loaded audit records by setting the following options in "/etc/rsyslog.conf" or "/etc/rsyslog.d/[customfile].conf": $DefaultNetstreamDriver gtls $ActionSendStreamDriverMode 1
- RMF Control
- AU-4
- Severity
- M
- CCI
- CCI-001851
- Version
- RHEL-08-030720
- Vuln IDs
-
- V-230482
- Rule IDs
-
- SV-230482r1069330_rule
Checks: C-33151r1069270_chk
Verify the operating system authenticates the remote logging server for off-loading audit logs with the following command: $ sudo grep -i '$ActionSendStreamDriverAuthMode' /etc/rsyslog.conf /etc/rsyslog.d/*.conf /etc/rsyslog.conf:$ActionSendStreamDriverAuthMode x509/name If the value of the "$ActionSendStreamDriverAuthMode" option is not set to "x509/name" or the line is commented out, ask the System Administrator to indicate how the audit logs are off-loaded to a different system or media. 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 there is no evidence that the transfer of the audit logs being off-loaded to another system or media is encrypted, this is a finding.
Fix: F-33126r568193_fix
Configure the operating system to authenticate the remote logging server for off-loading audit logs by setting the following option in "/etc/rsyslog.conf" or "/etc/rsyslog.d/[customfile].conf": $ActionSendStreamDriverAuthMode x509/name
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001855
- Version
- RHEL-08-030730
- Vuln IDs
-
- V-230483
- Rule IDs
-
- SV-230483r971542_rule
Checks: C-33152r744012_chk
Verify RHEL 8 takes action when allocated audit record storage volume reaches 75 percent of the repository maximum audit record storage capacity with the following commands: $ 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%" or if the line is commented out, ask the System Administrator 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-33127r744013_fix
Configure the operating system 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 = 25% Note: Option names and values in the auditd.conf file are case insensitive.
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-001891
- Version
- RHEL-08-030740
- Vuln IDs
-
- V-230484
- Rule IDs
-
- SV-230484r1038944_rule
Checks: C-33153r568198_chk
Verify RHEL 8 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-33128r568199_fix
Configure the operating system 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-08-030741
- Vuln IDs
-
- V-230485
- Rule IDs
-
- SV-230485r1017269_rule
Checks: C-33154r1014804_chk
Note: If the system is approved and documented by the information system security officer (ISSO) to function as an NTP time server, this requirement is Not Applicable. Verify RHEL 8 disables the chrony daemon from acting as a server with the following command: $ sudo grep -w 'port' /etc/chrony.conf port 0 If the "port" option is not set to "0", is commented out or missing, this is a finding.
Fix: F-33129r1014805_fix
Configure the operating system to disable the chrony daemon from acting as a server by adding or modifying the following line in the "/etc/chrony.conf" file: port 0
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-08-030742
- Vuln IDs
-
- V-230486
- Rule IDs
-
- SV-230486r1017270_rule
Checks: C-33155r1014807_chk
Note: If the system is approved and documented by the information system security officer (ISSO) to function as an NTP time server, this requirement is Not Applicable. Verify RHEL 8 disables network management of the chrony daemon with the following command: $ sudo grep -w 'cmdport' /etc/chrony.conf cmdport 0 If the "cmdport" option is not set to "0", is commented out or missing, this is a finding.
Fix: F-33130r1014808_fix
Configure the operating system disable network management of the chrony daemon by adding or modifying the following line in the "/etc/chrony.conf" file. cmdport 0
- RMF Control
- CM-7
- Severity
- H
- CCI
- CCI-000381
- Version
- RHEL-08-040000
- Vuln IDs
-
- V-230487
- Rule IDs
-
- SV-230487r1017271_rule
Checks: C-33156r568207_chk
Check to see if the telnet-server package is installed with the following command: $ sudo yum list installed telnet-server If the telnet-server package is installed, this is a finding.
Fix: F-33131r568208_fix
Configure the operating system to disable non-essential capabilities by removing the telnet-server package from the system with the following command: $ sudo yum remove telnet-server
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-08-040001
- Vuln IDs
-
- V-230488
- Rule IDs
-
- SV-230488r1017272_rule
Checks: C-33157r568210_chk
Check to see if any automated bug reporting packages are installed with the following command: $ sudo yum list installed abrt* If any automated bug reporting package is installed, this is a finding.
Fix: F-33132r568211_fix
Configure the operating system to disable non-essential capabilities by removing automated bug reporting packages from the system with the following command: $ sudo yum remove abrt*
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-08-040002
- Vuln IDs
-
- V-230489
- Rule IDs
-
- SV-230489r1017273_rule
Checks: C-33158r568213_chk
Check to see if the sendmail package is installed with the following command: $ sudo yum list installed sendmail If the sendmail package is installed, this is a finding.
Fix: F-33133r568214_fix
Configure the operating system to disable non-essential capabilities by removing the sendmail package from the system with the following command: $ sudo yum remove sendmail
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-08-040004
- Vuln IDs
-
- V-230491
- Rule IDs
-
- SV-230491r1017274_rule
Checks: C-33160r818841_chk
Verify RHEL 8 enables kernel page-table isolation with the following commands: $ sudo grub2-editenv list | grep pti kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet fips=1 audit=1 audit_backlog_limit=8192 pti=on boot=UUID=8d171156-cd61-421c-ba41-1c021ac29e82 If the "pti" entry does not equal "on", is missing, or the line is commented out, this is a finding. Check that kernel page-table isolation is enabled by default to persist in kernel updates: $ sudo 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-33135r568220_fix
Configure RHEL 8 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
- CM-7
- Severity
- H
- CCI
- CCI-000381
- Version
- RHEL-08-040010
- Vuln IDs
-
- V-230492
- Rule IDs
-
- SV-230492r1017275_rule
Checks: C-33161r568222_chk
Check to see if the rsh-server package is installed with the following command: $ sudo yum list installed rsh-server If the rsh-server package is installed, this is a finding.
Fix: F-33136r568223_fix
Configure the operating system to disable non-essential capabilities by removing the rsh-server package from the system with the following command: $ sudo yum remove rsh-server
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-08-040020
- Vuln IDs
-
- V-230493
- Rule IDs
-
- SV-230493r1017276_rule
Checks: C-33162r942913_chk
If the device or operating system does not have a camera installed, this requirement is not applicable. This requirement is not applicable to mobile devices (smartphones and tablets), where the use of the camera is a local AO decision. This requirement is not applicable to dedicated VTC suites located in approved VTC locations that are centrally managed. For an external camera, if there is not a method for the operator to manually disconnect the camera at the end of collaborative computing sessions, this is a finding. For a built-in camera, the camera must be protected by a camera cover (e.g., laptop camera cover slide) when not in use. If the built-in camera is not protected with a camera cover, or is not physically disabled, this is a finding. If the camera is not disconnected, covered, or physically disabled, determine if it is being disabled via software with the following commands: Verify the operating system disables the ability to load the uvcvideo kernel module. $ sudo grep -r uvcvideo /etc/modprobe.d/* | grep "/bin/false" install uvcvideo /bin/false If the command does not return any output, or the line is commented out, and the collaborative computing device has not been authorized for use, this is a finding. Verify the camera is disabled via blacklist with the following command: $ sudo grep -r uvcvideo /etc/modprobe.d/* | grep "blacklist" blacklist uvcvideo If the command does not return any output or the output is not "blacklist uvcvideo", and the collaborative computing device has not been authorized for use, this is a finding.
Fix: F-33137r942914_fix
Configure the operating system to disable the built-in or attached camera when not in use. Build or modify the "/etc/modprobe.d/blacklist.conf" file by using the following example: install uvcvideo /bin/false blacklist uvcvideo Reboot the system for the settings to take effect.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-08-040021
- Vuln IDs
-
- V-230494
- Rule IDs
-
- SV-230494r1069310_rule
Checks: C-33163r1069229_chk
Verify the operating system disables the ability to load the ATM protocol kernel module and ensure that the ATM protocol kernel module is disabled with the following command: $ sudo grep -r atm /etc/modprobe.d/* | grep "blacklist" /etc/modprobe.d/blacklist.conf:install atm /bin/false /etc/modprobe.d/blacklist.conf:blacklist atm If the command does not return any output, or the line is commented out, and use of the ATM protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.
Fix: F-33138r942917_fix
Configure the operating system to disable the ability to use the ATM protocol kernel module. Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": install atm /bin/false blacklist atm Reboot the system for the settings to take effect.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-08-040022
- Vuln IDs
-
- V-230495
- Rule IDs
-
- SV-230495r1069311_rule
Checks: C-33164r1069231_chk
Verify the operating system disables the ability to load the CAN protocol kernel module and ensure that the CAN protocol kernel module is disabled with the following command: $ sudo grep -r can /etc/modprobe.d/* | grep "blacklist" /etc/modprobe.d/blacklist.conf:install can /bin/false /etc/modprobe.d/blacklist.conf:blacklist can If the command does not return any output, or the line is commented out, and use of the CAN protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.
Fix: F-33139r942920_fix
Configure the operating system to disable the ability to use the CAN protocol kernel module. Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": install can /bin/false blacklist can Reboot the system for the settings to take effect.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-08-040023
- Vuln IDs
-
- V-230496
- Rule IDs
-
- SV-230496r1069312_rule
Checks: C-33165r1069233_chk
Verify the operating system disables the ability to load the SCTP kernel module and ensure that SCTP is disabled with the following command: $ sudo grep -r sctp /etc/modprobe.d/* | grep "blacklist" /etc/modprobe.d/blacklist.conf:install sctp /bin/false /etc/modprobe.d/blacklist.conf:blacklist sctp If the command does not return any output, or the line is commented out, and use of the SCTP is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.
Fix: F-33140r942923_fix
Configure the operating system to disable the ability to use the SCTP kernel module. Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": install sctp /bin/false blacklist sctp Reboot the system for the settings to take effect.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-08-040024
- Vuln IDs
-
- V-230497
- Rule IDs
-
- SV-230497r1069313_rule
Checks: C-33166r1069235_chk
Verify the operating system disables the ability to load the TIPC protocol kernel module and ensure that TIPC is disabled with the following command: $ sudo grep -r tipc /etc/modprobe.d/* | grep "blacklist" /etc/modprobe.d/blacklist.conf:install tipc /bin/false /etc/modprobe.d/blacklist.conf:blacklist tipc If the command does not return any output, or the line is commented out, and use of the TIPC protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.
Fix: F-33141r942926_fix
Configure the operating system to disable the ability to use the TIPC protocol kernel module. Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": install tipc /bin/false blacklist tipc Reboot the system for the settings to take effect.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-08-040025
- Vuln IDs
-
- V-230498
- Rule IDs
-
- SV-230498r1069314_rule
Checks: C-33167r1069237_chk
Verify the operating system disables the ability to load the cramfs kernel module and ensure that the cramfs kernel module is disabled with the following command: $ sudo grep -r cramfs /etc/modprobe.d/* | grep "blacklist" /etc/modprobe.d/blacklist.conf:install cramfs /bin/false /etc/modprobe.d/blacklist.conf:blacklist cramfs If the command does not return any output, or the line is commented out, and use of the cramfs protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.
Fix: F-33142r942929_fix
Configure the operating system to disable the ability to use the cramfs kernel module. Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": install cramfs /bin/false blacklist cramfs Reboot the system for the settings to take effect.
- RMF Control
- CM-7
- Severity
- L
- CCI
- CCI-000381
- Version
- RHEL-08-040026
- Vuln IDs
-
- V-230499
- Rule IDs
-
- SV-230499r1069315_rule
Checks: C-33168r1069239_chk
Verify the operating system disables the ability to load the firewire-core kernel module and ensure that the firewire-core kernel module is disabled with the following command: $ sudo grep -r firewire-core /etc/modprobe.d/* | grep "blacklist" /etc/modprobe.d/blacklist.conf:install firewire-core /bin/false /etc/modprobe.d/blacklist.conf:blacklist firewire-core If the command does not return any output, or the line is commented out, and use of the firewire-core protocol is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.
Fix: F-33143r942932_fix
Configure the operating system to disable the ability to use the firewire-core kernel module. Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": install firewire-core /bin/false blacklist firewire-core Reboot the system for the settings to take effect.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- RHEL-08-040030
- Vuln IDs
-
- V-230500
- Rule IDs
-
- SV-230500r1101900_rule
Checks: C-33169r1101899_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: $ firewall-cmd --list-all-zones | grep -e "active" -e "services" custom (active) target: DROP icmp-block-inversion: no interfaces: ens33 sources: services: dhcpv6-client dns http https ldaps rpc-bind ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules: Ask the system administrator (SA) 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 Category Assurance List (CAL), this is a finding.
Fix: F-33144r568247_fix
Update the host's firewall settings and/or running services to comply with the PPSM Component Local Service Assessment (CLSA) for the site or program and the PPSM CAL.
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-000778
- Version
- RHEL-08-040070
- Vuln IDs
-
- V-230502
- Rule IDs
-
- SV-230502r1017284_rule
Checks: C-33171r568252_chk
Verify the operating system disables the ability to automount devices. Check to see if automounter service is active with the following command: Note: If the autofs service is not installed, this requirement is not applicable. $ sudo systemctl status autofs autofs.service - Automounts filesystems on demand Loaded: loaded (/usr/lib/systemd/system/autofs.service; disabled) Active: inactive (dead) If the "autofs" status is set to "active" and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.
Fix: F-33146r568253_fix
Configure the operating system to disable the ability to automount devices. Turn off the automount service with the following commands: $ sudo systemctl stop autofs $ sudo systemctl disable autofs If "autofs" is required for Network File System (NFS), it must be documented with the ISSO.
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-000778
- Version
- RHEL-08-040080
- Vuln IDs
-
- V-230503
- Rule IDs
-
- SV-230503r1069316_rule
Checks: C-33172r1069241_chk
Verify the operating system disables the ability to load the USB Storage kernel module and ensure that the USB Storage kernel module is disabled with the following command: $ sudo grep usb-storage /etc/modprobe.d/* | grep -i "blacklist" /etc/modprobe.d/blacklist.conf:install usb-storage /bin/false /etc/modprobe.d/blacklist.conf:blacklist usb-storage If the command does not return any output, or the 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-33147r942935_fix
Configure the operating system to disable the ability to use the USB Storage kernel module and the ability to use USB mass storage devices. Add or update the following lines in the file "/etc/modprobe.d/blacklist.conf": install usb-storage /bin/false blacklist usb-storage Reboot the system for the settings to take effect.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-002314
- Version
- RHEL-08-040090
- Vuln IDs
-
- V-230504
- Rule IDs
-
- SV-230504r958672_rule
Checks: C-33173r942940_chk
Verify "firewalld" is configured to employ a deny-all, allow-by-exception policy for allowing connections to other systems with the following commands: $ sudo firewall-cmd --state running $ sudo firewall-cmd --get-active-zones [custom] interfaces: ens33 $ sudo firewall-cmd --info-zone=[custom] | grep target target: DROP If no zones are active on the RHEL 8 interfaces or if the target is set to a different option other than "DROP", this is a finding. If the "firewalld" package is not installed, ask the System Administrator if an alternate firewall (such as iptables) is installed and in use, and how is it configured to employ a deny-all, allow-by-exception policy. If the alternate firewall is not configured to employ a deny-all, allow-by-exception policy, this is a finding. If no firewall is installed, this is a finding.
Fix: F-33148r942941_fix
Configure the "firewalld" daemon to employ a deny-all, allow-by-exception with the following commands: $ sudo firewall-cmd --permanent --new-zone=[custom] $ sudo cp /usr/lib/firewalld/zones/drop.xml /etc/firewalld/zones/[custom].xml This will provide a clean configuration file to work with that employs a deny-all approach. Note: Add the exceptions that are required for mission functionality and update the short title in the xml file to match the [custom] zone name. Reload the firewall rules to make the new [custom] zone available to load: $ sudo firewall-cmd --reload Set the default zone to the new [custom] zone: $ sudo firewall-cmd --set-default-zone=[custom] Note: This is a runtime and permanent change. Add any interfaces to the new [custom] zone: $ sudo firewall-cmd --permanent --zone=[custom] --change-interface=ens33 Reload the firewall rules for changes to take effect: $ sudo firewall-cmd --reload
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-002314
- Version
- RHEL-08-040100
- Vuln IDs
-
- V-230505
- Rule IDs
-
- SV-230505r958672_rule
Checks: C-33174r744018_chk
Verify that "firewalld" is installed with the following commands: $ sudo yum list installed firewalld firewalld.noarch 0.7.0-5.el8 If the "firewalld" package is not installed, ask the System Administrator if another firewall is installed. If no firewall is installed this is a finding.
Fix: F-33149r744019_fix
Install "firewalld" with the following command: $ sudo yum install firewalld.noarch
- RMF Control
- AC-18
- Severity
- M
- CCI
- CCI-001444
- Version
- RHEL-08-040110
- Vuln IDs
-
- V-230506
- Rule IDs
-
- SV-230506r1017286_rule
Checks: C-33175r568264_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. $ sudo 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-33150r568265_fix
Configure the system to disable all wireless network interfaces with the following command: $ sudo nmcli radio all off
- RMF Control
- AC-18
- Severity
- M
- CCI
- CCI-001443
- Version
- RHEL-08-040111
- Vuln IDs
-
- V-230507
- Rule IDs
-
- SV-230507r1017287_rule
Checks: C-33176r942937_chk
If the device or operating system does not have a Bluetooth adapter installed, this requirement is not applicable. This requirement is not applicable to mobile devices (smartphones and tablets), where the use of Bluetooth is a local AO decision. Determine if Bluetooth is disabled with the following command: $ sudo grep bluetooth /etc/modprobe.d/* /etc/modprobe.d/bluetooth.conf:install bluetooth /bin/false If the Bluetooth driver blacklist entry is missing, a Bluetooth driver is determined to be in use, and the collaborative computing device has not been authorized for use, this is a finding. Verify the operating system disables the ability to use Bluetooth with the following command: $ sudo grep -r bluetooth /etc/modprobe.d | grep -i "blacklist" | grep -v "^#" blacklist bluetooth If the command does not return any output or the output is not "blacklist bluetooth", and use of Bluetooth is not documented with the ISSO as an operational requirement, this is a finding.
Fix: F-33151r942938_fix
Configure the operating system to disable the Bluetooth adapter when not in use. Build or modify the "/etc/modprobe.d/bluetooth.conf" file with the following line: install bluetooth /bin/false Disable the ability to use the Bluetooth kernel module. $ sudo vi /etc/modprobe.d/blacklist.conf Add or update the line: blacklist bluetooth Reboot the system for the settings to take effect.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040120
- Vuln IDs
-
- V-230508
- Rule IDs
-
- SV-230508r958804_rule
Checks: C-33177r568270_chk
Verify "/dev/shm" is mounted with the "nodev" option: $ sudo mount | grep /dev/shm tmpfs on /dev/shm type tmpfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "nodev"option is configured for /dev/shm: $ sudo cat /etc/fstab | grep /dev/shm tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "nodev" option is missing, or if /dev/shm is mounted without the "nodev" option, this is a finding.
Fix: F-33152r568271_fix
Configure the system so that /dev/shm is mounted with the "nodev" option by adding /modifying the /etc/fstab with the following line: tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040121
- Vuln IDs
-
- V-230509
- Rule IDs
-
- SV-230509r958804_rule
Checks: C-33178r568273_chk
Verify "/dev/shm" is mounted with the "nosuid" option: $ sudo mount | grep /dev/shm tmpfs on /dev/shm type tmpfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "nosuid" option is configured for /dev/shm: $ sudo cat /etc/fstab | grep /dev/shm tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "nosuid" option is missing, or if /dev/shm is mounted without the "nosuid" option, this is a finding.
Fix: F-33153r568274_fix
Configure the system so that /dev/shm is mounted with the "nosuid" option by adding /modifying the /etc/fstab with the following line: tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040122
- Vuln IDs
-
- V-230510
- Rule IDs
-
- SV-230510r958804_rule
Checks: C-33179r568276_chk
Verify "/dev/shm" is mounted with the "noexec" option: $ sudo mount | grep /dev/shm tmpfs on /dev/shm type tmpfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "noexec" options is configured for /dev/shm: $ sudo cat /etc/fstab | grep /dev/shm tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "noexec" option is missing, or if /dev/shm is mounted without the "noexec" option, this is a finding.
Fix: F-33154r568277_fix
Configure the system so that /dev/shm is mounted with the "noexec" option by adding /modifying the /etc/fstab with the following line: tmpfs /dev/shm tmpfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040123
- Vuln IDs
-
- V-230511
- Rule IDs
-
- SV-230511r958804_rule
Checks: C-33180r568279_chk
Verify "/tmp" is mounted with the "nodev" option: $ sudo mount | grep /tmp /dev/mapper/rhel-tmp on /tmp type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "nodev" option is configured for /tmp: $ sudo cat /etc/fstab | grep /tmp /dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "nodev" option is missing, or if /tmp is mounted without the "nodev" option, this is a finding.
Fix: F-33155r568280_fix
Configure the system so that /tmp is mounted with the "nodev" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040124
- Vuln IDs
-
- V-230512
- Rule IDs
-
- SV-230512r958804_rule
Checks: C-33181r568282_chk
Verify "/tmp" is mounted with the "nosuid" option: $ sudo mount | grep /tmp /dev/mapper/rhel-tmp on /tmp type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "nosuid" option is configured for /tmp: $ sudo cat /etc/fstab | grep /tmp /dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "nosuid" option is missing, or if /tmp is mounted without the "nosuid" option, this is a finding.
Fix: F-33156r568283_fix
Configure the system so that /tmp is mounted with the "nosuid" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040125
- Vuln IDs
-
- V-230513
- Rule IDs
-
- SV-230513r958804_rule
Checks: C-33182r568285_chk
Verify "/tmp" is mounted with the "noexec" option: $ sudo mount | grep /tmp /dev/mapper/rhel-tmp on /tmp type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "noexec" option is configured for /tmp: $ sudo cat /etc/fstab | grep /tmp /dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "noexec" option is missing, or if /tmp is mounted without the "noexec" option, this is a finding.
Fix: F-33157r568286_fix
Configure the system so that /tmp is mounted with the "noexec" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-tmp /tmp xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040126
- Vuln IDs
-
- V-230514
- Rule IDs
-
- SV-230514r958804_rule
Checks: C-33183r568288_chk
Verify "/var/log" is mounted with the "nodev" option: $ sudo mount | grep /var/log /dev/mapper/rhel-var-log on /var/log type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "nodev" option is configured for /var/log: $ sudo cat /etc/fstab | grep /var/log /dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "nodev" option is missing, or if /var/log is mounted without the "nodev" option, this is a finding.
Fix: F-33158r568289_fix
Configure the system so that /var/log is mounted with the "nodev" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040127
- Vuln IDs
-
- V-230515
- Rule IDs
-
- SV-230515r958804_rule
Checks: C-33184r568291_chk
Verify "/var/log" is mounted with the "nosuid" option: $ sudo mount | grep /var/log /dev/mapper/rhel-var-log on /var/log type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "nosuid" option is configured for /var/log: $ sudo cat /etc/fstab | grep /var/log /dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "nosuid" option is missing, or if /var/log is mounted without the "nosuid" option, this is a finding.
Fix: F-33159r568292_fix
Configure the system so that /var/log is mounted with the "nosuid" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040128
- Vuln IDs
-
- V-230516
- Rule IDs
-
- SV-230516r958804_rule
Checks: C-33185r568294_chk
Verify "/var/log" is mounted with the "noexec" option: $ sudo mount | grep /var/log /dev/mapper/rhel-var-log on /var/log type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "noexec" option is configured for /var/log: $ sudo cat /etc/fstab | grep /var/log /dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "noexec" option is missing, or if /var/log is mounted without the "noexec" option, this is a finding.
Fix: F-33160r568295_fix
Configure the system so that /var/log is mounted with the "noexec" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-var-log /var/log xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040129
- Vuln IDs
-
- V-230517
- Rule IDs
-
- SV-230517r958804_rule
Checks: C-33186r568297_chk
Verify "/var/log/audit" is mounted with the "nodev" option: $ sudo mount | grep /var/log/audit /dev/mapper/rhel-var-log-audit on /var/log/audit type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "nodev" option is configured for /var/log/audit: $ sudo cat /etc/fstab | grep /var/log/audit /dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "nodev" option is missing, or if /var/log/audit is mounted without the "nodev" option, this is a finding.
Fix: F-33161r568298_fix
Configure the system so that /var/log/audit is mounted with the "nodev" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040130
- Vuln IDs
-
- V-230518
- Rule IDs
-
- SV-230518r958804_rule
Checks: C-33187r568300_chk
Verify "/var/log/audit" is mounted with the "nosuid" option: $ sudo mount | grep /var/log/audit /dev/mapper/rhel-var-log-audit on /var/log/audit type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "nosuid" option is configured for /var/log/audit: $ sudo cat /etc/fstab | grep /var/log/audit /dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "nosuid" option is missing, or if /var/log/audit is mounted without the "nosuid" option, this is a finding.
Fix: F-33162r568301_fix
Configure the system so that /var/log/audit is mounted with the "nosuid" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040131
- Vuln IDs
-
- V-230519
- Rule IDs
-
- SV-230519r958804_rule
Checks: C-33188r568303_chk
Verify "/var/log/audit" is mounted with the "noexec" option: $ sudo mount | grep /var/log/audit /dev/mapper/rhel-var-log-audit on /var/log/audit type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "noexec" option is configured for /var/log/audit: $ sudo cat /etc/fstab | grep /var/log/audit /dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "noexec" option is missing, or if /var/log/audit is mounted without the "noexec" option, this is a finding.
Fix: F-33163r568304_fix
Configure the system so that /var/log/audit is mounted with the "noexec" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-var-log-audit /var/log/audit xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040132
- Vuln IDs
-
- V-230520
- Rule IDs
-
- SV-230520r958804_rule
Checks: C-33189r792925_chk
Verify "/var/tmp" is mounted with the "nodev" option: $ sudo mount | grep /var/tmp /dev/mapper/rhel-var-tmp on /var/tmp type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "nodev" option is configured for /var/tmp: $ sudo cat /etc/fstab | grep /var/tmp /dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "nodev" option is missing, or if /var/tmp is mounted without the "nodev" option, this is a finding.
Fix: F-33164r792926_fix
Configure the system so that /var/tmp is mounted with the "nodev" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040133
- Vuln IDs
-
- V-230521
- Rule IDs
-
- SV-230521r958804_rule
Checks: C-33190r792928_chk
Verify "/var/tmp" is mounted with the "nosuid" option: $ sudo mount | grep /var/tmp /dev/mapper/rhel-var-tmp on /var/tmp type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "nosuid" option is configured for /var/tmp: $ sudo cat /etc/fstab | grep /var/tmp /dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "nosuid" option is missing, or if /var/tmp is mounted without the "nosuid" option, this is a finding.
Fix: F-33165r792929_fix
Configure the system so that /var/tmp is mounted with the "nosuid" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040134
- Vuln IDs
-
- V-230522
- Rule IDs
-
- SV-230522r958804_rule
Checks: C-33191r792931_chk
Verify "/var/tmp" is mounted with the "noexec" option: $ sudo mount | grep /var/tmp /dev/mapper/rhel-var-tmp on /var/tmp type xfs (rw,nodev,nosuid,noexec,seclabel) Verify that the "noexec" option is configured for /var/tmp: $ sudo cat /etc/fstab | grep /var/tmp /dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0 If results are returned and the "noexec" option is missing, or if /var/tmp is mounted without the "noexec" option, this is a finding.
Fix: F-33166r792932_fix
Configure the system so that /var/tmp is mounted with the "noexec" option by adding /modifying the /etc/fstab with the following line: /dev/mapper/rhel-var-tmp /var/tmp xfs defaults,nodev,nosuid,noexec 0 0
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040135
- Vuln IDs
-
- V-230523
- Rule IDs
-
- SV-230523r958804_rule
Checks: C-33192r744021_chk
Verify the RHEL 8 "fapolicyd" is installed. Check that "fapolicyd" is installed with the following command: $ sudo yum list installed fapolicyd Installed Packages fapolicyd.x86_64 If fapolicyd is not installed, this is a finding.
Fix: F-33167r744022_fix
Install "fapolicyd" with the following command: $ sudo yum install fapolicyd.x86_64
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-001958
- Version
- RHEL-08-040140
- Vuln IDs
-
- V-230524
- Rule IDs
-
- SV-230524r1014813_rule
Checks: C-33193r1014812_chk
Verify the USBGuard has a policy configured with the following command: $ sudo usbguard list-rules 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. 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 a virtual machine with no virtual or physical USB peripherals attached, this is not a finding.
Fix: F-33168r744025_fix
Configure the operating system to enable the blocking of unauthorized peripherals with the following command: This command must be run from a root shell and will create an allow list for any usb devices currently connect to the system. # usbguard generate-policy > /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
- SC-5
- Severity
- M
- CCI
- CCI-002385
- Version
- RHEL-08-040150
- Vuln IDs
-
- V-230525
- Rule IDs
-
- SV-230525r958902_rule
Checks: C-33194r744027_chk
Verify "nftables" is configured to allow rate limits on any connection to the system with the following command: Verify "firewalld" has "nftables" set as the default backend: $ 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-33169r902734_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
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- RHEL-08-040160
- Vuln IDs
-
- V-230526
- Rule IDs
-
- SV-230526r958908_rule
Checks: C-33195r744030_chk
Verify SSH is loaded and active with the following command: $ sudo systemctl status sshd sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled) Active: active (running) since Tue 2015-11-17 15:17:22 EST; 4 weeks 0 days ago Main PID: 1348 (sshd) CGroup: /system.slice/sshd.service 1053 /usr/sbin/sshd -D If "sshd" does not show a status of "active" and "running", this is a finding.
Fix: F-33170r744031_fix
Configure the SSH service to automatically start after reboot with the following command: $ sudo systemctl enable sshd.service
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-000068
- Version
- RHEL-08-040161
- Vuln IDs
-
- V-230527
- Rule IDs
-
- SV-230527r1017288_rule
Checks: C-33196r951615_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. If conflicting results are returned, this is a finding.
Fix: F-33171r568328_fix
Configure the system to force a frequent session key renegotiation for SSH connections to the server by add or modifying the following line in the "/etc/ssh/sshd_config" file: RekeyLimit 1G 1h Restart the SSH daemon for the settings to take effect. $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-040170
- Vuln IDs
-
- V-230529
- Rule IDs
-
- SV-230529r1017289_rule
Checks: C-33198r568333_chk
Verify RHEL 8 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-33173r833337_fix
Configure the system to disable the Ctrl-Alt-Delete sequence for the command line with the following commands: $ sudo systemctl disable ctrl-alt-del.target $ sudo systemctl mask ctrl-alt-del.target Created symlink /etc/systemd/system/ctrl-alt-del.target -> /dev/null Reload the daemon for this change to take effect. $ sudo systemctl daemon-reload
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-040171
- Vuln IDs
-
- V-230530
- Rule IDs
-
- SV-230530r1069317_rule
Checks: C-33199r1069243_chk
Verify RHEL 8 is not configured to reboot the system when Ctrl-Alt-Delete is pressed when using a graphical user interface with the following command: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. $ sudo grep -r logout /etc/dconf/db/local.d/* /etc/dconf/db/local.d/00-disable-CAD:logout='' If the "logout" key is bound to an action, is commented out, or is missing, this is a finding.
Fix: F-33174r568337_fix
Configure the system to disable the Ctrl-Alt-Delete sequence when using a graphical user interface by creating or editing the /etc/dconf/db/local.d/00-disable-CAD file. Add the setting to disable the Ctrl-Alt-Delete sequence for a graphical user interface: [org/gnome/settings-daemon/plugins/media-keys] logout='' Note: The value above is set to two single quotations. Then update the dconf settings: $ sudo dconf update
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-040172
- Vuln IDs
-
- V-230531
- Rule IDs
-
- SV-230531r1017292_rule
Checks: C-33200r568339_chk
Verify RHEL 8 is not configured to reboot the system when Ctrl-Alt-Delete is pressed seven times within two seconds with the following command: $ sudo 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-33175r1017291_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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040180
- Vuln IDs
-
- V-230532
- Rule IDs
-
- SV-230532r1017294_rule
Checks: C-33201r568342_chk
Verify RHEL 8 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-33176r1017293_fix
Configure the system to mask the debug-shell systemd service with the following command: $ sudo systemctl mask debug-shell.service Created symlink /etc/systemd/system/debug-shell.service -> /dev/null Reload the daemon to take effect. $ sudo systemctl daemon-reload
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-040190
- Vuln IDs
-
- V-230533
- Rule IDs
-
- SV-230533r1017295_rule
Checks: C-33202r568345_chk
Verify a TFTP server has not been installed on the system with the following command: $ sudo yum list installed tftp-server tftp-server.x86_64 5.2-24.el8 If TFTP is installed and the requirement for TFTP is not documented with the ISSO, this is a finding.
Fix: F-33177r568346_fix
Remove the TFTP package from the system with the following command: $ sudo yum remove tftp-server
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-040200
- Vuln IDs
-
- V-230534
- Rule IDs
-
- SV-230534r1017296_rule
Checks: C-33203r568348_chk
Check the system for duplicate UID "0" assignments with the following command: $ sudo awk -F: '$3 == 0 {print $1}' /etc/passwd If any accounts other than root have a UID of "0", this is a finding.
Fix: F-33178r568349_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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040210
- Vuln IDs
-
- V-230535
- Rule IDs
-
- SV-230535r1017297_rule
Checks: C-33204r833339_chk
Verify RHEL 8 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-33179r858792_fix
Configure RHEL 8 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-08-040220
- Vuln IDs
-
- V-230536
- Rule IDs
-
- SV-230536r1017298_rule
Checks: C-33205r833341_chk
Verify RHEL 8 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-33180r858794_fix
Configure RHEL 8 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-08-040230
- Vuln IDs
-
- V-230537
- Rule IDs
-
- SV-230537r1017299_rule
Checks: C-33206r833343_chk
Verify RHEL 8 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-33181r858796_fix
Configure RHEL 8 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-08-040240
- Vuln IDs
-
- V-230538
- Rule IDs
-
- SV-230538r1017300_rule
Checks: C-33207r833345_chk
Verify RHEL 8 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-33182r858800_fix
Configure RHEL 8 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-08-040250
- Vuln IDs
-
- V-230539
- Rule IDs
-
- SV-230539r1017301_rule
Checks: C-33208r861084_chk
Verify RHEL 8 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-33183r858805_fix
Configure RHEL 8 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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040260
- Vuln IDs
-
- V-230540
- Rule IDs
-
- SV-230540r1017302_rule
Checks: C-33209r833348_chk
Verify RHEL 8 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-33184r858809_fix
Configure RHEL 8 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-08-040261
- Vuln IDs
-
- V-230541
- Rule IDs
-
- SV-230541r1017303_rule
Checks: C-33210r833350_chk
Verify RHEL 8 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-33185r858811_fix
Configure RHEL 8 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-08-040262
- Vuln IDs
-
- V-230542
- Rule IDs
-
- SV-230542r1017304_rule
Checks: C-33211r833352_chk
Verify RHEL 8 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-33186r858813_fix
Configure RHEL 8 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-08-040270
- Vuln IDs
-
- V-230543
- Rule IDs
-
- SV-230543r1017305_rule
Checks: C-33212r833354_chk
Verify RHEL 8 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 grep -r net.ipv4.conf.default.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.default.send_redirects = 0 If "net.ipv4.conf.default.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-33187r858815_fix
Configure RHEL 8 to not allow interfaces to perform Internet Protocol version 4 (IPv4) ICMP redirects by default. Add or edit the following line in a system configuration file, in the "/etc/sysctl.d/" directory: net.ipv4.conf.default.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-08-040280
- Vuln IDs
-
- V-230544
- Rule IDs
-
- SV-230544r1017306_rule
Checks: C-33213r833356_chk
Verify RHEL 8 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-33188r858819_fix
Configure RHEL 8 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-08-040281
- Vuln IDs
-
- V-230545
- Rule IDs
-
- SV-230545r1017307_rule
Checks: C-33214r833358_chk
Verify RHEL 8 prevents privilege escalation thru 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-33189r858821_fix
Configure RHEL 8 to prevent privilege escalation thru 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 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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040282
- Vuln IDs
-
- V-230546
- Rule IDs
-
- SV-230546r1017308_rule
Checks: C-33215r833360_chk
Verify RHEL 8 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-33190r858823_fix
Configure RHEL 8 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 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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040283
- Vuln IDs
-
- V-230547
- Rule IDs
-
- SV-230547r1017309_rule
Checks: C-33216r833362_chk
Verify RHEL 8 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-33191r858825_fix
Configure RHEL 8 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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040284
- Vuln IDs
-
- V-230548
- Rule IDs
-
- SV-230548r1017310_rule
Checks: C-33217r1014816_chk
Verify RHEL 8 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 ISSM, it is not a finding.
Fix: F-33192r1014817_fix
Configure RHEL 8 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 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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040285
- Vuln IDs
-
- V-230549
- Rule IDs
-
- SV-230549r1017311_rule
Checks: C-33218r833366_chk
Verify RHEL 8 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-33193r858829_fix
Configure RHEL 8 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 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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040290
- Vuln IDs
-
- V-230550
- Rule IDs
-
- SV-230550r1017312_rule
Checks: C-33219r568396_chk
Verify the system is configured to prevent unrestricted mail relaying. Determine if "postfix" is installed with the following commands: $ sudo yum list installed postfix postfix.x86_64 2:3.3.1-9.el8 If postfix is not installed, this is Not Applicable. If postfix is installed, determine if it is configured to reject connections from unknown or untrusted networks with the following command: $ sudo 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", this is a finding.
Fix: F-33194r568397_fix
If "postfix" is installed, modify the "/etc/postfix/main.cf" file to restrict client connections to the local network with the following command: $ sudo postconf -e 'smtpd_client_restrictions = permit_mynetworks,reject'
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-08-040300
- Vuln IDs
-
- V-230551
- Rule IDs
-
- SV-230551r1017313_rule
Checks: C-33220r568399_chk
Verify the file integrity tool is configured to verify extended attributes. If AIDE is not installed, ask the System Administrator how file integrity checks are performed on the system. Note: AIDE is highly configurable at install time. This requirement assumes the "aide.conf" file is under the "/etc" directory. Use the following command to determine if the file is in another location: $ sudo find / -name aide.conf Check the "aide.conf" file to determine if the "xattrs" rule has been added to the rule list being applied to the files and directories selection lists. An example rule that includes the "xattrs" rule follows: All= p+i+n+u+g+s+m+S+sha512+acl+xattrs+selinux /bin All # apply the custom rule to the files in bin /sbin All # apply the same custom rule to the files in sbin 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-33195r568400_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
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-08-040310
- Vuln IDs
-
- V-230552
- Rule IDs
-
- SV-230552r1101902_rule
Checks: C-33221r1101901_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-33196r568403_fix
Configure the file integrity tool to check file and directory ACLs. If AIDE is installed, ensure the "acl" rule is present on all file and directory selection lists.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040320
- Vuln IDs
-
- V-230553
- Rule IDs
-
- SV-230553r1017315_rule
Checks: C-33222r809322_chk
Verify that a graphical user interface is not installed: $ rpm -qa | grep xorg | grep server Ask the System Administrator if use of a graphical user interface is an operational requirement. If the use of a graphical user interface on the system is not documented with the ISSO, this is a finding.
Fix: F-33197r809323_fix
Document the requirement for a graphical user interface with the ISSO or reinstall the operating system without the graphical user interface. If reinstallation is not feasible, then continue with the following procedure: Open an SSH session and enter the following commands: $ sudo yum remove xorg-x11-server-Xorg xorg-x11-server-common xorg-x11-server-utils xorg-x11-server-Xwayland A reboot is required for the changes to take effect.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040330
- Vuln IDs
-
- V-230554
- Rule IDs
-
- SV-230554r1017316_rule
Checks: C-33223r568408_chk
Verify network interfaces are not in promiscuous mode unless approved by the ISSO and documented. Check for the status with the following command: $ sudo 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-33198r568409_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-08-040340
- Vuln IDs
-
- V-230555
- Rule IDs
-
- SV-230555r1017317_rule
Checks: C-33224r951617_chk
Verify X11Forwarding 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*x11forwarding' X11Forwarding no If the "X11Forwarding" keyword is set to "yes" and is not documented with the information system security officer (ISSO) as an operational requirement or is missing, this is a finding. If conflicting results are returned, this is a finding.
Fix: F-33199r568412_fix
Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for the "X11Forwarding" keyword and set its value to "no" (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): X11Forwarding no The SSH service must be restarted for changes to take effect: $ sudo systemctl restart sshd
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040341
- Vuln IDs
-
- V-230556
- Rule IDs
-
- SV-230556r1017318_rule
Checks: C-33225r951619_chk
Verify the SSH daemon prevents remote hosts from connecting to the proxy display. Check the SSH X11UseLocalhost setting 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. If conflicting results are returned, this is a finding.
Fix: F-33200r568415_fix
Configure the SSH daemon to prevent remote hosts from connecting to the proxy display. Edit the "/etc/ssh/sshd_config" file to uncomment or add the line for the "X11UseLocalhost" keyword and set its value to "yes" (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): X11UseLocalhost yes
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040350
- Vuln IDs
-
- V-230557
- Rule IDs
-
- SV-230557r1088855_rule
Checks: C-33226r1088854_chk
Note: IAW RHEL-08-040190 if TFTP is not required, it should not be installed. If TFTP is not installed, this rule is not applicable. Check to see if TFTP server is installed with the following command: $ sudo dnf list installed | grep tftp-server tftp-server.x86_64 x.x-x.el8 Verify that the TFTP daemon, if tftp.server is installed, is configured to operate in secure mode with the following command: $ grep -i execstart /usr/lib/systemd/system/tftp.service ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot Note: The "-s" option ensures that the TFTP server only serves files from the specified directory, which is a security measure to prevent unauthorized access to other parts of the file system. If the TFTP server is installed but the TFTP daemon is not configured to operate in secure mode, this is a finding.
Fix: F-33201r1069173_fix
Configure the TFTP daemon to operate in secure mode with the following command: $ sudo systemctl edit tftp.service In the editor enter: [Service] ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot After making changes, reload the systemd daemon and restart the TFTP service as follows: $ sudo systemctl daemon-reload $ sudo systemctl restart tftp.service
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-040360
- Vuln IDs
-
- V-230558
- Rule IDs
-
- SV-230558r1017320_rule
Checks: C-33227r568420_chk
Verify an FTP server has not been installed on the system with the following commands: $ sudo yum list installed *ftpd* vsftpd.x86_64 3.0.3-28.el8 appstream If an FTP server is installed and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.
Fix: F-33202r568421_fix
Document the FTP server package with the ISSO as an operational requirement or remove it from the system with the following command: $ sudo yum remove vsftpd
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000381
- Version
- RHEL-08-040370
- Vuln IDs
-
- V-230559
- Rule IDs
-
- SV-230559r1014820_rule
Checks: C-33228r1014819_chk
Verify the gssproxy package has not been installed on the system with the following commands: $ sudo yum list installed gssproxy gssproxy.x86_64 0.8.0-14.el8 @anaconda 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. If NFS mounts are being used, this is not a finding.
Fix: F-33203r568424_fix
Document the gssproxy package with the ISSO as an operational requirement or remove it from the system with the following command: $ sudo yum remove gssproxy
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040380
- Vuln IDs
-
- V-230560
- Rule IDs
-
- SV-230560r1017321_rule
Checks: C-33229r568426_chk
Verify the iprutils package has not been installed on the system with the following commands: $ sudo yum list installed iprutils iprutils.x86_64 2.4.18.1-1.el8 @anaconda 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-33204r568427_fix
Document the iprutils package with the ISSO as an operational requirement or remove it from the system with the following command: $ sudo yum remove iprutils
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040390
- Vuln IDs
-
- V-230561
- Rule IDs
-
- SV-230561r1017322_rule
Checks: C-33230r568429_chk
Verify the tuned package has not been installed on the system with the following commands: $ sudo yum list installed tuned tuned.noarch 2.12.0-3.el8 @anaconda 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-33205r568430_fix
Document the tuned package with the ISSO as an operational requirement or remove it from the system with the following command: $ sudo yum remove tuned
- RMF Control
- IA-7
- Severity
- M
- CCI
- CCI-000803
- Version
- RHEL-08-010163
- Vuln IDs
-
- V-237640
- Rule IDs
-
- SV-237640r1017323_rule
Checks: C-40859r646888_chk
Verify the krb5-server package has not been installed on the system with the following commands: If the system is a workstation or is utilizing krb5-server-1.17-18.el8.x86_64 or newer, this is Not Applicable $ sudo yum list installed krb5-server krb5-server.x86_64 1.17-9.el8 repository If the krb5-server package is installed and is not documented with the Information System Security Officer (ISSO) as an operational requirement, this is a finding.
Fix: F-40822r646889_fix
Document the krb5-server package with the ISSO as an operational requirement or remove it from the system with the following command: $ sudo yum remove krb5-server
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010382
- Vuln IDs
-
- V-237641
- Rule IDs
-
- SV-237641r1101904_rule
Checks: C-40860r1101903_chk
Verify the "sudoers" file restricts sudo access to authorized personnel. $ 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-40823r646892_fix
Remove the following entries from the sudoers file: ALL ALL=(ALL) ALL ALL ALL=(ALL:ALL) ALL
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002227
- Version
- RHEL-08-010383
- Vuln IDs
-
- V-237642
- Rule IDs
-
- SV-237642r991589_rule
Checks: C-40861r880725_chk
Verify that the sudoers security policy is configured to use the invoking user's password for privilege escalation. $ sudo grep -Eir '(rootpw|targetpw|runaspw)' /etc/sudoers /etc/sudoers.d* | grep -v '#' /etc/sudoers:Defaults !targetpw /etc/sudoers:Defaults !rootpw /etc/sudoers:Defaults !runaspw If conflicting results are returned, 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-40824r880726_fix
Define the following in the Defaults section of the /etc/sudoers file or a configuration file in the /etc/sudoers.d/ directory: Defaults !targetpw Defaults !rootpw Defaults !runaspw Remove any configurations that conflict with the above from the following locations: /etc/sudoers /etc/sudoers.d/
- RMF Control
- IA-11
- Severity
- M
- CCI
- CCI-002038
- Version
- RHEL-08-010384
- Vuln IDs
-
- V-237643
- Rule IDs
-
- SV-237643r1050789_rule
Checks: C-40862r861087_chk
Verify the operating system requires re-authentication when using the "sudo" command to elevate privileges. $ sudo grep -ir 'timestamp_timeout' /etc/sudoers /etc/sudoers.d /etc/sudoers:Defaults timestamp_timeout=0 If conflicting results are returned, 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-40825r858763_fix
Configure the "sudo" command to require re-authentication. Edit the /etc/sudoers file: $ sudo visudo Add or modify the following line: Defaults timestamp_timeout=[value] Note: The "[value]" must be a number that is greater than or equal to "0". Remove any duplicate or conflicting lines from /etc/sudoers and /etc/sudoers.d/ files.
- RMF Control
- AC-8
- Severity
- M
- CCI
- CCI-000048
- Version
- RHEL-08-010049
- Vuln IDs
-
- V-244519
- Rule IDs
-
- SV-244519r1017326_rule
Checks: C-47794r743804_chk
Verify RHEL 8 displays a banner before granting access to the operating system via a graphical user logon. Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. Check to see if the operating system displays a banner at the logon screen with the following command: $ sudo grep banner-message-enable /etc/dconf/db/local.d/* banner-message-enable=true If "banner-message-enable" is set to "false" or is missing, this is a finding.
Fix: F-47751r743805_fix
Configure the operating system to display a banner before granting access to the system. Note: If the system does not have a graphical user interface installed, this requirement is Not Applicable. 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-3
- Severity
- M
- CCI
- CCI-000213
- Version
- RHEL-08-010141
- Vuln IDs
-
- V-244521
- Rule IDs
-
- SV-244521r1017327_rule
Checks: C-47796r792981_chk
For systems that use BIOS, this is Not Applicable. Verify that a unique name is set as the "superusers" account: $ sudo grep -iw "superusers" /boot/efi/EFI/redhat/grub.cfg set superusers="[someuniquestringhere]" export superusers If "superusers" is identical to any OS account name or is missing a name, this is a finding.
Fix: F-47753r743811_fix
Configure the system to have a unique name for the grub superusers account. Edit the /etc/grub.d/01_users file and add or modify the following lines: set superusers="[someuniquestringhere]" export superusers password_pbkdf2 [someuniquestringhere] ${GRUB2_PASSWORD} Generate a new grub.cfg file with the following command: $ sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
- RMF Control
- AC-3
- Severity
- M
- CCI
- CCI-000213
- Version
- RHEL-08-010149
- Vuln IDs
-
- V-244522
- Rule IDs
-
- SV-244522r1017328_rule
Checks: C-47797r792983_chk
For systems that use UEFI, this is Not Applicable. Verify that a unique name is set as the "superusers" account: $ sudo grep -iw "superusers" /boot/grub2/grub.cfg set superusers="[someuniquestringhere]" export superusers If "superusers" is identical to any OS account name or is missing a name, this is a finding.
Fix: F-47754r743814_fix
Configure the system to have a unique name for the grub superusers account. Edit the /etc/grub.d/01_users file and add or modify the following lines: set superusers="[someuniquestringhere]" export superusers password_pbkdf2 [someuniquestringhere] ${GRUB2_PASSWORD} Generate a new grub.cfg file with the following command: $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- RMF Control
- AC-3
- Severity
- M
- CCI
- CCI-000213
- Version
- RHEL-08-010152
- Vuln IDs
-
- V-244523
- Rule IDs
-
- SV-244523r1017329_rule
Checks: C-47798r743816_chk
Check to see if the system requires authentication for emergency mode with the following command: $ sudo grep sulogin-shell /usr/lib/systemd/system/emergency.service ExecStart=-/usr/lib/systemd/systemd-sulogin-shell emergency If the "ExecStart" line is configured for anything other than "/usr/lib/systemd/systemd-sulogin-shell emergency", commented out, or missing, this is a finding.
Fix: F-47755r743817_fix
Configure the system to require authentication upon booting into emergency mode by adding the following line to the "/usr/lib/systemd/system/emergency.service" file. ExecStart=-/usr/lib/systemd/systemd-sulogin-shell emergency
- RMF Control
- IA-7
- Severity
- M
- CCI
- CCI-000803
- Version
- RHEL-08-010159
- Vuln IDs
-
- V-244524
- Rule IDs
-
- SV-244524r1017330_rule
Checks: C-47799r809329_chk
Verify that pam_unix.so module is configured to use sha512. Check that pam_unix.so module is configured to use sha512 in /etc/pam.d/system-auth with the following command: $ sudo grep password /etc/pam.d/system-auth | grep pam_unix password sufficient pam_unix.so sha512 If "sha512" is missing, or is commented out, this is a finding.
Fix: F-47756r809330_fix
Configure RHEL 8 to use a FIPS 140-2 approved cryptographic hashing algorithm for system authentication. Edit/modify the following line in the "/etc/pam.d/system-auth" file to include the sha512 option for pam_unix.so: password sufficient pam_unix.so sha512
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- RHEL-08-010201
- Vuln IDs
-
- V-244525
- Rule IDs
-
- SV-244525r1017331_rule
Checks: C-47800r951595_chk
Verify the SSH server automatically terminates a user session after the SSH client has been unresponsive for 10 minutes. Check that 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' 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. If conflicting results are returned, this is a finding.
Fix: F-47757r917885_fix
Note: This setting must be applied in conjunction with RHEL-08-010200 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" file: ClientAliveInterval 600 For the changes to take effect, the SSH daemon must be restarted. $ sudo systemctl restart sshd.service
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-08-010287
- Vuln IDs
-
- V-244526
- Rule IDs
-
- SV-244526r1017332_rule
Checks: C-47801r809332_chk
Verify that system-wide crypto policies are in effect: $ sudo grep CRYPTO_POLICY /etc/sysconfig/sshd # CRYPTO_POLICY= If the "CRYPTO_POLICY " is uncommented, this is a finding.
Fix: F-47758r809333_fix
Configure the RHEL 8 SSH daemon to use system-wide crypto policies by adding the following line to /etc/sysconfig/sshd: # CRYPTO_POLICY= A reboot is required for the changes to take effect.
- RMF Control
- CM-6
- Severity
- L
- CCI
- CCI-000366
- Version
- RHEL-08-010472
- Vuln IDs
-
- V-244527
- Rule IDs
-
- SV-244527r1017333_rule
Checks: C-47802r1014789_chk
Note: For RHEL versions 8.4 and above running with kernel FIPS mode enabled as specified by RHEL-08-010020, this requirement is Not Applicable. Check that RHEL 8 has the packages required to enabled the hardware random number generator entropy gatherer service with the following command: $ sudo yum list installed rng-tools rng-tools.x86_64 6.8-3.el8 @anaconda If the "rng-tools" package is not installed, this is a finding.
Fix: F-47759r743829_fix
Install the packages required to enabled the hardware random number generator entropy gatherer service with the following command: $ sudo yum install rng-tools
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010522
- Vuln IDs
-
- V-244528
- Rule IDs
-
- SV-244528r1017335_rule
Checks: C-47803r1017334_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, or has not been documented with the information system security officer (ISSO), this is a finding. If conflicting results are returned, this is a finding.
Fix: F-47760r743832_fix
Configure the SSH daemon to not allow GSSAPI authentication. Add the following line in "/etc/ssh/sshd_config", or uncomment the line and set the value to "no": GSSAPIAuthentication no The SSH daemon must be restarted for the changes to take effect. To restart the SSH daemon, run the following command: $ sudo systemctl restart sshd.service
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010544
- Vuln IDs
-
- V-244529
- Rule IDs
-
- SV-244529r1017336_rule
Checks: C-47804r902736_chk
Verify that a separate file system has been created for "/var/tmp". Check that a file system has been created for "/var/tmp" with the following command: $ sudo grep /var/tmp /etc/fstab /dev/mapper/... /var/tmp xfs defaults,nodev,noexec,nosuid 0 0 If a separate entry for "/var/tmp" is not in use, this is a finding.
Fix: F-47761r743835_fix
Migrate the "/var/tmp" path onto a separate file system.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010572
- Vuln IDs
-
- V-244530
- Rule IDs
-
- SV-244530r1017337_rule
Checks: C-47805r809335_chk
For systems that use BIOS, this is Not Applicable. Verify the /boot/efi directory is mounted with the "nosuid" option with the following command: $ sudo 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.
Fix: F-47762r743838_fix
Configure the "/etc/fstab" to use the "nosuid" option on the /boot/efi directory.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010731
- Vuln IDs
-
- V-244531
- Rule IDs
-
- SV-244531r1017338_rule
Checks: C-47806r743840_chk
Verify all files and directories contained in a local interactive user home directory, excluding local initialization files, have a mode of "0750". Files that begin with a "." are excluded from this requirement. Note: The example will be for the user "smithj", who has a home directory of "/home/smithj". $ sudo ls -lLR /home/smithj -rwxr-x--- 1 smithj smithj 18 Mar 5 17:06 file1 -rwxr----- 1 smithj smithj 193 Mar 5 17:06 file2 -rw-r-x--- 1 smithj smithj 231 Mar 5 17:06 file3 If any files or directories are found with a mode more permissive than "0750", this is a finding.
Fix: F-47763r743841_fix
Set the mode on files and directories in the local interactive user home directory with the following command: Note: The example will be for the user smithj, who has a home directory of "/home/smithj" and is a member of the users group. $ sudo chmod 0750 /home/smithj/<file or directory>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010741
- Vuln IDs
-
- V-244532
- Rule IDs
-
- SV-244532r1101906_rule
Checks: C-47807r1101905_chk
Verify all files and directories in a local interactive user home directory are group-owned by a group that the user is a member. Check the group owner of all files and directories in a local interactive user's home directory with the following command: Note: The example will be for the user "smithj", who has a home directory of "/home/smithj". $ sudo ls -lLR /<home directory>/<users home directory>/ -rw-r--r-- 1 smithj smithj 18 Mar 5 17:06 file1 -rw-r--r-- 1 smithj smithj 193 Mar 5 17:06 file2 -rw-r--r-- 1 smithj sa 231 Mar 5 17:06 file3 If any files are found with a group owner different from the home directory user private group, check to see if the user is a member of that group with the following command: $ sudo grep smithj /etc/group sa:x:100:juan,shelley,bob,smithj smithj:x:521:smithj If any files or directories are group owned by a group that the directory owner is not a member of verify that it is documented with the information system security officer (ISSO). If it is not, this is a finding.
Fix: F-47764r743844_fix
Change the group of a local interactive user's files and directories to a group that the interactive user is a member. To change the group owner of a local interactive user's files and directories, use the following command: Note: The example will be for the user smithj, who has a home directory of "/home/smithj" and is a member of the users group. $ sudo chgrp smithj /home/smithj/<file or directory>
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020025
- Vuln IDs
-
- V-244533
- Rule IDs
-
- SV-244533r1069318_rule
Checks: C-47808r1069245_chk
Verify the pam_faillock.so module is present and is listed before the pam.unix.so line in the "/etc/pam.d/system-auth" file: Note: The first field in the output is the line number of the entry $ sudo grep -E -n 'pam_faillock.so|pam_unix.so' /etc/pam.d/system-auth 7:auth required pam_faillock.so preauth silent 13:auth sufficient pam_unix.so 17:auth required pam_faillock.so authfail 21:account required pam_faillock.so 22:account required pam_unix.so 33:password sufficient pam_unix.so sha512 shadow use_authtok 42:session required pam_unix.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.
Fix: F-47765r743847_fix
Configure the operating system to include the use of the pam_faillock.so module in the /etc/pam.d/system-auth file. 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-08-020026
- Vuln IDs
-
- V-244534
- Rule IDs
-
- SV-244534r1069319_rule
Checks: C-47809r1069247_chk
Note: This check applies to RHEL versions 8.2 or newer, if the system is RHEL version 8.0 or 8.1, this check is not applicable. Verify the pam_faillock.so module is present and is listed before the pam.unix.so line in the "/etc/pam.d/password-auth" file: Note: The first field in the output is the line number of the entry $ sudo grep -E -n 'pam_faillock.so|pam_unix.so' /etc/pam.d/password-auth 7:auth required pam_faillock.so preauth silent 11:auth sufficient pam_unix.so 15:auth required pam_faillock.so authfail 19:account required pam_faillock.so 20:account required pam_unix.so 31:password sufficient pam_unix.so sha512 shadow use_authtok 40:session required pam_unix.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.
Fix: F-47766r743850_fix
Configure the operating system to include the use of the pam_faillock.so module in the /etc/pam.d/password-auth file. 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
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- RHEL-08-020031
- Vuln IDs
-
- V-244535
- Rule IDs
-
- SV-244535r1017342_rule
Checks: C-47810r743852_chk
Verify the operating system initiates a session lock a for graphical user interfaces when the screensaver is activated with the following command: Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. $ sudo gsettings get org.gnome.desktop.screensaver lock-delay uint32 5 If the "uint32" setting is missing, or is not set to "5" or less, this is a finding.
Fix: F-47767r743853_fix
Configure the operating system 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
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-020032
- Vuln IDs
-
- V-244536
- Rule IDs
-
- SV-244536r1017343_rule
Checks: C-47811r743855_chk
Verify the operating system disables the user logon list for graphical user interfaces with the following command: Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. $ sudo gsettings get org.gnome.login-screen disable-user-list true If the setting is "false", this is a finding.
Fix: F-47768r743856_fix
Configure the operating system to disable the user list at logon for graphical user interfaces. 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/02-login-screen [org/gnome/login-screen] disable-user-list=true Update the system databases: $ sudo dconf update
- RMF Control
- AC-11
- Severity
- M
- CCI
- CCI-000057
- Version
- RHEL-08-020081
- Vuln IDs
-
- V-244538
- Rule IDs
-
- SV-244538r1069324_rule
Checks: C-47813r743861_chk
Verify the operating system prevents a user from overriding settings for graphical user interfaces. Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. 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 graphical settings are locked from non-privileged 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. $ sudo grep -i idle /etc/dconf/db/local.d/locks/* /org/gnome/desktop/session/idle-delay If the command does not return at least the example result, this is a finding.
Fix: F-47770r1069257_fix
Configure the operating system to prevent a user from overriding settings for graphical user interfaces. 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/locks/session Add the following setting to prevent non-privileged 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-08-020082
- Vuln IDs
-
- V-244539
- Rule IDs
-
- SV-244539r1069325_rule
Checks: C-47814r743864_chk
Verify the operating system prevents a user from overriding settings for graphical user interfaces. Note: This requirement assumes the use of the RHEL 8 default graphical user interface, Gnome Shell. If the system does not have any graphical user interface installed, this requirement is Not Applicable. 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 graphical settings are locked from non-privileged 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. $ sudo grep -i lock-enabled /etc/dconf/db/local.d/locks/* /org/gnome/desktop/screensaver/lock-enabled If the command does not return at least the example result, this is a finding.
Fix: F-47771r1069259_fix
Configure the operating system to prevent a user from overriding settings for graphical user interfaces. 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/locks/session Add the following setting to prevent non-privileged users from modifying it: /org/gnome/desktop/screensaver/lock-enabled Run the following command to update the database: $ sudo dconf update
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-020332
- Vuln IDs
-
- V-244541
- Rule IDs
-
- SV-244541r1017347_rule
Checks: C-47816r743870_chk
To verify that null passwords cannot be used, run the following command: $ sudo grep -i nullok /etc/pam.d/password-auth If output is produced, this is a finding.
Fix: F-47773r743871_fix
Remove any instances of the "nullok" option in the "/etc/pam.d/password-auth" file to prevent logons with empty passwords. Note: Manual changes to the listed file may be overwritten by the "authselect" program.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- RHEL-08-030181
- Vuln IDs
-
- V-244542
- Rule IDs
-
- SV-244542r1017348_rule
Checks: C-47817r818837_chk
Verify the audit service is configured to produce audit records with the following command: $ sudo 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 2020-12-11 12:56:56 EST; 4 weeks 0 days ago If the audit service is not "active" and "running", this is a finding.
Fix: F-47774r743874_fix
Configure the audit service to produce audit records containing the information needed to establish when (date and time) an event occurred with the following commands: $ sudo systemctl enable auditd.service $ sudo systemctl start auditd.service
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001855
- Version
- RHEL-08-030731
- Vuln IDs
-
- V-244543
- Rule IDs
-
- SV-244543r971542_rule
Checks: C-47818r743876_chk
Verify RHEL 8 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 System Administrator 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-47775r743877_fix
Configure the operating system 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 Note: Option names and values in the auditd.conf file are case insensitive.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-002314
- Version
- RHEL-08-040101
- Vuln IDs
-
- V-244544
- Rule IDs
-
- SV-244544r958672_rule
Checks: C-47819r743879_chk
Verify that "firewalld" is active with the following commands: $ sudo systemctl is-active firewalld active If the "firewalld" package is not "active", ask the System Administrator if another firewall is installed. If no firewall is installed and active this is a finding.
Fix: F-47776r743880_fix
Configure "firewalld" to protect the operating system with the following command: $ sudo systemctl enable firewalld
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040136
- Vuln IDs
-
- V-244545
- Rule IDs
-
- SV-244545r958804_rule
Checks: C-47820r743882_chk
Verify the RHEL 8 "fapolicyd" is enabled and running with the following command: $ sudo systemctl status fapolicyd.service fapolicyd.service - File Access Policy Daemon Loaded: loaded (/usr/lib/systemd/system/fapolicyd.service; enabled; vendor preset: disabled) Active: active (running) If fapolicyd is not enabled and running, this is a finding.
Fix: F-47777r743883_fix
Enable "fapolicyd" using the following command: $ sudo systemctl enable --now fapolicyd
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-001764
- Version
- RHEL-08-040137
- Vuln IDs
-
- V-244546
- Rule IDs
-
- SV-244546r1017349_rule
Checks: C-47821r858728_chk
Verify the RHEL 8 "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: For RHEL 8.4 systems and older: $ sudo tail /etc/fapolicyd/fapolicyd.rules For RHEL 8.5 systems and newer: $ 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-47778r858729_fix
Configure RHEL 8 to employ a deny-all, permit-by-exception application whitelisting policy with "fapolicyd". With the "fapolicyd" installed and enabled, configure the daemon to function in permissive mode until the whitelist is built correctly to avoid system lockout. Do this by editing the "/etc/fapolicyd/fapolicyd.conf" file with the following line: permissive = 1 For RHEL 8.4 systems and older: Build the whitelist in the "/etc/fapolicyd/fapolicyd.rules" file ensuring the last rule is "deny perm=any all : all". For RHEL 8.5 systems and newer: Build the whitelist 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 whitelist 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
- IA-3
- Severity
- M
- CCI
- CCI-001958
- Version
- RHEL-08-040139
- Vuln IDs
-
- V-244547
- Rule IDs
-
- SV-244547r1014811_rule
Checks: C-47822r1014810_chk
Verify USBGuard is installed on the operating system with the following command: $ sudo yum list installed usbguard Installed Packages usbguard.x86_64 0.7.8-7.el8 @ol8_appstream 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 a virtual machine with no virtual or physical USB peripherals attached, this is not a finding.
Fix: F-47779r743889_fix
Install the USBGuard package with the following command: $ sudo yum install usbguard.x86_64
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-001958
- Version
- RHEL-08-040141
- Vuln IDs
-
- V-244548
- Rule IDs
-
- SV-244548r1014815_rule
Checks: C-47823r1014814_chk
Verify the operating system has enabled the use of the USBGuard with the following command: $ sudo systemctl status usbguard.service usbguard.service - USBGuard daemon Loaded: loaded (/usr/lib/systemd/system/usbguard.service; enabled; vendor preset: disabled) Active: active (running) If the usbguard.service is not enabled and 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 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 a virtual machine with no virtual or physical USB peripherals attached, this is not a finding.
Fix: F-47780r743892_fix
Configure the operating system to enable the blocking of unauthorized peripherals with the following commands: $ sudo systemctl enable usbguard.service $ sudo systemctl start usbguard.service 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
- SC-8
- Severity
- M
- CCI
- CCI-002418
- Version
- RHEL-08-040159
- Vuln IDs
-
- V-244549
- Rule IDs
-
- SV-244549r958908_rule
Checks: C-47824r743894_chk
Verify SSH is installed with the following command: $ sudo yum list installed openssh-server openssh-server.x86_64 8.0p1-5.el8 @anaconda If the "SSH server" package is not installed, this is a finding.
Fix: F-47781r743895_fix
Install SSH packages onto the host with the following command: $ sudo yum install openssh-server.x86_64
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040209
- Vuln IDs
-
- V-244550
- Rule IDs
-
- SV-244550r1017350_rule
Checks: C-47825r833372_chk
Verify RHEL 8 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-47782r858790_fix
Configure RHEL 8 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-08-040239
- Vuln IDs
-
- V-244551
- Rule IDs
-
- SV-244551r1017351_rule
Checks: C-47826r833374_chk
Verify RHEL 8 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-47783r858798_fix
Configure RHEL 8 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-08-040249
- Vuln IDs
-
- V-244552
- Rule IDs
-
- SV-244552r1017352_rule
Checks: C-47827r833376_chk
Verify RHEL 8 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-47784r858802_fix
Configure RHEL 8 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-08-040279
- Vuln IDs
-
- V-244553
- Rule IDs
-
- SV-244553r1017353_rule
Checks: C-47828r833378_chk
Verify RHEL 8 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-47785r858817_fix
Configure RHEL 8 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-08-040286
- Vuln IDs
-
- V-244554
- Rule IDs
-
- SV-244554r1017354_rule
Checks: C-47829r833380_chk
Verify RHEL 8 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-47786r858831_fix
Configure RHEL 8 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 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-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020027
- Vuln IDs
-
- V-250315
- Rule IDs
-
- SV-250315r1017356_rule
Checks: C-53749r793000_chk
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. Note: This check applies to RHEL versions 8.2 or newer. If the system is RHEL version 8.0 or 8.1, this check is not applicable. Verify the location of the non-default tally directory for the pam_faillock module with the following command: $ sudo grep -w dir /etc/security/faillock.conf dir = /var/log/faillock Check the security context type of the non-default tally directory with the following command: $ sudo ls -Zd /var/log/faillock unconfined_u:object_r:faillog_t:s0 /var/log/faillock If the security context type of the non-default tally directory is not "faillog_t", this is a finding.
Fix: F-53703r793001_fix
Configure RHEL 8 to allow the use of a non-default faillock tally directory while SELinux enforces a targeted policy. Create a non-default faillock tally directory (if it does not already exist) with the following example: $ sudo mkdir /var/log/faillock Update the /etc/selinux/targeted/contexts/files/file_contexts.local with "faillog_t" context type for the non-default faillock tally directory with the following command: $ sudo semanage fcontext -a -t faillog_t "/var/log/faillock(/.*)?" Next, update the context type of the non-default faillock directory/subdirectories and files with the following command: $ sudo restorecon -R -v /var/log/faillock
- RMF Control
- AC-7
- Severity
- M
- CCI
- CCI-000044
- Version
- RHEL-08-020028
- Vuln IDs
-
- V-250316
- Rule IDs
-
- SV-250316r1017357_rule
Checks: C-53750r793003_chk
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. Note: This check applies to RHEL versions 8.0 and 8.1. If the system is RHEL version 8.2 or newer, this check is not applicable. Verify the location of the non-default tally directory for the pam_faillock module with the following command: $ sudo grep -w dir /etc/pam.d/password-auth auth required pam_faillock.so preauth dir=/var/log/faillock auth required pam_faillock.so authfail dir=/var/log/faillock Check the security context type of the non-default tally directory with the following command: $ sudo ls -Zd /var/log/faillock unconfined_u:object_r:faillog_t:s0 /var/log/faillock If the security context type of the non-default tally directory is not "faillog_t", this is a finding.
Fix: F-53704r793004_fix
Configure RHEL 8 to allow the use of a non-default faillock tally directory while SELinux enforces a targeted policy. Update the /etc/selinux/targeted/contexts/files/file_contexts.local with "faillog_t" context type for the non-default faillock tally directory with the following command: $ sudo semanage fcontext -a -t faillog_t "/var/log/faillock(/.*)?" Next, update the context type of the non-default faillock directory/subdirectories and files with the following command: $ sudo restorecon -R -v /var/log/faillock
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040259
- Vuln IDs
-
- V-250317
- Rule IDs
-
- SV-250317r1017358_rule
Checks: C-53751r833382_chk
Verify RHEL 8 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-53705r858807_fix
Configure RHEL 8 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
- H
- CCI
- CCI-000366
- Version
- RHEL-08-010121
- Vuln IDs
-
- V-251706
- Rule IDs
-
- SV-251706r1017359_rule
Checks: C-55143r809340_chk
Check the "/etc/shadow" file for blank passwords with the following command: $ sudo awk -F: '!$2 {print $1}' /etc/shadow If the command returns any results, this is a finding.
Fix: F-55097r809341_fix
Configure all accounts on the system to have a password or lock the account with the following commands: Perform a password reset: $ sudo passwd [username] Lock an account: $ sudo passwd -l [username]
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- RHEL-08-010331
- Vuln IDs
-
- V-251707
- Rule IDs
-
- SV-251707r1017360_rule
Checks: C-55144r809343_chk
Verify the system-wide shared library directories within "/lib", "/lib64", "/usr/lib" and "/usr/lib64" have mode "755" or less permissive with the following command: $ sudo find /lib /lib64 /usr/lib /usr/lib64 -perm /022 -type d -exec stat -c "%n %a" '{}' \; If any system-wide shared library directories are found to be group-writable or world-writable, this is a finding.
Fix: F-55098r809344_fix
Configure the library directories 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-08-010341
- Vuln IDs
-
- V-251708
- Rule IDs
-
- SV-251708r1017362_rule
Checks: C-55145r1017361_chk
Verify the system-wide 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 "%n %U" '{}' \; If any system-wide shared library directory is returned, this is a finding.
Fix: F-55099r809347_fix
Configure the system-wide 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-08-010351
- Vuln IDs
-
- V-251709
- Rule IDs
-
- SV-251709r1017364_rule
Checks: C-55146r1017363_chk
Verify the system-wide 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 "%n %G" '{}' \; If any system-wide shared library directory is returned and is not group-owned by a required system account, this is a finding.
Fix: F-55100r809350_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 not group-owned by "root". $ sudo chgrp root [DIRECTORY]
- RMF Control
- SI-6
- Severity
- M
- CCI
- CCI-002696
- Version
- RHEL-08-010359
- Vuln IDs
-
- V-251710
- Rule IDs
-
- SV-251710r958944_rule
Checks: C-55147r880728_chk
Verify that Advanced Intrusion Detection Environment (AIDE) is installed and verifies the correct operation of all security functions. Check that the AIDE package is installed with the following command: $ sudo rpm -q aide aide-0.16-14.el8_5.1.x86_64 If AIDE is not installed, ask the System Administrator how file integrity checks are performed on the system. If there is no application installed to perform integrity checks, this is a finding. If AIDE is installed, check if it has been initialized with the following command: $ sudo /usr/sbin/aide --check If the output is "Couldn't open file /var/lib/aide/aide.db.gz for reading", this is a finding.
Fix: F-55101r880729_fix
Install AIDE, initialize it, and perform a manual check. Install AIDE: $ sudo yum install aide Initialize it: $ sudo /usr/sbin/aide --init Example output: Number of entries: 48623 --------------------------------------------------- The attributes of the (uncompressed) database(s): --------------------------------------------------- /var/lib/aide/aide.db.new.gz SHA1 : LTAVQ8tFJthsrf4m9gfRpnf1vyc= SHA256 : NJ9+uzRQKSwmLQ8A6IpKNvYjVKGbhSjt BeJBVcmOVrI= SHA512 : 7d8I/F6A1b07E4ZuGeilZjefRgJJ/F20 eC2xoag1OsOVpctt3Mi7Jjjf3vFW4xoY 5mdS6/ImQpm0xtlTLOPeQQ== End timestamp: 2022-10-20 10:50:52 -0700 (run time: 0m 46s) 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: Start timestamp: 2022-10-20 11:03:16 -0700 (AIDE 0.16) AIDE found differences between database and filesystem!! ... Done.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-010379
- Vuln IDs
-
- V-251711
- Rule IDs
-
- SV-251711r1017365_rule
Checks: C-55148r833384_chk
Note: If the "include" and "includedir" directives are not present in the /etc/sudoers file, this requirement is not applicable. Verify the operating system specifies only the default "include" directory for the /etc/sudoers file with the following command: $ sudo grep include /etc/sudoers #includedir /etc/sudoers.d If the results are not "/etc/sudoers.d" or additional files or directories are specified, this is a finding. Verify the operating system does not have nested "include" files or directories within the /etc/sudoers.d directory with the following command: $ sudo grep -r include /etc/sudoers.d If results are returned, this is a finding.
Fix: F-55102r809356_fix
Configure the /etc/sudoers file to only include the /etc/sudoers.d directory. Edit the /etc/sudoers file with the following command: $ sudo visudo Add or modify the following line: #includedir /etc/sudoers.d
- RMF Control
- IA-11
- Severity
- M
- CCI
- CCI-002038
- Version
- RHEL-08-010385
- Vuln IDs
-
- V-251712
- Rule IDs
-
- SV-251712r1050789_rule
Checks: C-55149r809358_chk
Verify the operating system is not be configured to bypass password requirements for privilege escalation. Check the configuration of the "/etc/pam.d/sudo" file with the following command: $ sudo grep pam_succeed_if /etc/pam.d/sudo If any occurrences of "pam_succeed_if" is returned from the command, this is a finding.
Fix: F-55103r854082_fix
Configure the operating system to require users to supply a password for privilege escalation. Check the configuration of the "/etc/ pam.d/sudo" file with the following command: $ sudo vi /etc/pam.d/sudo Remove any occurrences of "pam_succeed_if" in the file.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-020101
- Vuln IDs
-
- V-251713
- Rule IDs
-
- SV-251713r1017366_rule
Checks: C-55150r902738_chk
Verify the operating system uses "pwquality" to enforce the password complexity rules. Check for the use of "pwquality" in the system-auth file with the following command: $ sudo cat /etc/pam.d/system-auth | grep pam_pwquality password requisite pam_pwquality.so If the command does not return a line containing the value "pam_pwquality.so" as shown, or the line is commented out, this is a finding.
Fix: F-55104r902739_fix
Configure the operating system 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 requisite pam_pwquality.so
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- RHEL-08-020104
- Vuln IDs
-
- V-251716
- Rule IDs
-
- SV-251716r1069329_rule
Checks: C-55153r1069267_chk
Note: This requirement applies to RHEL versions 8.4 or newer. If the system is RHEL below version 8.4, this requirement is not applicable. Verify RHEL 8 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-55107r1069268_fix
Configure RHEL 8 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
- M
- CCI
- CCI-000366
- Version
- RHEL-08-040321
- Vuln IDs
-
- V-251718
- Rule IDs
-
- SV-251718r1017371_rule
Checks: C-55155r809376_chk
Verify that the system 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-55109r809377_fix
Document the requirement for a graphical user interface with the ISSO or reinstall the operating system without the graphical user interface. If reinstallation is not feasible, then continue with the following procedure: Open an SSH session and enter the following commands: $ sudo systemctl set-default multi-user.target A reboot is required for the changes to take effect.
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002235
- Version
- RHEL-08-040400
- Vuln IDs
-
- V-254520
- Rule IDs
-
- SV-254520r1069331_rule
Checks: C-58004r928594_chk
Verify the operating system prevents nonprivileged users from executing privileged functions, including disabling, circumventing, or altering implemented security safeguards/countermeasures. Obtain a list of authorized users (other than system administrator and guest accounts) for the system. Check the list against the system by using the following command: $ sudo semanage login -l | more Login Name SELinux User MLS/MCS Range Service __default__ user_u s0-s0:c0.c1023 * root unconfined_u s0-s0:c0.c1023 * system_u system_u s0-s0:c0.c1023 * joe staff_u s0-s0:c0.c1023 * All administrators must be mapped to the "sysadm_u", "staff_u", or an appropriately tailored confined role as defined by the organization. All authorized nonadministrative users must be mapped to the "user_u" role. If they are not mapped in this way, this is a finding.
Fix: F-57953r1069272_fix
Configure RHEL 8 to prevent nonprivileged users from executing privileged functions, including disabling, circumventing, or altering implemented security safeguards/countermeasures. Use the following command to map a new user to the "sysadm_u" role: $ sudo semanage login -a -s sysadm_u <username> Use the following command to map an existing user to the "sysadm_u" role: $ sudo semanage login -m -s sysadm_u <username> Use the following command to map a new user to the "staff_u" role: $ sudo semanage login -a -s staff_u <username> Use the following command to map an existing user to the "staff_u" role: $ sudo semanage login -m -s staff_u <username> Use the following command to map a new user to the "user_u" role: $ sudo semanage login -a -s user_u <username> Use the following command to map an existing user to the "user_u" role: $ sudo semanage login -m -s user_u <username> Note: SELinux confined users mapped to sysadm_u are not allowed to log in to the system over SSH, by default. If this is a required function, it can be configured by setting the ssh_sysadm_login SELinux boolean to "on" with the following command: $ sudo setsebool -P ssh_sysadm_login on This must be documented with the information system security officer (ISSO) as an operational requirement.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-08-040342
- Vuln IDs
-
- V-255924
- Rule IDs
-
- SV-255924r1017372_rule
Checks: C-59601r917887_chk
Verify that the SSH server is configured to use only FIPS-validated key exchange algorithms: $ sudo grep -i kexalgorithms /etc/crypto-policies/back-ends/opensshserver.config CRYPTO_POLICY='-oKexAlgorithms=ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512' If the entries following "KexAlgorithms" have any algorithms defined other than "ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512", appear in different order than shown, or are missing or commented out, this is a finding.
Fix: F-59544r880732_fix
Configure the SSH server to use only FIPS-validated key exchange algorithms by adding or modifying the following line in "/etc/crypto-policies/back-ends/opensshserver.config": -oKexAlgorithms=ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512 A reboot is required for the changes to take effect.
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001749
- Version
- RHEL-08-010019
- Vuln IDs
-
- V-256973
- Rule IDs
-
- SV-256973r1017373_rule
Checks: C-60651r902750_chk
Confirm Red Hat package-signing keys are installed on the system and verify their fingerprints match vendor values. Note: For RHEL 8 software packages, Red Hat uses GPG keys labeled "release key 2" and "auxiliary key 2". 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" gpg(Red Hat, Inc. (release key 2) <security@redhat.com>) gpg(Red Hat, Inc. (auxiliary key) <security@redhat.com>) If Red Hat GPG keys "release key 2" and "auxiliary key 2" are not installed, this is a finding. Note: The "auxiliary key 2" appears as "auxiliary key" on a RHEL 8 system. 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/D4082792 2018-06-27 [SC] Key fingerprint = 6A6A A7C9 7C88 90AE C6AE BFE2 F76F 66C3 D408 2792 uid Red Hat, Inc. (auxiliary key) <security@redhat.com> sub rsa4096/1B5584D3 2018-06-27 [E] Compare key fingerprints of installed Red Hat GPG keys with fingerprints listed for RHEL 8 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-60593r902751_fix
Install Red Hat package-signing keys on the system and verify their fingerprints match vendor values. Insert RHEL 8 installation disc or attach RHEL 8 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
- CM-3
- Severity
- M
- CCI
- CCI-001744
- Version
- RHEL-08-010358
- Vuln IDs
-
- V-256974
- Rule IDs
-
- SV-256974r1069321_rule
Checks: C-60652r1069251_chk
Verify that the operating system is configured to allow sending email notifications. Note: The "mailx" package provides the "mail" command that is used to send email messages. The s-nail package is also suitable and may be used in place of mailx. Verify that the "mailx" package is installed on the system: $ sudo yum list installed mailx mailx.x86_64 12.5-29.el8 @rhel-8-for-x86_64-baseos-rpm If "mailx" package is not installed, this is a finding.
Fix: F-60594r902754_fix
Install the "mailx" package on the system: $ sudo yum install mailx
- RMF Control
- SC-10
- Severity
- M
- CCI
- CCI-001133
- Version
- RHEL-08-020035
- Vuln IDs
-
- V-257258
- Rule IDs
-
- SV-257258r1069328_rule
Checks: C-60942r1069265_chk
Note: This requirement applies to RHEL versions 8.7 and higher. If the system is not RHEL version 8.7 or newer, this requirement is not applicable. Note: For cloud hosted systems where "ClientAliveInterval" (V-244525) is configured, this setting is not applicable. Verify that RHEL 8 logs out sessions that are idle for 10 minutes with the following command: $ sudo grep -i ^StopIdleSessionSec /etc/systemd/logind.conf StopIdleSessionSec=600 If "StopIdleSessionSec" is not configured to "600" seconds, this is a finding.
Fix: F-60884r1014792_fix
Configure RHEL 8 to log out idle sessions after 10 minutes by editing the /etc/systemd/logind.conf file with the following line: StopIdleSessionSec=600 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
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- RHEL-08-020331
- Vuln IDs
-
- V-268322
- Rule IDs
-
- SV-268322r1017568_rule
Checks: C-72343r1017566_chk
To verify that null passwords cannot be used, run the following command: $ sudo grep -i nullok /etc/pam.d/system-auth If output is produced, this is a finding.
Fix: F-72246r1017567_fix
Remove any instances of the "nullok" option in the "/etc/pam.d/system-auth" file to prevent logons with empty passwords. Note: Manual changes to the listed file may be overwritten by the "authselect" program.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-08-010296
- Vuln IDs
-
- V-272482
- Rule IDs
-
- SV-272482r1069414_rule
Checks: C-76536r1069412_chk
Verify the SSH client is configured to use only MACs employing FIPS 140-3 approved algorithms with the following command: $ grep -i macs /etc/crypto-policies/back-ends/openssh.config -oMACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512,hmac-sha2-256 If the MACs entries in the "openssh.config" file have any hashes other than "MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512", they are missing, or commented out, this is a finding.
Fix: F-76442r1069413_fix
Configure the RHEL 8 SSH client to use only MACs employing FIPS 140-3 approved algorithms. For RHEL 8.4 and newer, update the "/etc/crypto-policies/back-ends/openssh.config" file with the following command: sudo sed -i -E 's/(-oMACs=)[^ ]*/\1hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512,hmac-sha2-256/' "$(readlink -f /etc/crypto-policies/back-ends/openssh.config)" A reboot is required for the changes to take effect.
- RMF Control
- AC-17
- Severity
- M
- CCI
- CCI-001453
- Version
- RHEL-08-010297
- Vuln IDs
-
- V-272483
- Rule IDs
-
- SV-272483r1069415_rule
Checks: C-76537r1069409_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: $ sudo grep -i ciphers /etc/crypto-policies/back-ends/openssh.config -oCiphers=aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr If the ciphers entries in the "openssh.config" file have any hashes other than "aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr", or they are missing, or commented out, this is a finding.
Fix: F-76443r1069336_fix
Configure the RHEL 8 SSH client to use only ciphers employing FIPS 140-3 approved algorithms by updating the "/etc/crypto-policies/back-ends/openssh.config" file with the following commands. To manually update the ciphers in the systemwide SSH configuration, use the following command: $ sudo sed -i -E 's/(-oCiphers=)[^ ]*/\1aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr/' "$(readlink -f /etc/crypto-policies/back-ends/openssh.config)" A reboot is required for the changes to take effect.
- RMF Control
- AC-6
- Severity
- M
- CCI
- CCI-002235
- Version
- RHEL-08-010455
- Vuln IDs
-
- V-272484
- Rule IDs
-
- SV-272484r1069340_rule
Checks: C-76538r1069338_chk
Verify the operating system 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-76444r1069339_fix
Configure the operating system 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/
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000172
- Version
- RHEL-08-030655
- Vuln IDs
-
- V-274877
- Rule IDs
-
- SV-274877r1106148_rule
Checks: C-78978r1106147_chk
Verify RHEL 8 is configured to audit the execution of any system call made by cron as root or as any privileged user. $ sudo auditctl -l | grep /etc/cron.d -w /etc/cron.d -p wa -k cronjobs $ sudo auditctl -l | grep /var/spool/cron -w /var/spool/cron -p wa -k cronjobs If either of these commands do not return the expected output, or the lines are commented out, this is a finding.
Fix: F-78883r1101908_fix
Configure RHEL 8 to audit the execution of any system call made by cron as root or as any privileged user. Add or update the following file system rules to "/etc/audit/rules.d/audit.rules": auditctl -w /etc/cron.d/ -p wa -k cronjobs auditctl -w /var/spool/cron/ -p wa -k cronjobs To load the rules to the kernel immediately, use the following command: $ sudo augenrules --load