Ubuntu 24.04 — Implemented CIS Rules
This page lists every CIS Benchmark rule ImageFactory automates for Ubuntu 24.04, exactly as implemented by the hardening tasks. See CIS Benchmarks for background on Level 1 vs. Level 2, and CIS Hardening Exceptions for rules that are intentionally not automated.
Level 1 (150 rules)
Section 1 — Initial Setup
| Rule ID | Title |
|---|---|
| 1.1.1.1 | Ensure mounting of cramfs filesystems is disabled |
| 1.1.1.9 | Ensure usb-storage kernel module is not available |
| 1.1.1.11 | Ensure firewire-core kernel module is not available |
| 1.1.2.1 | Ensure /tmp is a separate partition |
| 1.1.2.2 | Configure /dev/shm |
| 1.1.2.3.2 | Ensure nodev option set on /home partition |
| 1.3.1.1 | Ensure AppArmor is installed |
| 1.3.1.2 | Ensure AppArmor is enabled in the bootloader configuration |
| 1.3.1.3 | Ensure all AppArmor Profiles are in enforce or complain mode |
| 1.4.2 | Ensure access to bootloader config is configured |
| 1.5.1 | Ensure address space layout randomization is enabled |
| 1.5.3 | Ensure core dumps are restricted |
| 1.5.5 | Ensure kernel.dmesg_restrict is configured |
| 1.5.7 | Ensure Automatic Error Reporting is not enabled |
| 1.5.10 | Ensure systemd-coredump ProcessSizeMax is configured |
| 1.5.11 | Ensure systemd-coredump Storage is configured |
| 1.6.1 | Ensure message of the day is configured properly |
| 1.6.2 | Ensure local login warning banner is configured properly |
| 1.6.3 | Ensure remote login warning banner is configured properly |
| 1.6.4 | Ensure access on /etc/motd are configured |
| 1.6.5 | Ensure access on /etc/issue are configured |
| 1.6.6 | Ensure access on /etc/issue.net are configured |
| 1.6.7 | Ensure pam_motd is configured |
Section 2 — Services
| Rule ID | Title |
|---|---|
| 2.1.2 | avahi-daemon |
| 2.1.3 | Ensure dhcp server services are not in use |
| 2.1.4 | Ensure dns server services are not in use |
| 2.1.6 | Ensure ftp server services are not in use |
| 2.1.7 | Ensure ldap server services are not in use |
| 2.1.8 | Ensure message access server services are not in use |
| 2.1.10 | Ensure nis server services are not in use |
| 2.1.11 | Ensure print server services are not in use |
| 2.1.12 | Ensure rpcbind services are not in use |
| 2.1.14 | Ensure samba file server services are not in use |
| 2.1.15 | Ensure snmp services are not in use |
| 2.1.16 | Ensure rsync service is not installed |
| 2.1.17 | Ensure web proxy server services are not in use |
| 2.1.18 | Ensure web server services are not in use |
| 2.1.21 | Ensure mail transfer agent is configured for local-only mode |
| 2.2.1 | Ensure NIS Client is not installed |
| 2.2.2 | Ensure rsh client is not installed |
| 2.2.3 | Ensure talk client is not installed |
| 2.2.4 | Ensure telnet client is not installed |
| 2.2.5 | Ensure LDAP client is not installed |
| 2.2.6 | Ensure ftp client is not installed |
| 2.3.1.1 | Ensure a single time synchronization daemon is in use |
| 2.3.3.1 | Ensure chrony is configured |
| 2.4.1 | Ensure cron daemon is enabled and running |
| 2.4.1.2 | Ensure permissions on /etc/crontab are configured |
| 2.4.1.3 | Ensure permissions on /etc/cron.hourly are configured |
| 2.4.1.4 | Ensure permissions on /etc/cron.daily are configured |
| 2.4.1.5 | Ensure permissions on /etc/cron.weekly are configured |
| 2.4.1.6 | Ensure permissions on /etc/cron.monthly are configured |
| 2.4.1.7 | Ensure permissions on /etc/cron.yearly are configured |
| 2.4.1.8 | Ensure crontab is restricted to authorized users |
| 2.4.2.1 | Ensure at is restricted to authorized users |
Section 3 — Network Configuration
| Rule ID | Title |
|---|---|
| 3.1.2 | Ensure wireless interfaces are disabled |
| 3.2.1 | Ensure atm kernel module is not available |
| 3.2.2 | Ensure can kernel module is not available |
| 3.3.1 | Ensure IP forwarding is disabled |
| 3.3.2 | Ensure packet redirect sending is disabled |
| 3.3.3 | Ensure bogus icmp responses are ignored |
| 3.3.4 | Ensure broadcast icmp requests are ignored |
| 3.3.5 | Ensure icmp redirects are not accepted |
| 3.3.6 | Ensure secure icmp redirects are not accepted |
| 3.3.7 | Ensure Reverse Path Filtering is enabled |
| 3.3.8 | Ensure source routed packets are not accepted |
| 3.3.9 | Ensure suspicious packets are logged |
| 3.3.10 | Ensure TCP SYN Cookies is enabled |
| 3.3.11 | Ensure IPv6 router advertisements are not accepted |
Section 4
| Rule ID | Title |
|---|---|
| 4.2 | Remove ufw |
| 4.3 | Ensure nftables is removed |
| 4.4.1 | Configure iptables software |
| 4.4.2 | Configure IPv4 iptables |
| 4.4.3 | Configure IPv6 iptables |
Section 5
| Rule ID | Title |
|---|---|
| 5.1.1 | Ensure permissions on /etc/ssh/sshd_config are configured |
| 5.1.2 | Ensure permissions on SSH private host key files are configured |
| 5.1.3 | Ensure permissions on SSH public host key files are configured |
| 5.1.4 | Ensure sshd access is configured |
| 5.1.5 | Ensure sshd Banner is configured |
| 5.1.6 | Ensure sshd Ciphers are configured |
| 5.1.7 | Ensure sshd ClientAliveInterval and ClientAliveCountMax are configured |
| 5.1.10 | Ensure sshd HostbasedAuthentication is disabled |
| 5.1.11 | Ensure sshd IgnoreRhosts is enabled |
| 5.1.12 | Ensure sshd KexAlgorithms is configured |
| 5.1.13 | Ensure sshd LoginGraceTime is configured |
| 5.1.14 | Ensure sshd LogLevel is configured |
| 5.1.15 | Ensure sshd MACs are configured |
| 5.1.16 | Ensure sshd MaxAuthTries is configured |
| 5.1.18 | Ensure sshd MaxStartups is configured |
| 5.1.19 | Ensure sshd PermitEmptyPasswords is disabled |
| 5.1.20 | Ensure sshd PermitRootLogin is disabled |
| 5.1.21 | Ensure sshd PermitUserEnvironment is disabled |
| 5.1.22 | Ensure sshd UsePAM is enabled |
| 5.2.1 | Ensure sudo is installed |
| 5.2.2 | Ensure sudo commands use pty |
| 5.2.3 | Ensure sudo log file exists |
| 5.2.7 | Ensure access to the su command is restricted |
| 5.3.1.3 | Ensure libpam-pwquality is installed |
| 5.3.2.2 | Ensure pam_faillock module is enabled |
| 5.3.3.1.1 | Ensure password failed attempts lockout is configured |
| 5.3.3.1.2 | Ensure password unlock time is configured |
| 5.3.3.2.1 | Ensure password creation requirements are configured |
| 5.3.3.2.2 | Ensure lockout for failed password attempts is configured |
| 5.3.3.2.3 | Ensure password hashing algorithm is SHA-512 |
| 5.3.3.2.4 | Ensure password reuse is limited |
| 5.3.3.3.1 | Ensure password history remember is configured |
| 5.3.3.3.2 | Ensure password history is enforced for the root user |
| 5.3.3.3.3 | Ensure pam_pwhistory includes use_authtok |
| 5.3.3.4.1 | Ensure pam_unix does not include nullok |
| 5.4.2.4 | Ensure root password is set |
| 5.4.2.5 | Ensure root path integrity |
| 5.4.3.2 | Ensure default user shell timeout is configured |
| 5.4.3.3 | Ensure default user umask is configured |
| 5.4.4 | Ensure password hashing algorithm is up to date with the latest standards |
| 5.5.1.1 | Ensure minimum days between password changes is configured (set PASS_MIN_DAYS {{ password['expiration']['min_days'] }} in /etc/login.defs) | OS independent |
| 5.5.1.2 | Ensure password expiration is 365 days or less |
| 5.5.1.3 | Ensure password expiration warning days is 7 or more |
| 5.5.1.4 | Ensure inactive password lock is 30 days or less |
| 5.5.2 | Ensure system accounts are secured |
| 5.5.3 | Ensure default group for the root account is GID 0 |
Section 6
| Rule ID | Title |
|---|---|
| 6.1.2.1.1 | Ensure systemd-journal-remote is installed |
| 6.1.2.1.3 | Ensure systemd-journal-upload is enabled and active |
| 6.1.2.2 | Ensure journald ForwardToSyslog is disabled |
| 6.1.2.3 | Ensure journald Compress is configured |
| 6.1.2.4 | Ensure journald Storage is configured |
| 6.1.3.1 | Ensure rsyslog is installed |
| 6.1.3.2 | Ensure rsyslog Service is enabled |
| 6.1.3.4 | Ensure rsyslog default file permissions configured |
| 6.1.4.1 | Ensure access to all logfiles has been configured |
| 6.2.1.1 | Ensure audit log files are mode 0640 or less permissive |
| 6.2.1.2 | Ensure only authorized users own audit log files |
| 6.2.1.3 | Ensure only authorized groups are assigned ownership of audit log files |
| 6.2.1.4 | Ensure the audit log directory is 0750 or more restrictive |
| 6.2.1.5 | Ensure audit configuration files are 640 or more restrictive |
| 6.2.1.6 | Ensure audit configuration files are owned by root |
| 6.2.1.7 | Ensure audit configuration files belong to group root |
| 6.2.1.8 | Ensure audit tools are 755 or more restrictive |
| 6.2.1.9 | Ensure audit tools are owned by root |
| 6.2.1.10 | Ensure audit tools belong to group root |
| 6.2.1.11 | Ensure cryptographic mechanisms are used to protect the integrity of audit tools |
| 6.3.1 | Ensure AIDE is installed |
| 6.3.2 | Ensure filesystem integrity is regularly checked |
Section 7
| Rule ID | Title |
|---|---|
| 7.1.2 | Ensure permissions on /etc/passwd- are configured |
| 7.1.3 | Ensure permissions on /etc/group are configured |
| 7.1.4 | Ensure permissions on /etc/group- are configured |
| 7.1.5 | Ensure permissions on /etc/shadow are configured |
| 7.1.6 | Ensure permissions on /etc/shadow- are configured |
| 7.1.7 | Ensure permissions on /etc/gshadow are configured |
| 7.1.8 | Ensure permissions on /etc/gshadow- are configured |
| 7.2.9 | Ensure users' home directories permissions are 750 or more restrictive |
Level 2 (41 rules)
Section 1 — Initial Setup
| Rule ID | Title |
|---|---|
| 1.1.1.6 | Ensure overlayfs kernel module is not available |
| 1.1.1.7 | Ensure squashfs kernel module is not available |
| 1.1.1.8 | Ensure udf kernel module is not available |
| 1.2.1.5 | Ensure weak dependencies are configured |
| 1.3.1.2 | Ensure AppArmor is enabled in the bootloader configuration |
| 1.3.1.3 | Ensure all AppArmor Profiles are enforcing |
| 1.3.1.4 | Ensure apparmor_restrict_unprivileged_unconfined is enabled |
Section 3 — Network Configuration
| Rule ID | Title |
|---|---|
| 3.2.1 | Ensure dccp kernel module is not available |
| 3.2.2 | Ensure tipc kernel module is not available |
| 3.2.3 | Ensure rds kernel module is not available |
| 3.2.4 | Ensure sctp kernel module is not available |
Section 5
| Rule ID | Title |
|---|---|
| 5.1.8 | Ensure sshd DisableForwarding is enabled |
| 5.3.3.1.3 | Ensure password failed attempts lockout includes root account |
Section 6
| Rule ID | Title |
|---|---|
| 6.1.2.8 | Ensure rsyslog-gnutls is installed |
| 6.2.1.1 | Ensure auditd packages are installed |
| 6.2.1.2 | Ensure auditd service is enabled and active |
| 6.2.1.4 | Ensure audit_backlog_limit is sufficient |
| 6.2.2.1 | Ensure audit log storage size is configured |
| 6.2.2.2 | Ensure audit logs are not automatically deleted |
| 6.2.2.3 | Ensure system is disabled when audit logs are full |
| 6.2.2.4 | Ensure system warns when audit logs are low on space |
| 6.2.3.1 | Ensure changes to system administration scope (sudoers) is collected |
| 6.2.3.2 | Ensure actions as another user are always logged |
| 6.2.3.3 | Ensure events that modify the sudo log file are collected |
| 6.2.3.4 | Ensure events that modify date and time information are collected |
| 6.2.3.5 | Ensure events that modify the system's network environment are collected |
| 6.2.3.6 | Ensure use of privileged commands are collected |
| 6.2.3.7 | Ensure unsuccessful file access attempts are collected |
| 6.2.3.8 | Ensure events that modify user/group information are collected |
| 6.2.3.9 | Ensure discretionary access control permission modification events are collected |
| 6.2.3.10 | Ensure successful file system mounts are collected |
| 6.2.3.11 | Ensure session initiation information is collected |
| 6.2.3.12 | Ensure login and logout events are collected |
| 6.2.3.13 | Ensure file deletion events by users are collected |
| 6.2.3.14 | Ensure events that modify the system's Mandatory Access Controls are collected |
| 6.2.3.15 | 6.2.3.15 - 6.2.3.17 | Ensure successful and unsuccessful attempts to use the chcon command are recorded |
| 6.2.3.16 | 6.2.3.15 - 6.2.3.17 | Ensure successful and unsuccessful attempts to use the chcon command are recorded |
| 6.2.3.17 | 6.2.3.15 - 6.2.3.17 | Ensure successful and unsuccessful attempts to use the chcon command are recorded |
| 6.2.3.18 | Ensure successful and unsuccessful attempts to use the usermod command are recorded |
| 6.2.3.19 | Ensure kernel module loading unloading and modification is collected |
| 6.2.3.20 | Ensure the audit configuration is immutable |