CIS Fedora 40 Benchmark

Secure configuration guidelines for Fedora Linux 40 Workstation and Server

v1.0.0 October 2024

Overview

▶

This CIS Benchmark provides prescriptive guidance for establishing a secure configuration posture for Fedora Linux 40. Recommendations cover initial setup, filesystem configuration, services, network parameters, SSH and PAM hardening, and system maintenance.

~280Recommendations
6Sections
2Profile Levels
SectionAreaFocus
1Initial SetupFilesystem, packages
2ServicesUnnecessary daemons
3NetworkParameters, firewalld
4Loggingauditd, journald
5AccessSSH, PAM, passwords
6MaintenanceFile perms, user accounts

Profile Definitions

▶
ProfileDescriptionIntended Use
L1Level 1 — StandardEssential security for all Fedora 40 deployments; minimal performance impact.
L2Level 2 — HardenedAdvanced hardening for PCI-DSS, HIPAA, or high-security environments.

1 — Initial Setup

▶

1.1 Filesystem Configuration

▶
1.1.1 Ensure /tmp Is a Separate Partition (Automated)
L1 Auto
Description

This recommendation verifies that /tmp Is a Separate Partition on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that /tmp Is a Separate Partition:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set /tmp Is a Separate Partition:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

1.1.2 Ensure nodev Option Is Set on /tmp Partition (Automated)
L1 Auto
Description

This recommendation verifies that nodev Option Is Set on /tmp Partition on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that nodev Option Is Set on /tmp Partition:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set nodev Option Is Set on /tmp Partition:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

1.1.3 Ensure nosuid Option Is Set on /tmp Partition (Automated)
L1 Auto
Description

This recommendation verifies that nosuid Option Is Set on /tmp Partition on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that nosuid Option Is Set on /tmp Partition:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set nosuid Option Is Set on /tmp Partition:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

1.1.4 Ensure noexec Option Is Set on /tmp Partition (Automated)
L1 Auto
Description

This recommendation verifies that noexec Option Is Set on /tmp Partition on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that noexec Option Is Set on /tmp Partition:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set noexec Option Is Set on /tmp Partition:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

1.1.5 Ensure /var Is a Separate Partition (Automated)
L2 Auto
Description

This recommendation verifies that /var Is a Separate Partition on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that /var Is a Separate Partition:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set /var Is a Separate Partition:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

1.1.6 Ensure /var/tmp Is a Separate Partition (Automated)
L2 Auto
Description

This recommendation verifies that /var/tmp Is a Separate Partition on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that /var/tmp Is a Separate Partition:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set /var/tmp Is a Separate Partition:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

1.2 Package Manager & Updates

▶
1.2.1 Ensure GPG Keys Are Configured for DNF (Automated)
L1 Auto
Description

This recommendation verifies that GPG Keys Are Configured for DNF on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that GPG Keys Are Configured for DNF:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set GPG Keys Are Configured for DNF:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

1.2.2 Ensure gpgcheck Is Globally Activated (Automated)
L1 Auto
Description

This recommendation verifies that gpgcheck Is Globally Activated on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that gpgcheck Is Globally Activated:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set gpgcheck Is Globally Activated:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

1.2.3 Ensure Automatic Updates Are Configured (Automated)
L1 Auto
Description

This recommendation verifies that Automatic Updates Are Configured on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Automatic Updates Are Configured:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Automatic Updates Are Configured:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

1.2.4 Ensure Package Integrity Is Verified (Automated)
L1 Auto
Description

This recommendation verifies that Package Integrity Is Verified on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Package Integrity Is Verified:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Package Integrity Is Verified:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

2 — Services

▶

2.1 Unnecessary Services

▶
2.1.1 Ensure xinetd Is Not Installed (Automated)
L1 Auto
Description

This recommendation verifies that xinetd Is Not Installed on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that xinetd Is Not Installed:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set xinetd Is Not Installed:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

2.1.2 Ensure Avahi Server Is Not Running (Automated)
L1 Auto
Description

This recommendation verifies that Avahi Server Is Not Running on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that Avahi Server Is Not Running:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Avahi Server Is Not Running:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

2.1.3 Ensure CUPS Is Not Running Unless Required (Automated)
L1 Auto
Description

This recommendation verifies that CUPS Is Not Running Unless Required on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that CUPS Is Not Running Unless Required:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set CUPS Is Not Running Unless Required:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

