Skip to content

Guide to the Secure Configuration of Ubuntu 20.04

Rules, Groups, and Values defined within the XCCDF Benchmark

  • Set UFW Loopback Traffic

    Configure the loopback interface to accept traffic. Configure all other interfaces to deny traffic to the loopback network.
    Rule Medium Severity
  • Only Allow Authorized Network Services in ufw

    Check the firewall configuration for any unnecessary or prohibited functions, ports, protocols, and/or services by running the following command: <pre>$ sudo ufw show raw Chain OUTPUT (policy ACCEP...
    Rule Medium Severity
  • Ensure ufw Firewall Rules Exist for All Open Ports

    Any ports that have been opened on non-loopback addresses need firewall rules to govern traffic.
    Rule Medium Severity
  • Uncommon Network Protocols

    The system includes support for several network protocols which are not commonly used. Although security vulnerabilities in kernel networking code are not frequently discovered, the consequences ca...
    Group
  • Disable Wireless Through Software Configuration

    If it is impossible to remove the wireless hardware from the device in question, disable as much of it as possible through software. The following methods can disable software support for wireless ...
    Group
  • Transport Layer Security Support

    Support for Transport Layer Security (TLS), and its predecessor, the Secure Sockets Layer (SSL), is included in Red Hat Enterprise Linux in the OpenSSL software (RPM package <code>openssl</code>). ...
    Group
  • Only Allow DoD PKI-established CAs

    The operating system must only allow the use of DoD PKI-established certificate authorities for verification of the establishment of protected sessions.
    Rule Medium Severity
  • Verify Permissions on Important Files and Directories

    Permissions for many files on a system must be set restrictively to ensure sensitive information is properly protected. This section discusses important permission restrictions which can be verifie...
    Group
  • Verify permissions of log files

    Any operating system providing too much information in error messages risks compromising the data and security of the structure, and content of error messages needs to be carefully considered by th...
    Rule Medium Severity
  • Ensure No World-Writable Files Exist

    It is generally a good idea to remove global (other) write access to a file when it is discovered. However, check with documentation for specific applications before making changes. Also, monitor f...
    Rule Medium Severity
  • Verify Permissions on Files with Local Account Information and Credentials

    The default restrictive permissions for files which act as important security databases such as <code>passwd</code>, <code>shadow</code>, <code>group</code>, and <code>gshadow</code> files must be ...
    Group
  • Verify User Who Owns gshadow File

    To properly set the owner of /etc/gshadow, run the command:
    $ sudo chown root /etc/gshadow 
    Rule Medium Severity
  • Verify Permissions on Backup gshadow File

    To properly set the permissions of /etc/gshadow-, run the command:
    $ sudo chmod 0640 /etc/gshadow-
    Rule Medium Severity
  • Verify Permissions on Backup passwd File

    To properly set the permissions of /etc/passwd-, run the command:
    $ sudo chmod 0644 /etc/passwd-
    Rule Medium Severity
  • Verify Permissions on Backup shadow File

    To properly set the permissions of /etc/shadow-, run the command:
    $ sudo chmod 0640 /etc/shadow-
    Rule Medium Severity
  • Verify Permissions on gshadow File

    To properly set the permissions of /etc/gshadow, run the command:
    $ sudo chmod 0640 /etc/gshadow
    Rule Medium Severity
  • Verify Permissions on passwd File

    To properly set the permissions of /etc/passwd, run the command:
    $ sudo chmod 0644 /etc/passwd
    Rule Medium Severity
  • Verify Permissions on shadow File

    To properly set the permissions of /etc/shadow, run the command:
    $ sudo chmod 0640 /etc/shadow
    Rule Medium Severity
  • Verify Permissions on Files within /var/log Directory

    The /var/log directory contains files with logs of error messages in the system and should only be accessed by authorized personnel.
    Group
  • Verify Group Who Owns /var/log Directory

    To properly set the group owner of /var/log, run the command:
    $ sudo chgrp syslog /var/log
    Rule Medium Severity
  • Verify Group Who Owns /var/log/messages File

    To properly set the group owner of /var/log/messages, run the command:
    $ sudo chgrp root /var/log/messages
    Rule Medium Severity
  • Verify Group Who Owns /var/log/syslog File

    To properly set the group owner of /var/log/syslog, run the command:
    $ sudo chgrp adm /var/log/syslog
    Rule Medium Severity
  • Verify User Who Owns /var/log/messages File

    To properly set the owner of /var/log/messages, run the command:
    $ sudo chown root /var/log/messages 
    Rule Medium Severity
  • Verify User Who Owns /var/log/syslog File

    To properly set the owner of /var/log/syslog, run the command:
    $ sudo chown syslog /var/log/syslog 
    Rule Medium Severity
  • Verify Permissions on /var/log Directory

    To properly set the permissions of /var/log, run the command:
    $ sudo chmod 0755 /var/log
    Rule Medium Severity
  • Verify Permissions on /var/log/messages File

    To properly set the permissions of /var/log/messages, run the command:
    $ sudo chmod 0640 /var/log/messages
    Rule Medium Severity
  • Verify Permissions on /var/log/syslog File

    To properly set the permissions of /var/log/syslog, run the command:
    $ sudo chmod 0640 /var/log/syslog
    Rule Medium Severity
  • Verify File Permissions Within Some Important Directories

    Some directories contain files whose confidentiality or integrity is notably important and may also be susceptible to misconfiguration over time, particularly if unpackaged software is installed. A...
    Group
  • Verify that system commands directories are group owned by root

    System commands files are stored in the following directories by default: <pre>/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin </pre> All these directories should be owned by the <code...
    Rule Medium Severity
  • Verify that System Executable Have Root Ownership

    <pre>/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin</pre> All these directories should be owned by the <code>root</code> user. If any directory <i>DIR</i> in these directories is foun...
    Rule Medium Severity
  • Verify that Shared Library Directories Have Root Ownership

    System-wide shared library files, which are linked to executables during process load time or run time, are stored in the following directories by default: <pre>/lib /lib64 /usr/lib /usr/lib64 </pr...
    Rule Medium Severity
  • Verify that audit tools are owned by group root

    The Ubuntu 20.04 operating system audit tools must have the proper ownership configured to protected against unauthorized access. Verify it by running the following command: <pre>$ stat -c "%n %G"...
    Rule Medium Severity
  • Verify that system commands files are group owned by root or a system account

    System commands files are stored in the following directories by default: <pre>/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin </pre> All files in these directories should be owned by ...
    Rule Medium Severity
  • Verify that audit tools are owned by root

    The Ubuntu 20.04 operating system audit tools must have the proper ownership configured to protected against unauthorized access. Verify it by running the following command: <pre>$ stat -c "%n %U"...
    Rule Medium Severity
  • Verify that System Executables Have Root Ownership

    System executables are stored in the following directories by default: <pre>/bin /sbin /usr/bin /usr/libexec /usr/local/bin /usr/local/sbin /usr/sbin</pre> All files in these directories should be ...
    Rule Medium Severity
  • Disable Mounting of cramfs

    To configure the system to prevent the <code>cramfs</code> kernel module from being loaded, add the following line to the file <code>/etc/modprobe.d/cramfs.conf</code>: <pre>install cramfs /bin/fa...
    Rule Low Severity
  • Verify that audit tools Have Mode 0755 or less

    The Ubuntu 20.04 operating system audit tools must have the proper permissions configured to protected against unauthorized access. Verify it by running the following command: <pre>$ stat -c "%n %...
    Rule Medium Severity
  • Verify that System Executables Have Restrictive Permissions

    System executables are stored in the following directories by default: <pre>/bin /sbin /usr/bin /usr/libexec /usr/local/bin /usr/local/sbin /usr/sbin</pre> All files in these directories should not...
    Rule Medium Severity
  • Verify that Shared Library Files Have Restrictive Permissions

    System-wide shared library files, which are linked to executables during process load time or run time, are stored in the following directories by default: <pre>/lib /lib64 /usr/lib /usr/lib64 </pr...
    Rule Medium Severity
  • Restrict Dynamic Mounting and Unmounting of Filesystems

    Linux includes a number of facilities for the automated addition and removal of filesystems on a running system. These facilities may be necessary in many environments, but this capability also ca...
    Group
  • Disable the Automounter

    The <code>autofs</code> daemon mounts and unmounts filesystems, such as user home directories shared via NFS, on demand. In addition, autofs can be used to handle removable media, and the default c...
    Rule Medium Severity
  • Disable Mounting of hfs

    To configure the system to prevent the <code>hfs</code> kernel module from being loaded, add the following line to the file <code>/etc/modprobe.d/hfs.conf</code>: <pre>install hfs /bin/false</pre>...
    Rule Low Severity
  • Disable Mounting of hfsplus

    To configure the system to prevent the <code>hfsplus</code> kernel module from being loaded, add the following line to the file <code>/etc/modprobe.d/hfsplus.conf</code>: <pre>install hfsplus /bin...
    Rule Low Severity
  • 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.d/jffs2.conf</code>: <pre>install jffs2 /bin/false...
    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. To configure the system to prevent the <code>usb-...
    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/fstab</code> configuration file, and can be used to m...
    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 devices should not exist within temporary directories li...
    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 the execution of binaries from world-writable tem...
    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 should not be required in these world-writable dire...
    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 devices should exist only in the <code>/dev</code> d...
    Rule Unknown Severity

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.

Capacity
Modules