Ubuntu 18.04 — Implemented CIS Rules
This page lists every CIS Benchmark rule ImageFactory automates for Ubuntu 18.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 (138 rules)
Section 1 — Initial Setup
| Rule ID | Title |
|---|---|
| 1.1.1.1 | Ensure mounting of cramfs filesystems is disabled |
| 1.1.1.2 | Ensure mounting of freevxfs filesystems is disabled |
| 1.1.1.3 | Ensure mounting of jffs2 filesystems is disabled |
| 1.1.1.4 | Ensure mounting of hfs filesystems is disabled |
| 1.1.1.5 | Ensure mounting of hfsplus filesystems is disabled |
| 1.1.2.1 | 1.1.2.1 - 1.1.2.4 | Ensure /tmp is configured, Ensure noexec,nodev,nosuid option set on /tmp partition |
| 1.1.2.2 | 1.1.2.1 - 1.1.2.4 | Ensure /tmp is configured, Ensure noexec,nodev,nosuid option set on /tmp partition |
| 1.1.2.3 | 1.1.2.1 - 1.1.2.4 | Ensure /tmp is configured, Ensure noexec,nodev,nosuid option set on /tmp partition |
| 1.1.2.4 | 1.1.2.1 - 1.1.2.4 | Ensure /tmp is configured, Ensure noexec,nodev,nosuid option set on /tmp partition |
| 1.1.7.2 | Ensure nodev option set on /home partition |
| 1.1.8.1 | 1.1.8.1 - 1.1.8.3 | Ensure nodev, nosuid, noexec option set on /dev/shm partition |
| 1.1.8.2 | 1.1.8.1 - 1.1.8.3 | Ensure nodev, nosuid, noexec option set on /dev/shm partition |
| 1.1.8.3 | 1.1.8.1 - 1.1.8.3 | Ensure nodev, nosuid, noexec option set on /dev/shm partition |
| 1.1.10 | Disable USB Storage |
| 1.2.1 | Ensure AIDE is installed |
| 1.2.2 | Ensure filesystem integrity is regularly checked |
| 1.4.1 | Ensure permissions on bootloader config are not overridden |
| 1.4.2 | Ensure permissions on bootloader config are configured |
| 1.5.2 | Ensure core dumps are restricted |
| 1.5.3 | Ensure address space layout randomization (ASLR) is enabled |
| 1.5.4 | Ensure prelink is disabled |
| 1.5.5 | Ensure Automatic Error Reporting is not enabled |
| 1.6.1.1 | Ensure AppArmor is installed |
| 1.6.1.2 | Ensure AppArmor is enabled in the bootloader configuration |
| 1.7.1 | Ensure message of the day is configured properly |
| 1.7.2 | Ensure permissions on /etc/issue.net are configured |
| 1.7.3 | Ensure permissions on /etc/issue are configured |
| 1.7.4 | Ensure permissions on /etc/motd are configured |
| 1.7.5 | Ensure remote login warning banner is configured properly |
| 1.7.6 | Ensure local login warning banner is configured properly |
Section 2 — Services
| Rule ID | Title |
|---|---|
| 2.1.3.1 | Ensure systemd-timesyncd configured with authorized timeserver |
| 2.1.3.2 | Ensure systemd-timesyncd is configured - GCP excluded |
| 2.2.2 | avahi-daemon |
| 2.2.3 | Ensure CUPS is not installed |
| 2.2.4 | Ensure DHCP Server is not installed |
| 2.2.5 | Ensure LDAP server is not installed |
| 2.2.6 | Ensure NFS is not installed |
| 2.2.7 | Ensure DNS Server is not installed |
| 2.2.8 | Ensure FTP Server is not installed |
| 2.2.9 | Ensure HTTP server is not installed |
| 2.2.10 | Ensure IMAP and POP3 server are not installedd |
| 2.2.11 | Ensure Samba is not installed |
| 2.2.12 | Ensure HTTP Proxy Server is not installed |
| 2.2.13 | Ensure SNMP Server is not installed |
| 2.2.14 | Ensure NIS Server is not installed |
| 2.2.16 | Ensure mail transfer agent is configured for local-only mode |
| 2.2.17 | Ensure rsync service is not installed |
| 2.3.1 | Ensure NIS Client is not installed |
| 2.3.2 | Ensure rsh client is not installed |
| 2.3.3 | Ensure talk client is not installed |
| 2.3.4 | Ensure telnet client is not installed |
| 2.3.5 | Ensure LDAP client is not installed |
| 2.3.6 | Ensure RPC is not installed |
Section 3 — Network Configuration
| Rule ID | Title |
|---|---|
| 3.1.2 | Ensure wireless interfaces are disabled |
| 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 secure ICMP redirects are not accepted |
| 3.3.6 | Ensure 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 |
| 3.5.1.1 | Ensure ufw is installed |
| 3.5.1.2 | Ensure iptables-persistent is not installed with ufw |
| 3.5.3.1.1 | Ensure iptables packages are installed |
| 3.5.3.1.2 | Ensure nftables is not installed with iptables |
| 3.5.3.2 | Configure IPv4 iptables | Create iptables directory |
| 3.5.3.2.3 | Ensure iptables default deny firewall policy |
| 3.5.3.3.3 | Ensure iptables default deny firewall policy |
Section 4
| Rule ID | Title |
|---|---|
| 4.1.1 | Ensure cron daemon is enabled and running |
| 4.1.2 | Ensure permissions on /etc/crontab are configured |
| 4.1.3 | Ensure permissions on /etc/cron.hourly are configured |
| 4.1.4 | Ensure permissions on /etc/cron.daily are configured |
| 4.1.5 | Ensure permissions on /etc/cron.weekly are configured |
| 4.1.6 | Ensure permissions on /etc/cron.monthly are configured |
| 4.1.7 | Ensure permissions on /etc/cron.d are configured |
| 4.1.8 | Ensure cron is restricted to authorized users |
| 4.1.9 | Ensure at is restricted to authorized users |
| 4.2.1 | Ensure permissions on /etc/ssh/sshd_config are configured |
| 4.2.2 | Ensure permissions on SSH private host key files are configured |
| 4.2.3 | Ensure permissions on SSH public host key files are configured |
| 4.2.4 | Ensure SSH access is limited |
| 4.2.5 | Ensure SSH LogLevel is appropriate |
| 4.2.6 | Ensure SSH PAM is enabled |
| 4.2.7 | Ensure SSH root login is disabled |
| 4.2.8 | Ensure SSH HostbasedAuthentication is disabled |
| 4.2.9 | Ensure SSH PermitEmptyPasswords is disabled |
| 4.2.10 | Ensure SSH PermitUserEnvironment is disabled |
| 4.2.11 | Ensure SSH IgnoreRhosts is enabled |
| 4.2.13 | Ensure only strong Ciphers are used |
| 4.2.14 | Ensure only strong MAC algorithms are used |
| 4.2.15 | Ensure only strong Key Exchange algorithms are used |
| 4.2.17 | Ensure SSH warning banner is configured |
| 4.2.18 | Ensure SSH MaxAuthTries is set to 4 or less |
| 4.2.19 | Ensure SSH MaxStartups is configured |
| 4.2.20 | Ensure SSH LoginGraceTime is set to one minute or less |
| 4.2.21 | Ensure SSH MaxSessions is set to 10 or less |
| 4.2.22 | Ensure SSH Idle Timeout Interval is configured |
| 4.3.1 | Ensure sudo is installed |
| 4.3.2 | Ensure sudo commands use pty |
| 4.3.3 | Ensure sudo log file exists |
| 4.4 | Ensure logrotate assigns appropriate permissions |
| 4.4.1 | Ensure password creation requirements are configured |
| 4.4.2 | Ensure lockout for failed password attempts is configured |
| 4.4.3 | Ensure password reuse is limited |
| 4.4.4 | Ensure strong password hashing algorithm is configured |
| 4.5.1.1 | Ensure minimum days between password changes is configured |
| 4.5.1.2 | Ensure password expiration is 365 days or less |
| 4.5.1.3 | Ensure password expiration warning days is 7 or more |
| 4.5.1.4 | Ensure inactive password lock is 30 days or less |
| 4.5.2 | Ensure system accounts are secured |
| 4.5.3 | Ensure default group for the root account is GID 0 |
| 4.5.4 | Ensure default user umask is 027 or more restrictive |
| 4.5.5 | Ensure default user shell timeout is configured |
Section 5
| Rule ID | Title |
|---|---|
| 5.1.1.3 | Ensure journald is configured to compress large log files |
| 5.1.2.1 | Ensure rsyslog is installed |
| 5.1.2.2 | Ensure rsyslog Service is enabled |
| 5.1.2.3 | Ensure journald is configured to send logs to rsyslog |
| 5.1.2.4 | Ensure rsyslog default file permissions configured |
| 5.1.3 | Ensure all logfiles have appropriate access configured |
| 5.2.4.11 | Ensure cryptographic mechanisms are used to protect the integrity of audit tools |
| 5.7 | Ensure access to the su command is restricted |
Section 6
| Rule ID | Title |
|---|---|
| 6.1.1 | Ensure permissions on /etc/passwd are configured |
| 6.1.2 | Ensure permissions on /etc/passwd- are configured |
| 6.1.3 | Ensure permissions on /etc/group are configured |
| 6.1.4 | Ensure permissions on /etc/group- are configured |
| 6.1.5 | Ensure permissions on /etc/shadow are configured |
| 6.1.6 | Ensure permissions on /etc/shadow- are configured |
| 6.1.7 | Ensure permissions on /etc/gshadow are configured |
| 6.1.8 | Ensure permissions on /etc/gshadow- are configured |
| 6.1.9 | Ensure permissions on /etc/opasswd are configured |
| 6.1.10 | Ensure world writable files and directories are secured |
| 6.1.11 | Ensure no unowned files or directories exist |
| 6.1.12 | Ensure no ungrouped files or directories exist |
| 6.2.6 | Ensure users' home directories permissions are 750 or more restrictive |
Level 2 (34 rules)
Section 1 — Initial Setup
| Rule ID | Title |
|---|---|
| 1.1.1.7 | Ensure mounting of udf filesystems is disabled |
| 1.6.4 | Ensure all AppArmor Profiles are enforcing |
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 4
| Rule ID | Title |
|---|---|
| 4.2.7 | Ensure sshd DisableForwarding is enabled |
Section 5
| Rule ID | Title |
|---|---|
| 5.2.1.1 | Ensure auditd is installed |
| 5.2.1.2 | Ensure auditd service is enabled |
| 5.2.1.3 | Ensure auditing for processes that start prior to auditd is enabled |
| 5.2.1.4 | Ensure audit_backlog_limit is sufficient |
| 5.2.2.1 | Ensure audit log storage size is configured |
| 5.2.2.2 | Ensure audit logs are not automatically deleted |
| 5.2.2.3 | Ensure system is disabled when audit logs are full |
| 5.2.3.1 | Ensure changes to system administration scope (sudoers) is collected |
| 5.2.3.2 | Ensure actions as another user are always logged |
| 5.2.3.3 | Ensure events that modify the sudo log file are collected |
| 5.2.3.4 | Ensure events that modify date and time information are collected |
| 5.2.3.5 | Ensure events that modify the system's network environment are collected |
| 5.2.3.6 | Ensure use of privileged commands are collected |
| 5.2.3.7 | Ensure unsuccessful file access attempts are collected |
| 5.2.3.8 | Ensure events that modify user/group information are collected |
| 5.2.3.9 | Ensure discretionary access control permission modification events are collected |
| 5.2.3.10 | Ensure successful file system mounts are collected |
| 5.2.3.11 | Ensure session initiation information is collected |
| 5.2.3.12 | Ensure login and logout events are collected |
| 5.2.3.13 | Ensure file deletion events by users are collected |
| 5.2.3.14 | Ensure events that modify the system's Mandatory Access Controls are collected |
| 5.2.3.15 | 5.2.3.15 - 5.2.3.17 | Ensure events that modify the system's Mandatory Access Controls are collected |
| 5.2.3.16 | 5.2.3.15 - 5.2.3.17 | Ensure events that modify the system's Mandatory Access Controls are collected |
| 5.2.3.17 | 5.2.3.15 - 5.2.3.17 | Ensure events that modify the system's Mandatory Access Controls are collected |
| 5.2.3.18 | Ensure events that modify the system's Mandatory Access Controls are collected |
| 5.2.3.19 | Ensure kernel module loading unloading and modification is collected |
| 5.2.3.20 | Ensure the audit configuration is immutable |