2.1.4 Ensure DHCP Server Is Not Running Unless Required (Automated)
L1 Auto
Description

This recommendation verifies that DHCP Server Is Not Running Unless Required on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that DHCP Server Is Not Running Unless Required:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set DHCP Server Is Not Running Unless Required:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

2.1.5 Ensure DNS Server Is Not Running Unless Required (Automated)
L1 Auto
Description

This recommendation verifies that DNS Server Is Not Running Unless Required on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that DNS Server Is Not Running Unless Required:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set DNS Server Is Not Running Unless Required:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

2.2 Service Clients

▶
2.2.1 Ensure NIS Client Is Not Installed (Automated)
L1 Auto
Description

This recommendation verifies that NIS Client Is Not Installed on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that NIS Client Is Not Installed:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set NIS Client Is Not Installed:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

2.2.2 Ensure rsh Client Is Not Installed (Automated)
L1 Auto
Description

This recommendation verifies that rsh Client Is Not Installed on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that rsh Client Is Not Installed:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set rsh Client Is Not Installed:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

2.2.3 Ensure telnet Client Is Not Installed (Automated)
L1 Auto
Description

This recommendation verifies that telnet Client Is Not Installed on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that telnet Client Is Not Installed:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set telnet Client Is Not Installed:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

2.2.4 Ensure LDAP Client Is Not Installed Unless Required (Automated)
L1 Auto
Description

This recommendation verifies that LDAP Client Is Not Installed Unless Required on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that LDAP Client Is Not Installed Unless Required:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set LDAP Client Is Not Installed Unless Required:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

3 — Network Configuration

▶

3.1 Network Parameters (Host)

▶
3.1.1 Ensure IP Forwarding Is Disabled (Automated)
L1 Auto
Description

This recommendation verifies that IP Forwarding Is Disabled on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that IP Forwarding Is Disabled:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set IP Forwarding Is Disabled:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

3.1.2 Ensure Packet Redirect Sending Is Disabled (Automated)
L1 Auto
Description

This recommendation verifies that Packet Redirect Sending Is Disabled on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that Packet Redirect Sending Is Disabled:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Packet Redirect Sending Is Disabled:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

3.1.3 Ensure Source Routed Packets Are Not Accepted (Automated)
L1 Auto
Description

This recommendation verifies that Source Routed Packets Are Not Accepted on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Source Routed Packets Are Not Accepted:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Source Routed Packets Are Not Accepted:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

3.1.4 Ensure ICMP Redirects Are Not Accepted (Automated)
L1 Auto
Description

This recommendation verifies that ICMP Redirects Are Not Accepted on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that ICMP Redirects Are Not Accepted:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set ICMP Redirects Are Not Accepted:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

3.1.5 Ensure Secure ICMP Redirects Are Not Accepted (Automated)
L1 Auto
Description

This recommendation verifies that Secure ICMP Redirects Are Not Accepted on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Secure ICMP Redirects Are Not Accepted:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Secure ICMP Redirects Are Not Accepted:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

3.2 Firewall Configuration

▶
3.2.1 Ensure firewalld Is Installed and Running (Automated)
L1 Auto
Description

This recommendation verifies that firewalld Is Installed and Running on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that firewalld Is Installed and Running:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set firewalld Is Installed and Running:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

3.2.2 Ensure Default Zone Is Set to Drop or Block (Automated)
L1 Auto
Description

This recommendation verifies that Default Zone Is Set to Drop or Block on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Default Zone Is Set to Drop or Block:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Default Zone Is Set to Drop or Block:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

3.2.3 Ensure Unnecessary Services Are Removed from Zones (Automated)
L1 Auto
Description

This recommendation verifies that Unnecessary Services Are Removed from Zones on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that Unnecessary Services Are Removed from Zones:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Unnecessary Services Are Removed from Zones:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

3.2.4 Ensure nftables Backend Is Configured (Automated)
L1 Auto
Description

This recommendation verifies that nftables Backend Is Configured on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that nftables Backend Is Configured:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set nftables Backend Is Configured:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

4 — Logging & Auditing

▶

4.1 Configure Auditing

▶
4.1.1 Ensure auditd Is Installed and Enabled (Automated)
L1 Auto
Description

This recommendation verifies that auditd Is Installed and Enabled on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that auditd Is Installed and Enabled:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set auditd Is Installed and Enabled:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

