Guide to the Secure Configuration of Ubuntu 20.04
Rules, Groups, and Values defined within the XCCDF Benchmark
-
Configure Avahi if Necessary
If your system requires the Avahi daemon, its configuration can be restricted to improve security. The Avahi daemon configuration file is <code>/et...Group -
Disable Avahi Publishing
To prevent Avahi from publishing its records, edit <code>/etc/avahi/avahi-daemon.conf</code> and ensure the following line appears in the <code>[pu...Rule Low Severity -
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 -
Base Services
This section addresses the base services that are installed on a Ubuntu 20.04 default installation which are not covered in other sections. Some of...Group -
Disable KDump Kernel Crash Analyzer (kdump)
The <code>kdump</code> service provides a kernel crash dump analyzer. It uses the <code>kexec</code> system call to boot a secondary kernel ("captu...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 -
Install the cron service
The Cron service should be installed.Rule Medium Severity -
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 -
SSSD ssh_known_hosts_timeout option
Value of the ssh_known_hosts_timeout option in the [ssh] section of SSSD configuration file /etc/sssd/sssd.conf.Value -
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 -
Verify Permissions on /etc/at.allow file
If <code>/etc/at.allow</code> exists, it must have permissions <code>0640</code> or more restrictive. To properly set the permissions of <code>/e...Rule Medium Severity -
Verify Permissions on /etc/cron.allow file
If <code>/etc/cron.allow</code> exists, it must have permissions <code>0640</code> or more restrictive. To properly set the permissions of <code>...Rule Medium Severity -
Deprecated services
Some deprecated software services impact the overall system security due to their behavior (leak of confidentiality in network exchange, usage as u...Group -
Uninstall the inet-based telnet server
The inet-based telnet daemon should be uninstalled.Rule High Severity -
Secure Apache Configuration
The <code>httpd</code> configuration file is <code>/etc/httpd/conf/httpd.conf</code>. Apply the recommendations in the remainder of this section to...Group -
Uninstall the nis package
The support for Yellowpages should not be installed unless it is required.Rule Low Severity -
Uninstall the ntpdate package
ntpdate is a historical ntp synchronization client for unixes. It sould be uninstalled.Rule Low Severity -
Uninstall the ssl compliant telnet server
Thetelnet
daemon, even with ssl support, should be uninstalled.Rule High Severity -
Uninstall the telnet server
The telnet daemon should be uninstalled.Rule High Severity -
DHCP
The Dynamic Host Configuration Protocol (DHCP) allows systems to request and obtain an IP address and other configuration parameters from a server....Group -
Configure DHCP Client if Necessary
If DHCP must be used, then certain configuration changes can minimize the amount of information it receives and applies from the network, and thus ...Group -
Minimize the DHCP-Configured Options
Create the file <code>/etc/dhcp/dhclient.conf</code>, and add an appropriate setting for each of the ten configuration settings which can be obtain...Rule Unknown Severity -
Configure DHCP Server
If the system must act as a DHCP server, the configuration information it serves should be minimized. Also, support for other protocols and DNS-upd...Group -
Minimize Served Information
Edit /etc/dhcp/dhcpd.conf. Examine each address range section within the file, and ensure that the following options are not defined unless there i...Rule Unknown Severity -
Disable DHCP Client
DHCP is the default network configuration method provided by the system installer, and common on many networks. Nevertheless, manual management of ...Group -
Disable DHCP Server
The DHCP server <code>dhcpd</code> is not installed or activated by default. If the software was installed and activated, but the system does not n...Group
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.