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
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.