CIS Ubuntu 20.04 Level 2 Server Benchmark
Rules and Groups employed by this XCCDF Profile
-
Disable Mounting of jffs2
To configure the system to prevent the <code>jffs2</code> kernel module from being loaded, add the following line to the file <code>/etc/modprobe....Rule Low Severity -
Disable Mounting of udf
To configure the system to prevent the <code>udf</code> kernel module from being loaded, add the following line to the file <code>/etc/modprobe.d/...Rule Low Severity -
Disable Modprobe Loading of USB Storage Driver
To prevent USB storage devices from being used, configure the kernel module loading system to prevent automatic loading of the USB storage driver. ...Rule Medium Severity -
Restrict Partition Mount Options
System partitions can be mounted with certain options that limit what files on those partitions can do. These options are set in the <code>/etc/fst...Group -
Add nodev Option to /dev/shm
The <code>nodev</code> mount option can be used to prevent creation of device files in <code>/dev/shm</code>. Legitimate character and block device...Rule Medium Severity -
Add noexec Option to /dev/shm
The <code>noexec</code> mount option can be used to prevent binaries from being executed out of <code>/dev/shm</code>. It can be dangerous to allow...Rule Medium Severity -
Add nosuid Option to /dev/shm
The <code>nosuid</code> mount option can be used to prevent execution of setuid programs in <code>/dev/shm</code>. The SUID and SGID permissions s...Rule Medium Severity -
Add nodev Option to /home
The <code>nodev</code> mount option can be used to prevent device files from being created in <code>/home</code>. Legitimate character and block de...Rule Unknown Severity -
Add nodev Option to /tmp
The <code>nodev</code> mount option can be used to prevent device files from being created in <code>/tmp</code>. Legitimate character and block dev...Rule Medium Severity -
Add noexec Option to /tmp
The <code>noexec</code> mount option can be used to prevent binaries from being executed out of <code>/tmp</code>. Add the <code>noexec</code> opti...Rule Medium Severity -
Add nosuid Option to /tmp
The <code>nosuid</code> mount option can be used to prevent execution of setuid programs in <code>/tmp</code>. The SUID and SGID permissions should...Rule Medium Severity -
Add nodev Option to /var/tmp
The <code>nodev</code> mount option can be used to prevent device files from being created in <code>/var/tmp</code>. Legitimate character and block...Rule Medium Severity -
Add noexec Option to /var/tmp
The <code>noexec</code> mount option can be used to prevent binaries from being executed out of <code>/var/tmp</code>. Add the <code>noexec</code> ...Rule Medium Severity -
Add nosuid Option to /var/tmp
The <code>nosuid</code> mount option can be used to prevent execution of setuid programs in <code>/var/tmp</code>. The SUID and SGID permissions sh...Rule Medium Severity -
Restrict Programs from Dangerous Execution Patterns
The recommendations in this section are designed to ensure that the system's features to protect against potentially dangerous program execution ar...Group -
Disable Core Dumps
A core dump file is the memory image of an executable program when it was terminated by the operating system due to errant behavior. In most cases,...Group -
Disable Core Dumps for All Users
To disable core dumps for all users, add the following line to <code>/etc/security/limits.conf</code>, or to a file within the <code>/etc/security/...Rule Medium Severity -
Disable Core Dumps for SUID programs
To set the runtime status of the <code>fs.suid_dumpable</code> kernel parameter, run the following command: <pre>$ sudo sysctl -w fs.suid_dumpable=...Rule Medium Severity -
Enable ExecShield
ExecShield describes kernel features that provide protection against exploitation of memory corruption errors such as buffer overflows. These featu...Group -
Enable Randomized Layout of Virtual Address Space
To set the runtime status of the <code>kernel.randomize_va_space</code> kernel parameter, run the following command: <pre>$ sudo sysctl -w kernel.r...Rule Medium Severity -
Services
The best protection against vulnerable software is running less software. This section describes how to review the software which Ubuntu 20.04 inst...Group -
Avahi Server
The Avahi daemon implements the DNS Service Discovery and Multicast DNS protocols, which provide service and host discovery on a network. It allows...Group -
Disable Avahi Server if Possible
Because the Avahi daemon service keeps an open network port, it is subject to network attacks. Disabling it can reduce the system's vulnerability t...Group -
Uninstall avahi Server Package
If the system does not need to have an Avahi server which implements the DNS Service Discovery and Multicast DNS protocols, the avahi-autoipd and a...Rule Medium Severity -
Disable Avahi Server Software
Theavahi-daemon
service can be disabled with the following command:$ sudo systemctl mask --now avahi-daemon.service
Rule Medium Severity -
Cron and At Daemons
The cron and at services are used to allow commands to be executed at a later time. The cron service is required by almost all systems to perform n...Group -
Enable cron Service
The <code>crond</code> service is used to execute commands at preconfigured times. It is required by almost all systems to perform necessary mainte...Rule Medium Severity -
Verify Group Who Owns cron.d
To properly set the group owner of/etc/cron.d
, run the command:$ sudo chgrp root /etc/cron.d
Rule Medium Severity -
Verify Group Who Owns cron.daily
To properly set the group owner of/etc/cron.daily
, run the command:$ sudo chgrp root /etc/cron.daily
Rule Medium Severity -
Verify Group Who Owns cron.hourly
To properly set the group owner of/etc/cron.hourly
, run the command:$ sudo chgrp root /etc/cron.hourly
Rule Medium Severity -
Verify Group Who Owns cron.monthly
To properly set the group owner of/etc/cron.monthly
, run the command:$ sudo chgrp root /etc/cron.monthly
Rule Medium Severity -
Verify Group Who Owns cron.weekly
To properly set the group owner of/etc/cron.weekly
, run the command:$ sudo chgrp root /etc/cron.weekly
Rule Medium Severity -
Verify Group Who Owns Crontab
To properly set the group owner of/etc/crontab
, run the command:$ sudo chgrp root /etc/crontab
Rule Medium Severity -
Verify Owner on cron.d
To properly set the owner of/etc/cron.d
, run the command:$ sudo chown root /etc/cron.d
Rule Medium Severity -
Verify Owner on cron.daily
To properly set the owner of/etc/cron.daily
, run the command:$ sudo chown root /etc/cron.daily
Rule Medium Severity -
Verify Owner on cron.hourly
To properly set the owner of/etc/cron.hourly
, run the command:$ sudo chown root /etc/cron.hourly
Rule Medium Severity -
Verify Owner on cron.monthly
To properly set the owner of/etc/cron.monthly
, run the command:$ sudo chown root /etc/cron.monthly
Rule Medium Severity -
Verify Owner on cron.weekly
To properly set the owner of/etc/cron.weekly
, run the command:$ sudo chown root /etc/cron.weekly
Rule Medium Severity -
Verify Owner on crontab
To properly set the owner of/etc/crontab
, run the command:$ sudo chown root /etc/crontab
Rule Medium Severity -
Verify Permissions on cron.d
To properly set the permissions of/etc/cron.d
, run the command:$ sudo chmod 0700 /etc/cron.d
Rule Medium Severity -
Verify Permissions on cron.daily
To properly set the permissions of/etc/cron.daily
, run the command:$ sudo chmod 0700 /etc/cron.daily
Rule Medium Severity -
Verify Permissions on cron.hourly
To properly set the permissions of/etc/cron.hourly
, run the command:$ sudo chmod 0700 /etc/cron.hourly
Rule Medium Severity -
Verify Permissions on cron.monthly
To properly set the permissions of/etc/cron.monthly
, run the command:$ sudo chmod 0700 /etc/cron.monthly
Rule Medium Severity -
Verify Permissions on cron.weekly
To properly set the permissions of/etc/cron.weekly
, run the command:$ sudo chmod 0700 /etc/cron.weekly
Rule Medium Severity -
Verify Permissions on crontab
To properly set the permissions of/etc/crontab
, run the command:$ sudo chmod 0600 /etc/crontab
Rule Medium Severity -
Restrict at and cron to Authorized Users if Necessary
The <code>/etc/cron.allow</code> and <code>/etc/at.allow</code> files contain lists of users who are allowed to use <code>cron</code> and at to del...Group -
Verify Group Who Owns /etc/at.allow file
If <code>/etc/at.allow</code> exists, it must be group-owned by <code>root</code>. To properly set the group owner of <code>/etc/at.allow</code>, ...Rule Medium Severity -
Verify Group Who Owns /etc/cron.allow file
If <code>/etc/cron.allow</code> exists, it must be group-owned by <code>root</code>. To properly set the group owner of <code>/etc/cron.allow</cod...Rule Medium Severity -
Verify User Who Owns /etc/at.allow file
If <code>/etc/at.allow</code> exists, it must be owned by <code>root</code>. To properly set the owner of <code>/etc/at.allow</code>, run the comm...Rule Medium Severity -
Verify User Who Owns /etc/cron.allow file
If <code>/etc/cron.allow</code> exists, it must be owned by <code>root</code>. To properly set the owner of <code>/etc/cron.allow</code>, run the ...Rule Medium Severity
Node 2
The content of the drawer really is up to you. It could have form fields, definition lists, text lists, labels, charts, progress bars, etc. Spacing recommendation is 24px margins. You can put tabs in here, and can also make the drawer scrollable.