User Tools

Site Tools


Ubuntu Server Setup

This document should outline a few steps that are useful after a fresh install of an Ubuntu Server.

Basic Packages

If you are dealing with a minimal installation (meta-package ubuntu-minimal) you may want to beef it up a bit. Check what packages are typically bundled e.g. when installing Ubuntu Server or just select your server style:

tasksel # ncurses GUI
tasksel --list-tasks
tasksel --task-packages server

Some additional packages for easier CLI handling:

sudo apt install bash-completion ubuntu-release-upgrader-core software-properties-common

And some more useful tools:

sudo apt install htop ncdu ranger tldr tree vim


If you are fine with the OpenJDK version that comes with your Ubuntu:

sudo apt install openjdk-11-jdk-headless

A good alternative if you want other versions is - they provide ppas for free.



Disable root login in /etc/ssh/sshd_config:

PermitRootLogin no

A good baseline is to only allow logins via public key authentication (disable password authentication), except for a fallback user with a very long and complex password. See these lines in /etc/ssh/sshd_config:

PasswordAuthentication no

# <snip>
# Match-block at end of file for exceptions:

Match User fallbackuser
  PasswordAuthentication yes

Ubuntu tutorials:

Further harden OpenSSH according to the secure secure shell guide

Enable Automatic Security Updates

Quickly enable unattended upgrades:

sudo dpkg-reconfigure -plow unattended-upgrades

This creates the file /etc/apt/apt.conf.d/20auto-upgrades.

Then set Unattended-Upgrade::Remove-Unused-Dependencies to true in /etc/apt/apt.conf.d/50unattended-upgrades.

See also:

Decrease Swappiness

Add a line to /etc/sysctl.conf and override the default swappiness of 60 with a much lower value, e.g.


Root Kit & Intrusion Detection

Have a look at at e.g. chkrootkit and tiger tiger


If you fancy a nice greeting message:

echo "┌┬┐┬ ┬   ┌─┐┌─┐┬─┐┬  ┬┌─┐┬─┐   ┌┐┌┌─┐┌┬┐┌─┐"
echo "│││└┬┘───└─┐├┤ ├┬┘└┐┌┘├┤ ├┬┘───│││├─┤│││├┤ "
echo "┴ ┴ ┴    └─┘└─┘┴└─ └┘ └─┘┴└─   ┘└┘┴ ┴┴ ┴└─┘"
# or alternatively
# figlet my-server-name

More Resources

ubuntu_server_setup.txt · Last modified: 2020/07/23 11:35 by mstraub