4.1.2 Ensure Audit Log Storage Size Is Configured (Automated)
L1 Auto
Description

This recommendation verifies that Audit Log Storage Size Is Configured on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Audit Log Storage Size Is Configured:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Audit Log Storage Size Is Configured:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

4.1.3 Ensure System Administration Actions Are Audited (Automated)
L1 Auto
Description

This recommendation verifies that System Administration Actions Are Audited on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that System Administration Actions Are Audited:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set System Administration Actions Are Audited:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

4.1.4 Ensure Login and Logout Events Are Collected (Automated)
L1 Auto
Description

This recommendation verifies that Login and Logout Events Are Collected on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Login and Logout Events Are Collected:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Login and Logout Events Are Collected:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

4.1.5 Ensure Session Initiation Information Is Collected (Automated)
L2 Auto
Description

This recommendation verifies that Session Initiation Information Is Collected on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Session Initiation Information Is Collected:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Session Initiation Information Is Collected:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

4.2 Configure Logging

▶
4.2.1 Ensure journald Is Configured to Write to Persistent Storage (Automated)
L1 Auto
Description

This recommendation verifies that journald Is Configured to Write to Persistent Storage on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that journald Is Configured to Write to Persistent Storage:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set journald Is Configured to Write to Persistent Storage:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

4.2.2 Ensure journald Is Configured to Compress Large Log Files (Automated)
L1 Auto
Description

This recommendation verifies that journald Is Configured to Compress Large Log Files on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that journald Is Configured to Compress Large Log Files:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set journald Is Configured to Compress Large Log Files:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

4.2.3 Ensure Remote Logging Is Configured (Automated)
L1 Auto
Description

This recommendation verifies that Remote Logging Is Configured on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Remote Logging Is Configured:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Remote Logging Is Configured:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

4.2.4 Ensure Log File Permissions Are Configured (Automated)
L1 Auto
Description

This recommendation verifies that Log File Permissions Are Configured on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Log File Permissions Are Configured:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Log File Permissions Are Configured:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

5 — Access & Authentication

▶

5.1 SSH Server Configuration

▶
5.1.1 Ensure SSH Protocol Is Set to 2 (Automated)
L1 Auto
Description

This recommendation verifies that SSH Protocol Is Set to 2 on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that SSH Protocol Is Set to 2:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set SSH Protocol Is Set to 2:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

5.1.2 Ensure SSH Root Login Is Disabled (Automated)
L1 Auto
Description

This recommendation verifies that SSH Root Login Is Disabled on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that SSH Root Login Is Disabled:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set SSH Root Login Is Disabled:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

5.1.3 Ensure SSH PermitEmptyPasswords Is Disabled (Automated)
L1 Auto
Description

This recommendation verifies that SSH PermitEmptyPasswords Is Disabled on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that SSH PermitEmptyPasswords Is Disabled:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set SSH PermitEmptyPasswords Is Disabled:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

5.1.4 Ensure SSH MaxAuthTries Is Set to 4 or Less (Automated)
L1 Auto
Description

This recommendation verifies that SSH MaxAuthTries Is Set to 4 or Less on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that SSH MaxAuthTries Is Set to 4 or Less:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set SSH MaxAuthTries Is Set to 4 or Less:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

5.1.5 Ensure SSH Idle Timeout Interval Is Configured (Automated)
L1 Auto
Description

This recommendation verifies that SSH Idle Timeout Interval Is Configured on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that SSH Idle Timeout Interval Is Configured:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set SSH Idle Timeout Interval Is Configured:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

5.1.6 Ensure SSH X11 Forwarding Is Disabled (Automated)
L2 Auto
Description

This recommendation verifies that SSH X11 Forwarding Is Disabled on the Fedora 40 Linux operating system. Disabling or removing unnecessary components reduces the attack surface and limits potential vectors for exploitation.

Rationale

Running unnecessary components on the Fedora 40 Linux operating system increases the attack surface and the risk of exploitation. Disabling or removing them follows the principle of least functionality and reduces exposure to known vulnerabilities.

Audit

Run the following command and verify that SSH X11 Forwarding Is Disabled:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set SSH X11 Forwarding Is Disabled:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

5.2 PAM & Password Settings

▶
5.2.1 Ensure Password Creation Requirements Are Configured (Automated)
L1 Auto
Description

