V1R5 changes
Oracle Linux 9 SCAP Benchmark V1R5 (2026-08-21) replaced V1R4 (2026-05-14): 3 rules added, 34 updated. It has 398 rules, against 395 in V1R4.
V1R5 benchmarkV1R4 benchmark Compare V1R4 and V1R5 in SCAP Compare
- 3 added
- 0 removed
- 34 updated
Updated fields: Check text 34Discussion 24Fix text 9Title 9
Added in V1R5 (3)
Updated in V1R5 (34)
V-271441CAT IIOL 9 must require authentication to access emergency mode.Check text, Discussion
Check text
AND
- emergency.service config correct
textfilecontent54_test (check: all, existence: all_exist)
object textfilecontent54_object: filepath equals "/usr/lib/systemd/system/emergency.service"; pattern pattern match "^ExecStart=(.*)$"; instance greater than or equal "1"
state textfilecontent54_state: subexpression equals "-/usr/lib/systemd/systemd-sulogin-shell emergency"
Verify that OL 9 requires authentication for emergency mode with the following command:
$ grep sulogin-shell /usr/lib/systemd/system/emergency.service
ExecStart=-/usr/lib/systemd/systemd-sulogin-shell emergency
If this line is not returned, or is commented out, this is a finding. If the output is different, this is a finding.
Discussion
To mitigate the risk of unauthorized access to sensitive information by entities that have been issued certificates by DODDoW-approved PKIs, all DODDoW systems (e.g., web servers and web portals) must be properly configured to incorporate access control methods that do not rely solely on the possession of a certificate for access. Successful authentication must not automatically give an entity access to an asset or security boundary. Authorization procedures and controls must be implemented to ensure each authenticated entity also has a validated and current authorization. Authorization is the process of determining whether an entity, once authenticated, is permitted to access a specific asset. Information systems use access control policies and enforcement mechanisms to implement this requirement.
This requirement prevents attackers with physical access from trivially bypassing security on the machine and gaining root access. Such accesses are further prevented by configuring the bootloader password.
V-271442CAT IIOL 9 must require authentication to access single-user mode.Check text, Discussion
Check text
AND
OR
- /usr/lib/systemd/system/rescue.service:ExecStart is set to -/usr/lib/systemd/systemd-sulogin-shell rescue
textfilecontent54_test (check: all, existence: at_least_one_exists)
object textfilecontent54_object: pattern pattern match "^\\s*ExecStart=-\\/usr\\/lib\\/systemd\\/systemd-sulogin-shell\\srescue$"; path equals "/usr/lib/systemd/system"; filename equals "rescue.service"; instance greater than or equal "1"
- /etc/systemd/system/rescue.service.d/*.conf:ExecStart is set to -/usr/lib/systemd/systemd-sulogin-shell rescue
textfilecontent54_test (check: all, existence: at_least_one_exists)
object textfilecontent54_object: pattern pattern match "^\\s*ExecStart=-\\/usr\\/lib\\/systemd\\/systemd-sulogin-shell\\srescue$"; path equals "/etc/systemd/system/rescue.service.d"; filename pattern match "^.+\\.conf$"; instance greater than or equal "1"
Verify that OL 9 requires authentication for single-user mode with the following command:
$ grep sulogin /usr/lib/systemd/system/rescue.service
ExecStart=-/usr/lib/systemd/systemd-sulogin-shell rescue
If this line is not returned, or is commented out, this is a finding.
Discussion
To mitigate the risk of unauthorized access to sensitive information by entities that have been issued certificates by DODDoW-approved PKIs, all DODDoW systems (e.g., web servers and web portals) must be properly configured to incorporate access control methods that do not rely solely on the possession of a certificate for access. Successful authentication must not automatically give an entity access to an asset or security boundary. Authorization procedures and controls must be implemented to ensure each authenticated entity also has a validated and current authorization. Authorization is the process of determining whether an entity, once authenticated, is permitted to access a specific asset. Information systems use access control policies and enforcement mechanisms to implement this requirement.
This requirement prevents attackers with physical access from trivially bypassing security on the machine and gaining root access. Such accesses are further prevented by configuring the bootloader password.
V-271449CAT IIOL 9 Bluetooth must be disabled.Check text, Discussion
Check text
AND
- /etc/modprobe.d contains a file that contains 'install bluetooth /bin/false'
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: pattern pattern match "^[ \\t]*install[ \\t]+bluetooth[ \\t]+/bin/false[ \\t]*$"; path equals "/etc/modprobe.d"; filename pattern match ".*"; instance greater than or equal "1"
- /etc/modprobe.d contains a file that contains 'blacklist bluetooth'
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: pattern pattern match "^[ \\t]*blacklist[ \\t]+bluetooth[ \\t]*$"; path equals "/etc/modprobe.d"; filename pattern match ".*"; instance greater than or equal "1"
Verify that OL 9 disables the ability to load the Bluetooth kernel module with the following command:
$ grep -r bluetooth /etc/modprobe.conf /etc/modprobe.d/*
install bluetooth /bin/false
blacklist bluetooth
If the command does not return any output, or the line is commented out, and use of Bluetooth is not documented with the information system security officer (ISSO) as an operational requirement, this is a finding.
Discussion
This requirement applies to wireless peripheral technologies (e.g., wireless mice, keyboards, displays, etc.) used with OL 9 systems. Wireless peripherals (e.g., Wi-Fi/Bluetooth/IR keyboards, mice and pointing devices, and near field communications [NFC]) present a unique challenge by creating an open, unsecured port on a computer. Wireless peripherals must meet DODDoW requirements for wireless data transmission and be approved for use by the authorizing official (AO). Even though some wireless peripherals, such as mice and pointing devices, do not ordinarily carry information that need to be protected, modification of communications with these wireless peripherals may be used to compromise the OL 9 operating system.
Satisfies: SRG-OS-000095-GPOS-00049, SRG-OS-000300-GPOS-00118
V-271469CAT IIOL 9 must have the firewalld package installed.Check text, Discussion
Check text
AND
- oval:mil.disa.stig.linux:tst:23050500
rpminfo_test (check: all, existence: )
object rpminfo_object: name equals "firewalld"
Verify that OL 9 has the firewalld package installed with the following command:
$ dnf list --installed firewalld
Installed Packages
firewalld.noarch 1.3.4-1.0.1.el9 @anaconda
If the "firewall" package is not installed, this is a finding.
Discussion
Firewalld provides an easy and effective way to block/limit remote access to the system via ports, services, and protocols.
Remote access services, such as those providing remote access to network devices and information systems, which lack automated control capabilities, increase risk and make remote user access management difficult at best.
Remote access is access to DODDoW nonpublic information systems by an authorized user (or an information system) communicating through an external, nonorganization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless.
OL 9 functionality (e.g., SSH) must be capable of taking enforcement action if the audit reveals unauthorized activity. Automated control of remote access sessions allows organizations to ensure ongoing compliance with remote access policies by enforcing connection rules of remote access applications on a variety of information system components (e.g., servers, workstations, notebook computers, smartphones, and tablets).
Satisfies: SRG-OS-000096-GPOS-00050, SRG-OS-000297-GPOS-00115, SRG-OS-000298-GPOS-00116, SRG-OS-000480-GPOS-00232
V-271470CAT IIOL 9 must be configured so that the firewalld service is active.Check text, Discussion
Check text
AND
- The firewall daemon is active
systemdunitproperty_test (check: all, existence: at_least_one_exists)
object systemdunitproperty_object: property equals "ActiveState"; unit equals "firewalld.service"
state systemdunitproperty_state: value equals "active"
Verify that OL 9 firewalld is active with the following command:
$ systemctl is-active firewalld
active
If the firewalld service is not active, this is a finding.
Discussion
Firewalld provides an easy and effective way to block/limit remote access to the system via ports, services, and protocols.
Remote access services, such as those providing remote access to network devices and information systems, which lack automated control capabilities, increase risk and make remote user access management difficult at best.
Remote access is access to DODDoW nonpublic information systems by an authorized user (or an information system) communicating through an external, nonorganization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless.
OL 9 functionality (e.g., RDP) must be capable of taking enforcement action if the audit reveals unauthorized activity. Automated control of remote access sessions allows organizations to ensure ongoing compliance with remote access policies by enforcing connection rules of remote access applications on a variety of information system components (e.g., servers, workstations, notebook computers, smartphones, and tablets).
Satisfies: SRG-OS-000096-GPOS-00050, SRG-OS-000297-GPOS-00115
V-271485CAT IOL 9 SSH server must be configured to use only ciphers employing FIPS 140-3 validated cryptographic hash algorithms to protect the confidentiality of SSH server connections.Check text, Discussion
Check text
AND
- opensshserver.config ciphers correct
textfilecontent54_test (check: all, existence: at_least_one_exists)
object textfilecontent54_object: filepath equals "/etc/crypto-policies/back-ends/opensshserver.config"; pattern pattern match "^\\s*(?i)Ciphers(?-i)[ \\t]+(\\S+)[\\s]*(?:|(?:#.*))?$"; instance greater than or equal "1"
state textfilecontent54_state: subexpression equals "aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr"
state textfilecontent54_state: subexpression equals "\"aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr\""
Verify that OL 9 SSH server is configured to use only ciphers employing FIPS 140-3 approved algorithms.
To verify the ciphers in the systemwide SSH configuration file, use the following command:
$ sudo grep -i Ciphers /etc/crypto-policies/back-ends/opensshserver.config
Ciphers aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr
If the cipher entries in the "opensshserver.config" file have any ciphers other than "aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr", or they are missing or commented out, this is a finding.
Discussion
Without cryptographic integrity protections, information can be altered by unauthorized users without detection.
Remote access (e.g., RDP) is access to DODDoW nonpublic information systems by an authorized user (or an information system) communicating through an external, nonorganization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless.
Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the secret key used to generate the hash.
OL 9 incorporates systemwide crypto policies by default. The SSH configuration file has no effect on the ciphers, MACs, or algorithms unless specifically defined in the /etc/sysconfig/sshd file. The employed algorithms can be viewed in the /etc/crypto-policies/back-ends/opensshserver.config file.
V-271486CAT IOL 9 SSH server must be configured to use only Message Authentication Codes (MACs) employing FIPS 140-3 validated cryptographic hash algorithms to protect the confidentiality of SSH server connections.Check text, Discussion
Check text
AND
- oval:mil.disa.stig.ind:tst:25799100
textfilecontent54_test (check: all, existence: at_least_one_exists)
object textfilecontent54_object: filepath equals "/etc/crypto-policies/back-ends/opensshserver.config"; pattern pattern match "^\\s*MACs\\s+(\\S+)\\s*$"; instance greater than or equal "1"
state textfilecontent54_state: subexpression equals "hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512"
state textfilecontent54_state: subexpression equals "\"hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512\""
Verify that OL 9 SSH server is configured to use only MACs employing FIPS 140-3 approved algorithms.
To verify the MACs in the systemwide SSH configuration file, use the following command:
$ sudo grep -i MACs /etc/crypto-policies/back-ends/opensshserver.config
MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512
If the MACs entries in the "opensshserver.config" file have any hashes other than "hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512", or they are missing or commented out, this is a finding.
Discussion
Without cryptographic integrity protections, information can be altered by unauthorized users without detection.
Remote access (e.g., RDP) is access to DODDoW nonpublic information systems by an authorized user (or an information system) communicating through an external, nonorganization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless.
Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the secret key used to generate the hash.
OL 9 incorporates systemwide crypto policies by default. The SSH configuration file has no effect on the ciphers, MACs, or algorithms unless specifically defined in the /etc/sysconfig/sshd file. The employed algorithms can be viewed in the /etc/crypto-policies/back-ends/opensshserver.config file.
V-271487CAT IIOL 9 must display the Standard Mandatory DoW Notice and Consent Banner before granting local or remote access to the system via a SSH logon.Title, Check text, Fix text
Title
OL 9 must display the Standard Mandatory DODoW Notice and Consent Banner before granting local or remote access to the system via a SSH logon.
Check text
AND
- /etc/ssh/sshd_config:banner == /filepath
textfilecontent54_test (check: all, existence: at_least_one_exists)
object textfilecontent54_object:
state textfilecontent54_state: subexpression pattern match "^\\/.+$"
- /etc/ssh/sshd_config:banner != none
textfilecontent54_test (check: all, existence: none_exist)
object textfilecontent54_object:
Verify that OL 9 displays the Standard Mandatory DOD Notice and Consent Banner before granting access to the system via SSH connections.
Check for the location of the banner file currently 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'
banner /etc/issue
If the line is commented out or if the file is missing, this is a finding.
Fix text
Configure OL 9 to display the Standard Mandatory DODDoW Notice and Consent Banner before granting access to the system via ssh.
Edit the "etc/ssh/sshd_config" file or a file in "/etc/ssh/sshd_config.d" to uncomment the banner keyword and configure it to point to a file that will contain the logon banner (this file may be named differently or be in a different location if using a version of SSH that is provided by a third-party vendor).
An example configuration line is:
Banner /etc/issue
V-271489CAT IOL 9 SSH client must be configured to use only DoW-approved encryption ciphers employing FIPS 140-3 validated cryptographic hash algorithms to protect the confidentiality of SSH client connections.Title, Check text, Discussion
Title
OL 9 SSH client must be configured to use only DODDoW-approved encryption ciphers employing FIPS 140-3 validated cryptographic hash algorithms to protect the confidentiality of SSH client connections.
Check text
AND
- openssh.config ciphers correct
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: filepath equals "/etc/crypto-policies/back-ends/openssh.config"; pattern pattern match "^\\s*(?i)Ciphers(?-i)[ \\t]+(\\S+)[\\s]*(?:|(?:#.*))?$"; instance greater than or equal "1"
state textfilecontent54_state: subexpression equals "aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr"
state textfilecontent54_state: subexpression equals "\"aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr\""
Verify that OL 9 is configured so that the SSH client uses only ciphers employing FIPS 140-3 approved algorithms.
To verify the ciphers in the systemwide SSH configuration file, use the following command:
$ grep -i Ciphers /etc/crypto-policies/back-ends/openssh.config
Ciphers aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr
If the cipher entries in the "openssh.config" file have any ciphers other than "aes256-gcm@openssh.com,aes256-ctr,aes128-gcm@openssh.com,aes128-ctr", or they are missing or commented out, this is a finding.
Discussion
Without cryptographic integrity protections, information can be altered by unauthorized users without detection.
Remote access (e.g., RDP) is access to DODDoW nonpublic information systems by an authorized user (or an information system) communicating through an external, nonorganization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless.
Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the secret key used to generate the hash.
OL 9 incorporates systemwide crypto policies by default. The SSH configuration file has no effect on the ciphers, MACs, or algorithms unless specifically defined in the /etc/sysconfig/sshd file. The employed algorithms can be viewed in the /etc/crypto-policies/back-ends/opensshserver.config file.
V-271490CAT IOL 9 SSH client must be configured to use only DoW-approved Message Authentication Codes (MACs) employing FIPS 140-3 validated cryptographic hash algorithms to protect the confidentiality of SSH client connections.Title, Check text, Discussion
Title
OL 9 SSH client must be configured to use only DODDoW-approved Message Authentication Codes (MACs) employing FIPS 140-3 validated cryptographic hash algorithms to protect the confidentiality of SSH client connections.
Check text
AND
- oval:mil.disa.stig.ind:tst:27017800
textfilecontent54_test (check: all, existence: at_least_one_exists)
object textfilecontent54_object: filepath equals "/etc/crypto-policies/back-ends/openssh.config"; pattern pattern match "^\\s*MACs\\s+(\\S+)\\s*$"; instance greater than or equal "1"
state textfilecontent54_state: subexpression equals "hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512"
state textfilecontent54_state: subexpression equals "\"hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512\""
Verify that OL 9 is configured so that the SSH client uses only MACs employing FIPS 140-3 approved algorithms.
To verify the MACs in the systemwide SSH configuration file, use the following command:
$ grep -i MACs /etc/crypto-policies/back-ends/openssh.config
MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512
If the MACs entries in the "openssh.config" file have any hashes other than "hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-512", or they are missing or commented out, this is a finding.
Discussion
Without cryptographic integrity protections, information can be altered by unauthorized users without detection.
Remote access (e.g., RDP) is access to DODDoW nonpublic information systems by an authorized user (or an information system) communicating through an external, nonorganization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless.
Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the secret key used to generate the hash.
OL 9 incorporates systemwide crypto policies by default. The SSH configuration file has no effect on the ciphers, MACs, or algorithms unless specifically defined in the /etc/sysconfig/sshd file. The employed algorithms can be viewed in the /etc/crypto-policies/back-ends/opensshserver.config file.
V-271491CAT IIOL 9 must have the openssl-pkcs11 package installed.Check text, Discussion
Check text
AND
- package openssl-pkcs11 is installed
rpminfo_test (check: all, existence: all_exist)
object rpminfo_object: name equals "openssl-pkcs11"
Verify that OL 9 has the openssl-pkcs11 package installed with the following command:
$ dnf list --installed openssl-pkcs11
Installed Packages
openssl-pkcs11.x86_64 0.4.11-9.el9 @ol9_baseos_latest
If the "openssl-pkcs11" package is not installed, this is a finding.
Discussion
Without the use of multifactor authentication, the ease of access to privileged functions is greatly increased. Multifactor authentication requires using two or more factors to achieve authentication. A privileged account is defined as an information system account with authorizations of a privileged user. The DODDoW common access card (CAC) with DODDoW-approved PKI is an example of multifactor authentication.
Satisfies: SRG-OS-000105-GPOS-00052, SRG-OS-000375-GPOS-00160, SRG-OS-000376-GPOS-00161, SRG-OS-000377-GPOS-00162
V-271493CAT IIOL 9 must have the SSSD package installed.Check text, Discussion
Check text
AND
- oval:mil.disa.stig.linux:tst:27149300
rpminfo_test (check: all, existence: )
object rpminfo_object: name equals "sssd"
Verify that OL 9 has the SSSD package installed with the following command:
$ dnf list --installed sssd
Installed Packages
sssd.x86_64 2.9.5-4.0.1.el9_5.1 @ol9_baseos_latest
If the SSSD package is not installed, this is a finding.
Discussion
Using an authentication device, such as a common access card (CAC) or token that is separate from the information system, ensures that even if the information system is compromised, that compromise will not affect credentials stored on the authentication device.
Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification card and the DODDoW Common Access CardCAC.
A privileged account is defined as an information system account with authorizations of a privileged user.
Remote access is access to DODDoW nonpublic information systems by an authorized user (or an information system) communicating through an external, nonorganization-controlled network. Remote access methods include, for example, dial-up, broadband, and wireless.
This requirement only applies to components where this is specific to the function of the device or has the concept of an organizational user (e.g., VPN, proxy capability). This does not apply to authentication for the purpose of configuring the device itself (management).
Satisfies: SRG-OS-000705-GPOS-00150, SRG-OS-000105-GPOS-00052, SRG-OS-000106-GPOS-00053, SRG-OS-000107-GPOS-00054, SRG-OS-000108-GPOS-00055, SRG-OS-000375-GPOS-00160
V-271494CAT IIOL 9 must use the SSSD package for multifactor authentication services.Check text, Discussion
Check text
AND
- sssd.service is active
systemdunitproperty_test (check: all, existence: at_least_one_exists)
object systemdunitproperty_object: property equals "ActiveState"; unit equals "sssd.service"
state systemdunitproperty_state: value equals "active"
- sssd.service is enabled
systemdunitproperty_test (check: all, existence: at_least_one_exists)
object systemdunitproperty_object: property equals "UnitFileState"; unit equals "sssd.service"
state systemdunitproperty_state: value equals "enabled"
Verify that OL 9 is configured so that the sssd.service is enabled and active with the following commands:
$ sudo systemctl is-enabled sssd
enabled
$ sudo systemctl is-active sssd
active
If sssd.service is not active or enabled, this is a finding.
Discussion
Using an authentication device, such as a common access card (CAC) or token that is separate from the information system, ensures that even if the information system is compromised, that compromise will not affect credentials stored on the authentication device.
Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification card and the DODDoW Common Access CardCAC.
A privileged account is defined as an information system account with authorizations of a privileged user.
Without the use of multifactor authentication, the ease of access to privileged functions is greatly increased.
Multifactor authentication requires using two or more factors to achieve authentication.
Factors include:
1) Something a user knows (e.g., password/PIN);
2) Something a user has (e.g., cryptographic identification device, token); and
3) Something a user is (e.g., biometric).
A privileged account is defined as an information system account with authorizations of a privileged user.
Network access is defined as access to an information system by a user (or a process acting on behalf of a user) communicating through a network (e.g., local area network, wide area network, or the internet).
The DODDoW common access card (CAC) with DODDoW-approved PKI is an example of multifactor authentication.
Satisfies: SRG-OS-000705-GPOS-00150, SRG-OS-000105-GPOS-00052, SRG-OS-000106-GPOS-00053, SRG-OS-000107-GPOS-00054, SRG-OS-000108-GPOS-00055, SRG-OS-000375-GPOS-00161
V-271515CAT IIOL 9 must have the opensc package installed.Check text, Discussion
Check text
AND
- opensc package is installed
rpminfo_test (check: all, existence: at_least_one_exists)
object rpminfo_object: name equals "opensc"
Verify that OL 9 has the opensc package installed with the following command:
$ dnf list --installed opensc
Installed Packages
opensc.x86_64 0.23.0-4.el9_3 @ol9_baseos_latest
If the opensc package is not installed, this is a finding.
Discussion
The use of PIV credentials facilitates standardization and reduces the risk of unauthorized access.
The DODDoW has mandated the use of the Commoncommon Accessaccess Cardcard (CAC) to support identity management and personal authentication for systems covered under Homeland Security Presidential Directive (HSPD) 12, as well as making the CAC a primary component of layered protection for national security systems.
Satisfies: SRG-OS-000375-GPOS-00160, SRG-OS-000376-GPOS-00161
V-271569CAT IIOL 9 must use cryptographic mechanisms to protect the integrity of audit tools.Check text, Fix text
Check text
AND
- oval:mil.disa.stig.ind:tst:23047500
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: filepath equals "/etc/aide.conf"; pattern pattern match "^\\s*/usr/sbin/auditctl\\s+\\S+"; instance greater than or equal "1"
- oval:mil.disa.stig.ind:tst:23047501
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: filepath equals "/etc/aide.conf"; pattern pattern match "^\\s*/usr/sbin/auditd\\s+\\S+"; instance greater than or equal "1"
- oval:mil.disa.stig.ind:tst:23047502
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: filepath equals "/etc/aide.conf"; pattern pattern match "^\\s*/usr/sbin/ausearch\\s+\\S+"; instance greater than or equal "1"
- oval:mil.disa.stig.ind:tst:23047503
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: filepath equals "/etc/aide.conf"; pattern pattern match "^\\s*/usr/sbin/aureport\\s+\\S+"; instance greater than or equal "1"
- oval:mil.disa.stig.ind:tst:23047504
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: filepath equals "/etc/aide.conf"; pattern pattern match "^\\s*/usr/sbin/autrace\\s+\\S+"; instance greater than or equal "1"
- oval:mil.disa.stig.ind:tst:23047505
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: filepath equals "/etc/aide.conf"; pattern pattern match "^\\s*/usr/sbin/augenrules\\s+\\S+"; instance greater than or equal "1"
Verify OL 9 uses cryptographic mechanisms to protect the integrity of the audit tools with the following command:
$ sudo cat /etc/aide.conf | grep /usr/sbin/au
/usr/sbin/auditctl p+i+n+u+g+s+b+acl+xattrs+sha512
/usr/sbin/auditd p+i+n+u+g+s+b+acl+xattrs+sha512
/usr/sbin/ausearch p+i+n+u+g+s+b+acl+xattrs+sha512
/usr/sbin/aureport p+i+n+u+g+s+b+acl+xattrs+sha512
/usr/sbin/autrace p+i+n+u+g+s+b+acl+xattrs+sha512
/usr/sbin/augenrules p+i+n+u+g+s+b+acl+xattrs+sha512
If AIDE is not installed, ask the system administrator (SA) how file integrity checks are performed on the system.
If any of the audit tools listed above do not have a corresponding line, ask the SA to indicate what cryptographic mechanisms are being used to protect the integrity of the audit tools. If there is no evidence of integrity protection, this is a finding.
Fix text
Configure OL 9 to use cryptographic mechanisms to protect the integrity of the audit tools.
AddCreate ora updatededicated configuration directory for custom security rules if it does not already exist:
$ sudo mkdir -p /etc/aide/aide.conf.d
Ensure the followingmain linesconfiguration file (/etc/aide.conf) is configured to include files from this directory. Edit "/etc/aide.conf" and verify the following line exists at the bottom of the file:
@@include /etc/aide/aide.conf.d/90-stig_audit_tools
Create the dedicated audit tools configuration file:
$ sudo vi /etc/aide/aide.conf.d/90-stig_audit_tools
Populate the file with the following configuration rules:
# 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
If any of the audit tools listed above are already defined inside the main "/etc/aide.conf" file, comment those lines out to prevent duplicate definition conflicts.
Initialize the updated baseline database and promote it to production:
$ sudo aide --init
Rename the new database:
$ sudo cp -p /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
V-271587CAT IIOL 9 must allow only the information system security manager (ISSM) (or individuals or roles appointed by the ISSM) to select which auditable events are to be audited.Check text, Fix text
Check text
AND
- /etc/audit/auditd.conf has mode 0600 or less permissive
file_test (check: all, existence: )
object file_object: filepath equals "/etc/audit/auditd.conf"
state file_state: gexec equals "false"; oread equals "false"; uexec equals "false"; sticky equals "false"; sgid equals "false"; suid equals "false"; oexec equals "false"; owrite equals "false"; gread equals "false"; gwrite equals "false"
- .rules files in /etc/audit/rules.d have mode 0600 or less permissive
file_test (check: all, existence: )
object file_object: path equals "/etc/audit/rules.d"; filename pattern match ".rules$"
state file_state: gexec equals "false"; oread equals "false"; uexec equals "false"; sticky equals "false"; sgid equals "false"; suid equals "false"; oexec equals "false"; owrite equals "false"; gread equals "false"; gwrite equals "false"
- /etc/audit/audit.rules has mode 0600 or less permissive
file_test (check: all, existence: )
object file_object: filepath equals "/etc/audit/audit.rules"
state file_state: gexec equals "false"; oread equals "false"; uexec equals "false"; sticky equals "false"; sgid equals "false"; suid equals "false"; oexec equals "false"; owrite equals "false"; gread equals "false"; gwrite equals "false"
Verify that OL 9 sets files in directories "/etc/audit/rules.d/" and "/etc/audit/auditd.conf" files to have a mode of "0640" or less permissive with the following command:
$ sudo stat -c "%a %n" /etc/audit/rules.d/*.rules
$ sudo sh -c 'stat -c "%a %n" /etc/audit/rules.d/*.rules'
600 /etc/audit/rules.d/audit.rules
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 text
Configure the rules files in the directory "/etc/audit/rules.d/", the /etc/audit/audit.rules file, and the "/etc/audit/auditd.conf" file to have a mode of "0600" with the following commands:
$ sudo chmodfind 0600 /etc/audit/rules.d/audit -type f -name "*.rules" -exec chmod 0600 {} +
$ sudo chmod 0600 /etc/audit/rulesaudit.d/[customrulesfile].rules
$ sudo chmod 0600 /etc/audit/auditd.conf
V-271607CAT IIOL 9 must enable certificate-based smart card authentication.Check text, Discussion
Check text
AND
- sssd.conf: pam_cert_auth = True
textfilecontent54_test (check: all, existence: at_least_one_exists)
object textfilecontent54_object:
state textfilecontent54_state: subexpression case insensitive equals "true"
Verify that OL 9 has smart cards enabled in System Security Services Daemon (SSSD) if smart cards are used for MFA with the following command:
$ sudo grep pam_cert_auth /etc/sssd/sssd.conf
pam_cert_auth = True
If "pam_cert_auth" is not set to "True", the line is commented out, or the line is missing, this is a finding.
Discussion
Without the use of multifactor authentication (MFA), the ease of access to privileged functions is greatly increased. MultifactorMFA authentication requires using two or more factors to achieve authentication. A privileged account is defined as an information system account with authorizations of a privileged user. The DODDoW Commoncommon Accessaccess Cardcard (CAC) with DODDoW-approved PKI is an example of multifactor authentication.
Satisfies: SRG-OS-000375-GPOS-00160, SRG-OS-000105-GPOS-00052
V-271608CAT IIOL 9 must implement certificate status checking for multifactor authentication (MFA).Check text, Discussion
Check text
AND
- sssd config: certificate_verification: ocsp_dgst=sha512
textfilecontent54_test (check: all, existence: at_least_one_exists)
object textfilecontent54_object:
state textfilecontent54_state: subexpression pattern match "(?i)(^|,)ocsp_dgst=sha512(,|$)"
Verify that OL 9 implements Online Certificate Status Protocol (OCSP) and is 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=sha512
If the certificate_verification line is missing from the [sssd] section, or is missing "ocsp_dgst=sha512", ask the administrator to indicate what type of multifactor authentication is being used and how the system implements certificate status checking. If there is no evidence of certificate status checking being used, this is a finding.
Discussion
Using an authentication device, such as a DODDoW Commoncommon Accessaccess Cardcard (CAC) or token that is separate from the information system, ensures that even if the information system is compromised, credentials stored on the authentication device will not be affected.
Multifactor solutions that require devices separate from information systems gaining access include, for example, hardware tokens providing time-based or challenge-response authenticators and smart cards such as the U.S. Government Personal Identity Verification (PIV) card and the DODDoW CAC.
OL 9 includes multiple options for configuring certificate status checking, but for this requirement focuses on the System Security Services Daemon (SSSD). By default, SSSD performs Online Certificate Status Protocol (OCSP) checking and certificate verification using a sha256 digest function.
Satisfies: SRG-OS-000375-GPOS-00160, SRG-OS-000377-GPOS-00162
V-271624CAT IIOL 9 pam_unix.so module must be configured in the password-auth file to use a FIPS 140-3 approved cryptographic hashing algorithm for system authentication.Check text, Discussion
Check text
AND
- /etc/pam.d/password-auth:password includes pam_unix.so sha512
textfilecontent54_test (check: all, existence: only_one_exists)
object textfilecontent54_object: pattern pattern match "^[ \\t]*password[ \\t]+sufficient[ \\t]+pam_unix\\.so(?:[ \\t]+|(?:[ \\t][^#\\r\\f\\n]+[ \\t]))sha512(?:[ \\t]|$)"; path equals "/etc/pam.d"; filename equals "password-auth"; instance greater than or equal "1"
Verify that OL 9 pam_unix.so module is configured to use sha512 in /etc/pam.d/password-auth with the following command:
$ grep "^password.*pam_unix.so.*sha512" /etc/pam.d/password-auth
password sufficient pam_unix.so sha512
If "sha512" is missing, or the line is commented out, this is a finding.
Discussion
Unapproved mechanisms that are used for authentication to the cryptographic module are not verified and therefore, cannot be relied upon to provide confidentiality or integrity, and DODDoW data may be compromised.
OL 9 systems using encryption are required to use FIPS-compliant mechanisms for authenticating to cryptographic modules.
FIPS 140-3 is the current standard for validating that mechanisms used to access cryptographic modules use authentication that meets DODDoW requirements. This allows for Security Levels 1, 2, 3, or 4 for use on a general-purpose computing system.
V-271631CAT IIOL 9 user account passwords for new users or password changes must have a 180-day maximum password lifetime restriction in /etc/login.defs.Title, Check text, Fix text
Title
OL 9 user account passwords for new users or password changes must have a 6180-day maximum password lifetime restriction in /etc/login.defs.
Check text
AND
- oval:mil.disa.stig.ind:tst:25804100
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: filepath equals "/etc/login.defs"; pattern pattern match "^[ \\st]*PASS_MAX_DAYS[ \\st]+(\\d+)[ \\t]*$"; instance greater than or equal "1"
state textfilecontent54_state: subexpression greater than "0"
state textfilecontent54_state: subexpression less than or equal "60180"
Verify that OL 9 enforces a 60-day maximum password lifetime for new user accounts by running the following command:
$ grep -i pass_max_days /etc/login.defs
PASS_MAX_DAYS 60
If the "PASS_MAX_DAYS" parameter value is greater than "60", or commented out, this is a finding.
Fix text
Configure OL 9 to enforce a 6180-day maximum password lifetime.
Add or modify the following line in the "/etc/login.defs" file:
PASS_MAX_DAYS 6180
V-271632CAT IIOL 9 user account passwords must have a 180-day maximum password lifetime restriction.Title, Check text, Fix text
Title
OL 9 user account passwords must have a 6180-day maximum password lifetime restriction.
Check text
AND
- No password in /etc/shadow has a maximum password age of 0 or greater than 60180
shadow_test (check: all, existence: any_exist)
object shadow_object: filter equals "oval:mil.disa.stig.unix:ste:23036702"; username pattern match ".+"
state shadow_state: chg_req greater than "0"
state shadow_state: chg_req less than or equal "60180"
- Root password in /etc/shadow does not have a maximum password age of 0 or greater than 60180
shadow_test (check: all, existence: all_exist)
object shadow_object: username equals "root"
state shadow_state: chg_req greater than "0"
state shadow_state: chg_req less than or equal "60180"
Verify that OL 9 user account passwords have a 60-day maximum password lifetime restriction 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 text
Configure OL 9 so that noncompliant accounts to enforce a 6180-day maximum password lifetime restriction.
$ sudo passwd -x 6180 [user]
V-271633CAT IIOL 9 passwords must be created with a minimum of 15 characters.Check text, Discussion
Check text
AND
- passwords must have a minimum of 15 characters
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object:
state textfilecontent54_state: subexpression greater than or equal "15"
Verify that OL 9 enforces a minimum 15-character password length with the following command:
$ grep minlen /etc/security/pwquality.conf /etc/security/pwquality.conf.d/*.conf
minlen = 15
If the command does not return a "minlen" value of "15" or greater, does not return a line, or the line is commented out, this is a finding.
Discussion
The shorter the password, the lower the number of possible combinations that need to be tested before the password is compromised.
Password complexity, or strength, is a measure of the effectiveness of a password in resisting attempts at guessing and brute-force attacks. Password length is one factor of several that helps to determine strength and how long it takes to crack a password. Use of more characters in a password helps to increase exponentially the time and/or resources required to compromise the password.
OL 9 uses "pwquality" as a mechanism to enforce password complexity. Configurations are set in the "etc/security/pwquality.conf" file.
The "minlen", sometimes noted as minimum length, acts as a "score" of complexity based on the credit components of the "pwquality" module. By setting the credit components to a negative value, not only will those components be required, but they will not count toward the total "score" of "minlen". This will enable "minlen" to require a 15-character minimum.
The DODDoW minimum password requirement is 15 characters.
V-271635CAT IIOL 9 must require authentication upon booting into single-user and maintenance modes.Title, Check text, Discussion
Title
OL 9 must require a boot loader superuser password.OL 9 must require authentication upon booting into single-user and maintenance modes.
Check text
AND
- /etc/grub2.cfg:superusers exists and has a name.
textfilecontent54_test (check: all, existence: all_exist)
object textfilecontent54_object: filepath equals "/etc/grub2.cfg"; pattern pattern match "^\\s*set\\s+superusers\\s*=\\s*\"(\\S+)\"\\s*$"; instance greater than or equal "1"
state textfilecontent54_state: subexpression pattern match "^\\S+$"
OR
- /boot/grub2/user.cfg:GRUB2_PASSWORD exists and has a PBKDF2/SHA512 password assigned.
textfilecontent54_test (check: all, existence: all_exist)
object textfilecontent54_object: filepath equals "/boot/grub2/user.cfg"; pattern pattern match "^\\s*GRUB2_PASSWORD=(\\S+)\\b"; instance greater than or equal "1"
state textfilecontent54_state: subexpression pattern match "^grub\\.pbkdf2\\.sha512\\."
Verify - that OL 9 requires a /boot loader superuser password with the following command:
$ sudo grep "superusers" /etcefi/grub2EFI/redhat/user.cfg
password_pbkdf2 superusers-account ${:GRUB2_PASSWORD}
To verifyexists theand boothas loadera superuserPBKDF2/SHA512 account password hasassigned.
textfilecontent54_test been(check: setall, andexistence: theall_exist)
object password encrypted, run the following commandtextfilecontent54_object:
$ sudofilepath catequals "/boot/grub2efi/EFI/redhat/user.cfg";
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.C4E08AC72FBFF7E837FD267BFAD7AEB3D42DDC
2C99F2A94DD5E2E75C2DC331B719FE55D9411745F82D1B6CFD9E927D61925F9BBDD1CFAA0080E0
916F7AB46E0D.1302284FCCC52CD73BA3671C6C12C26FF50BA873293B24EE2A96EE3B57963E6D7
0C83964B473EC8F93B07FE749AA6710269E904A9B08A6BBACB00A2D242AD828pattern
Ifpattern amatch "^\\s*GRUB2_PASSWORD=(\\S+)\\b"; isinstance notgreater set,than thisor isequal a"1"
state findingtextfilecontent54_state: subexpression pattern match "^grub\\.pbkdf2\\.sha512\\."
Discussion
To mitigate the risk of unauthorized access to sensitive information by entities that have been issued certificates by DODDoW-approved PKIs, all DODDoW systems (e.g., web servers and web portals) must be properly configured to incorporate access control methods that do not rely solely on the possession of a certificate for access. Successful authentication must not automatically give an entity access to an asset or security boundary. Authorization procedures and controls must be implemented to ensure each authenticated entity also has a validated and current authorization. Authorization is the process of determining whether an entity, once authenticated, is permitted to access a specific asset. Information systems use access control policies and enforcement mechanisms to implement this requirement.
Password protection on the boot loader configuration ensures users with physical access cannot trivially alter important bootloader settings. These include which kernel to use, and whether to enter single-user mode.
V-271639CAT IIThe OL 9 file system automounter must be disabled.Title, Check text, Discussion
Title
The OL 9 file system automounter function must be disabled unless required.
Check text
AND
OR
AND
- The autofs.service LoadState is inactivemasked if it exists.
systemdunitproperty_test (check: all, existence: any_exist)
object systemdunitproperty_object: property equals "ActiveStateLoadState"; unit equals "autofs.service"
state systemdunitproperty_state: value equals "inactivemasked"
Verify - thatautofs.service OLUnitFileState 9is filemasked systemif automountit functionexists.
systemdunitproperty_test has(check: beenall, disabledexistence: andany_exist)
object maskedsystemdunitproperty_object: withproperty theequals following"UnitFileState"; command:
$unit systemctlequals is-enabled "autofs.service"
masked
If state thesystemdunitproperty_state: returned value isequals not "masked"
- andautofs.service UnitFileState is notdisabled documentedif asit operationalexists.
systemdunitproperty_test requirement(check: withall, theexistence: informationany_exist)
object systemsystemdunitproperty_object: securityproperty officerequals (ISSO),"UnitFileState"; thisunit isequals a finding"autofs.service"
state systemdunitproperty_state: value equals "disabled"
Discussion
AnWithout authenticationidentifying processdevices, resistsunidentified replayor attacksunknown ifdevices itmay isbe impracticalintroduced, tothereby achievefacilitating amalicious successfulactivity.
Peripherals authenticationinclude, bybut recordingare andnot replayinglimited ato, previoussuch authenticationdevices messageas flash drives, external storage, and printers.
Satisfies: SRG-OS-000114-GPOS-00059, SRG-OS-000378-GPOS-00163
V-271688CAT IIOL 9 must be configured to enable the display of the Standard Mandatory DoW Notice and Consent Banner before granting local or remote access to the system via a graphical user logon.Title, Check text, Fix text
Title
OL 9 must be configured to enable the display of the Standard Mandatory DODDoW Notice and Consent Banner before granting local or remote access to the system via a graphical user logon.
Check text
AND
- /etc/dconf/db/local.d/* has banner-message-enable set to true
textfilecontent54_test (check: all, existence: all_exist)
object textfilecontent54_object: pattern pattern match "^\\s*banner-message-enable\\s*=\\s*(\\w+)$"; path equals "/etc/dconf/db/local.d"; filename pattern match ".*"; instance greater than or equal "1"
state textfilecontent54_state: subexpression equals "true"
This requirement assumes the use of the OL 9 default graphical user interface—the GNOME desktop environment. If the system does not have any graphical user interface installed, this requirement is Not Applicable.
Verify that OL 9 displays a banner before granting access to the operating system via a graphical user logon.
Determine if the operating system displays a banner at the logon screen with the following command:
$ gsettings get org.gnome.login-screen banner-message-enable
true
If the result is "false", this is a finding.
Fix text
Configure OL 9 to display the Standard Mandatory DODDoW Notice and Consent Banner before granting access to the system via a graphical user logon.
Create a database to contain the system-widesystemwide 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
V-271700CAT IIIOL 9 must enable Linux audit logging for the USBGuard daemon.Check text, Discussion
Check text
AND
- oval:mil.disa.stig.ind:tst:23047000
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: filepath equals "/etc/usbguard/usbguard-daemon.conf"; pattern pattern match "^\\s*AuditBackend\\s*=\\s*(\\w+)\\s*(?:#.*)?$"; instance greater than or equal "1"
state textfilecontent54_state: subexpression equals "LinuxAudit"
Verify that OL 9 Linux Audit logging is enabled for the USBGuard daemon with the following command:
$ sudo grep AuditBackend /etc/usbguard/usbguard-daemon.conf
AuditBackend=LinuxAudit
If "AuditBackend" is not set to "LinuxAudit", this is a finding.
Discussion
Without the capability to generate audit records, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one.
If auditing is enabled late in the startup process, the actions of some startup processes may not be audited. Some audit systems also maintain state information only available if auditing is enabled before a given process is created.
Audit records can be generated from various components within the information system (e.g., module or policy filter).
The list of audited events is the set of events for which audits are to be generated. This set of events is typically a subset of the list of all events for which the system is capable of generating audit records.
DODDoW has defined the list of events for which OL 9 will provide an audit record generation capability as the following:
1. Successful and unsuccessful attempts to access, modify, or delete privileges, security objects, security levels, or categories of information (e.g., classification levels);
2. Access actions, such as successful and unsuccessful logon attempts, privileged activities or other system-level access, starting and ending time for user access to the system, concurrent logons from different workstations, successful and unsuccessful accesses to objects, all program initiations, and all direct access to the information system;
3. All account creations, modifications, disabling, and terminations; and
4. All kernel module load, unload, and restart actions.
V-271721CAT IIOL 9 SSHD must accept public key authentication.Check text, Discussion
Check text
AND
OR
AND
- sshd_config includes sshd_config.d
textfilecontent54_test (check: at least one, existence: at_least_one_exists)
object textfilecontent54_object: pattern pattern match "^\\s*include\\s+(.*)\\s*$"; instance greater than or equal "1"; filepath equals "/etc/ssh/sshd_config"; behaviors equals ""
state textfilecontent54_state: subexpression equals "/etc/ssh/sshd_config.d/*.conf"
- /etc/ssh/sshd_config.d: PubkeyAuthentication is set to yes
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: pattern pattern match "^\\s*(?i)PubkeyAuthentication(?-i)[ \\t]+([\\w\\\"]+)[\\s]*(?:|(?:#.*))?$"; path equals "/etc/ssh/sshd_config.d"; filename pattern match "^.+\\.conf$"; instance greater than or equal "1"; behaviors equals ""
state textfilecontent54_state: subexpression pattern match "^(yes|\"yes\")$"
- /etc/ssh/sshd_config: PubkeyAuthentication is set to yes
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: pattern pattern match "^\\s*(?i)PubkeyAuthentication(?-i)[ \\t]+([\\w\\\"]+)[\\s]*(?:|(?:#.*))?$"; instance greater than or equal "1"; filepath equals "/etc/ssh/sshd_config"; behaviors equals ""
state textfilecontent54_state: subexpression pattern match "^(yes|\"yes\")$"
Verify that OL 9 SSH daemon accepts public key encryption with the following command:
$ sudo grep -i PubkeyAuthentication /etc/ssh/sshd_config
PubkeyAuthentication yes
If "PubkeyAuthentication" is set to no, the line is commented out, or the line is missing, this is a finding.
Discussion
Without the use of multifactor authentication, the ease of access to privileged functions is greatly increased. Multifactor authentication requires using two or more factors to achieve authentication. A privileged account is defined as an information system account with authorizations of a privileged user. A DODDoW CAC with DODDoW-approved PKI is an example of multifactor authentication.
Satisfies: SRG-OS-000105-GPOS-00052, SRG-OS-000106-GPOS-00053, SRG-OS-000107-GPOS-00054, SRG-OS-000108-GPOS-00055
V-271722CAT IIOL 9 must require reauthentication when using the "sudo" command.Check text, Fix text
Check text
AND
- Defaults timestamp_timeout is configured to a positive number in /etc/sudoers or /etc/sudoers.d.
textfilecontent54_test (check: all, existence: only_one_exists)
object textfilecontent54_object:
state textfilecontent54_state: subexpression equals "0"
Verify that OL 9 requires reauthentication when using the "sudo" command to elevate privileges with the following command:
$ sudo grep -i 'timestamp_timeout' /etc/sudoers /etc/sudoers.d/*
/etc/sudoers:Defaults timestamp_timeout=0
If results are returned from more than one file location, this is a finding.
If "timestamp_timeout" is set to a negative number, is commented out, or no results are returned, this is a finding.
Fix text
Configure OLthe 9OS to reauthenticate "sudo"every commandsinvocation afterof the specified"sudo" timeout:command.
Add the following line to "/etc/sudoers" or a file in "/etc/sudoers.d":
Defaults timestamp_timeout=0
Remove any duplicate definitions.
V-271745CAT IIOL 9 must restrict access to the kernel message buffer.Check text, Discussion
Check text
AND
- kernel.dmesg_restrict setting in kernel is 1
sysctl_test (check: all, existence: all_exist)
object sysctl_object: name equals "kernel.dmesg_restrict"
state sysctl_state: value equals "1"
Verify that OL 9 is configured to restrict access to the kernel message buffer with the following commands:
Check the status of the kernel.dmesg_restrict kernel parameter.
$ sudo sysctl kernel.dmesg_restrict
kernel.dmesg_restrict = 1
If "kernel.dmesg_restrict" is not set to "1" or is missing, this is a finding.
Discussion
Preventing unauthorized information transfers mitigates the risk of information, including encrypted representations of information, produced by the actions of prior users/roles (or the actions of processes acting on behalf of prior users/roles) from being available to any current users/roles (or current processes) that obtain access to shared system resources (e.g., registers, main memory, hard disks) after those resources have been released back to information systems. The control of information in shared resources is also commonly referred to as object reuse and residual information protection.
This requirement generally applies to the design of an information technology product, but it can also apply to the configuration of particular information system components that are, or use, such products. This can be verified by acceptance/validation processes in DODDoW or other government agencies.
There may be shared resources with configurable protections (e.g., files in storage) that may be assessed on specific information system components.
Restricting access to the kernel message buffer limits access to only root. This prevents attackers from gaining additional system information as a nonprivileged user.
Satisfies: SRG-OS-000132-GPOS-00067, SRG-OS-000138-GPOS-00069
V-271746CAT IIOL 9 must prevent kernel profiling by nonprivileged users.Check text, Discussion
Check text
AND
- kernel.perf_event_paranoid setting in kernel is 2
sysctl_test (check: all, existence: all_exist)
object sysctl_object: name equals "kernel.perf_event_paranoid"
state sysctl_state: value equals "2"
Verify that OL 9 is configured to prevent kernel profiling by nonprivileged users with the following commands:
Check the status of the kernel.perf_event_paranoid kernel parameter.
$ 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.
Discussion
Preventing unauthorized information transfers mitigates the risk of information, including encrypted representations of information, produced by the actions of prior users/roles (or the actions of processes acting on behalf of prior users/roles) from being available to any current users/roles (or current processes) that obtain access to shared system resources (e.g., registers, main memory, hard disks) after those resources have been released back to information systems. The control of information in shared resources is also commonly referred to as object reuse and residual information protection.
This requirement generally applies to the design of an information technology product, but it can also apply to the configuration of particular information system components that are, or use, such products. This can be verified by acceptance/validation processes in DODDoW or other government agencies.
There may be shared resources with configurable protections (e.g., files in storage) that may be assessed on specific information system components.
Setting the kernel.perf_event_paranoid kernel parameter to "2" prevents attackers from gaining additional system information as a nonprivileged user.
Satisfies: SRG-OS-000132-GPOS-00067, SRG-OS-000138-GPOS-00069
V-271751CAT IOL 9 must be configured so that the systemd Ctrl-Alt-Delete burst key sequence is disabled.Check text, Fix text
Check text
AND
- /etc/systemd/system.conf:CtrlAltDelBurstAction is set to none.
textfilecontent54_test (check: all, existence: at_least_one_exists)
object textfilecontent54_object:
state textfilecontent54_state: subexpression equals "none"
Verify OL 9 is configured to not reboot the system when Ctrl-Alt-Delete is pressed seven times within two seconds with the following command:
$ sudo grep -iR CtrlAltDelBurstAction /etc/systemd/system*
/etc/systemd/system.conf.d/55-CtrlAltDel-BurstAction:CtrlAltDelBurstAction=none
If the "CtrlAltDelBurstAction" is not set to "none", commented out, or is missing, this is a finding.
Fix text
Configure OL 9 to disable the CtrlAltDelBurstAction by adding it to a dropconfig file in athe "/etc/systemd/system.conf.d/" configurationdrop-in filedirectory:
If no drop-in filedirectory exists, create one with the following command:
$ sudo mkdir -p /etc/systemd/system.conf.d && sudotouch vi /etc/systemd/system.conf.d/55-CtrlAltDel-BurstAction.conf
EditAdd the filesetting to contain the setting by adding the following textfile:
$ echo "CtrlAltDelBurstAction=none
Reload" the>> daemon for this change to take effect/etc/systemd/system.
$ sudo systemctl daemonconf.d/55-reloadCtrlAltDel-BurstAction.conf
V-271759CAT IOL 9 must implement DoW-approved encryption in the bind package.Title, Check text, Discussion
Title
OL 9 must implement DODoW-approved encryption in the bind package.
Check text
AND
- named.conf includes crypto-policy
textfilecontent54_test (check: at least one, existence: at_least_one_exists)
object textfilecontent54_object: filepath equals "/etc/named.conf"; pattern pattern match "^\\s*include\\s+\"(.*)\"\\s*;\\s*$"; instance greater than or equal "1"
state textfilecontent54_state: subexpression equals "/etc/crypto-policies/back-ends/bind.config"
Note: If the "bind" package is not installed, this requirement is Not Applicable.
Verify that OL 9 BIND uses the system crypto policy with the following command:
$ sudo grep include /etc/named.conf
include "/etc/crypto-policies/back-ends/bind.config";'
If BIND is installed and the BIND config file does not include the "/etc/crypto-policies/back-ends/bind.config" directive, or the line is commented out, this is a finding.
Discussion
Without cryptographic integrity protections, information can be altered by unauthorized users without detection.
Cryptographic mechanisms used for protecting the integrity of information include, for example, signed hash functions using asymmetric cryptography enabling distribution of the public key to verify the hash information while maintaining the confidentiality of the secret key used to generate the hash.
OL 9 incorporates system-widesystemwide crypto policies by default. The employed algorithms can be viewed in the /etc/crypto-policies/back-ends/ directory.
Satisfies: SRG-OS-000423-GPOS-00187, SRG-OS-000426-GPOS-00190
V-271845CAT IIOL 9 system accounts must not have an interactive login shell.Check text, Fix text
Check text
AND
- The system accounts other than root have the login shell configured to /sbin/nologin.
password_test (check: all, existence: )
object password_object:
state password_state: login_shell pattern match "/sbin/nologin|/usr/sbin/nologin"
Verify that OL 9 configures system accounts to not have an interactive login shell with the following command:
$ awk -F: '($3<1000){print $1 ":" $3 ":" $7}' /etc/passwd
root:0:/bin/bash
bin:1:/sbin/nologin
daemon:2:/sbin/nologin
adm:3:/sbin/nologin
lp:4:/sbin/nologin
Identify the system accounts from this listing that do not have a nologin shell.
If any system account (other than the root account) has a login shell and it is not documented with the information system security officer (ISSO), this is a finding.
Fix text
Configure OL 9 so that all noninteractive accounts on the system do not have an interactive shell assigned to them.
If the system account needs a shell assigned for mission operations, document the need with the information system security officer (ISSO).
Run the following command to disable the interactive shell for a specific noninteractive user account:
Replace <user> with the user that has a login shell.
$ sudo usermod --shell /usr/sbin/nologin <user>
Do not perform the steps in this section on the root account. Doing so will cause the system to become inaccessible.
V-279935CAT IIOL 9 must terminate idle user sessions.Check text
Check text
AND
- The system terminates idle user sessions.
textfilecontent54_test (check: all, existence: )
object textfilecontent54_object: filepath equals "/etc/systemd/logind.conf"; pattern pattern match "^\\s*StopIdleSessionSec\\s*=\\s*(-?\\d*)\\s*(?:#.*)?$"; instance greater than or equal "1"
state textfilecontent54_state: subexpression equals "600"
Verify that OL 9 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.
How these changes are found
Rules are matched across the two benchmark releases by their STIG V-number. A rule counts as updated when its rule id changed and its title, severity, discussion, fix text or OVAL check logic changed — the same comparison SCAP Compare makes.
Comparing other releases, or this one against an older release? Pick any two in SCAP Compare.