This recommendation verifies that Password Creation Requirements Are Configured on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Password Creation Requirements Are Configured:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Password Creation Requirements Are Configured:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

5.2.2 Ensure Password Reuse Is Limited (Automated)
L1 Auto
Description

This setting ensures that Password Reuse Is Limited on the Fedora 40 Linux operating system. Restricting this capability limits potential abuse and enforces the principle of least privilege across the environment.

Rationale

Unrestricted access to this capability could allow unauthorized users or processes to perform actions beyond their intended scope. Applying least-privilege principles to the Fedora 40 Linux operating system is essential for defense in depth.

Audit

Run the following command and verify that Password Reuse Is Limited:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Password Reuse Is Limited:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

5.2.3 Ensure Password Hashing Algorithm Is SHA-512 or Yescrypt (Automated)
L1 Auto
Description

This recommendation verifies that Password Hashing Algorithm Is SHA-512 or Yescrypt on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Password Hashing Algorithm Is SHA-512 or Yescrypt:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Password Hashing Algorithm Is SHA-512 or Yescrypt:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

5.2.4 Ensure Lockout for Failed Password Attempts Is Configured (Automated)
L1 Auto
Description

This recommendation verifies that Lockout for Failed Password Attempts Is Configured on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Lockout for Failed Password Attempts Is Configured:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Lockout for Failed Password Attempts Is Configured:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

6 — System Maintenance

▶

6.1 File Permissions

▶
6.1.1 Ensure Permissions on /etc/passwd Are Configured (Automated)
L1 Auto
Description

This recommendation verifies that Permissions on /etc/passwd Are Configured on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Permissions on /etc/passwd Are Configured:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Permissions on /etc/passwd Are Configured:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

6.1.2 Ensure Permissions on /etc/shadow Are Configured (Automated)
L1 Auto
Description

This recommendation verifies that Permissions on /etc/shadow Are Configured on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Permissions on /etc/shadow Are Configured:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Permissions on /etc/shadow Are Configured:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

6.1.3 Ensure Permissions on /etc/group Are Configured (Automated)
L1 Auto
Description

This recommendation verifies that Permissions on /etc/group Are Configured on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to properly configure this setting may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Permissions on /etc/group Are Configured:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Permissions on /etc/group Are Configured:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

6.1.4 Ensure No World-Writable Files Exist (Automated)
L1 Auto
Description

This recommendation verifies that No World-Writable Files Exist on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that No World-Writable Files Exist:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set No World-Writable Files Exist:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

6.2 User & Group Settings

▶
6.2.1 Ensure No Accounts Have Empty Passwords (Automated)
L1 Auto
Description

This recommendation verifies that No Accounts Have Empty Passwords on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that No Accounts Have Empty Passwords:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set No Accounts Have Empty Passwords:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

6.2.2 Ensure Root Is the Only UID 0 Account (Automated)
L1 Auto
Description

This recommendation verifies that Root Is the Only UID 0 Account on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that Root Is the Only UID 0 Account:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set Root Is the Only UID 0 Account:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

6.2.3 Ensure All Users Home Directories Exist (Automated)
L1 Auto
Description

This recommendation verifies that All Users Home Directories Exist on the Fedora 40 Linux operating system. Using the recommended component or protocol ensures alignment with security best practices and reduces risk.

Rationale

Using an insecure or legacy component instead of the recommended approach increases the risk of compromise. Ensuring the Fedora 40 Linux operating system uses the correct component aligns with industry best practices and standards.

Audit

Run the following command and verify that All Users Home Directories Exist:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set All Users Home Directories Exist:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.

6.2.4 Ensure No Duplicate UIDs Exist (Automated)
L1 Auto
Description

This recommendation verifies that No Duplicate UIDs Exist on the Fedora 40 Linux operating system. Implementing this control strengthens the overall security configuration and reduces exposure to potential threats.

Rationale

Failure to implement this control may leave the Fedora 40 Linux operating system vulnerable to attack or non-compliant with organizational security policies. This control helps establish a consistent, hardened configuration baseline.

Audit

Run the following command and verify that No Duplicate UIDs Exist:

grep -r ... /etc/
stat /path/to/file
Alternatively, use systemctl status for service-based checks.

Remediation

Edit the appropriate configuration file and set No Duplicate UIDs Exist:

vi /etc/...
systemctl restart ...
Alternatively, apply the change via Ansible or a configuration management tool.