Ubuntu 26.04 LTS Server Setup: 15 Things to Do After Installation

Ubuntu 26.04 LTS server setup Administration and Setup
Ubuntu 26.04 LTS server setup doesn't end after installation. Here are 15 essential steps to secure, update, optimize, and prepare your server for production.

Ubuntu 26.04 LTS server setup does not end when the installer finishes. A fresh Ubuntu Server installation gives you a clean foundation, but several important tasks should be completed before you deploy websites, databases, Docker containers, VPN services, or production applications.

Ubuntu 26.04 LTS, code-named Resolute Raccoon, is a Long Term Support release designed for systems where stability and long-term maintenance matter. Ubuntu’s official security documentation states that standard LTS releases receive five years of security maintenance for packages in Main and Restricted, with longer coverage available through Ubuntu Pro. documentation.ubuntu.com

Whether you have installed Ubuntu 26.04 on a VPS, VDS, dedicated server, virtual machine, or home lab, the first configuration steps are largely the same.

This guide covers 15 things you should do after installing Ubuntu 26.04 LTS Server.

1. Update Ubuntu 26.04 LTS

The first thing you should do after connecting to a new server is update the package database.

Run:

sudo apt update

Then install available updates:

sudo apt upgrade -y

You can also run both operations together:

sudo apt update && sudo apt upgrade -y

Ubuntu regularly publishes security fixes and bug fixes, so even a recently created VPS image may already have updates available.

Canonical recommends keeping Ubuntu systems updated to protect them against known vulnerabilities. Ubuntu

After installing updates, check whether the system requires a reboot:

test -f /var/run/reboot-required && echo "Reboot required"

If necessary:

sudo reboot

Reconnect after the server comes back online.

2. Check Your Ubuntu Version

Before making major configuration changes, verify that the server is actually running Ubuntu 26.04 LTS.

Use:

lsb_release -a

Or:

cat /etc/os-release

You can also check the kernel:

uname -r

For a quick overview:

hostnamectl

Keeping this information available is useful when troubleshooting software compatibility, kernel modules, Docker, control panels, or hardware drivers.

3. Set the Correct Hostname

A meaningful hostname makes servers much easier to identify, particularly when managing multiple machines.

Check the current hostname:

hostnamectl

Set a new one:

sudo hostnamectl set-hostname web01.example.com

Verify it:

hostname

For production infrastructure, consider using a consistent naming convention such as:

web01.example.com
db01.example.com
vpn01.example.com
docker01.example.com

This becomes especially useful once monitoring, backups, centralized logging, and automation are introduced.

4. Configure the Correct Time Zone

Incorrect server time can cause surprisingly serious problems.

Logs become difficult to correlate, scheduled jobs may execute at unexpected times, and some authentication or distributed applications can behave incorrectly.

Check the current configuration:

timedatectl

List available time zones:

timedatectl list-timezones

For example:

sudo timedatectl set-timezone Europe/Paris

Or:

sudo timedatectl set-timezone UTC

UTC is often a good choice for infrastructure distributed across multiple countries.

Verify the result:

timedatectl

5. Create a Separate Administrator Account

Using root for every administrative task increases risk.

Create a dedicated administrator:

sudo adduser admin

Then add the account to the sudo group:

sudo usermod -aG sudo admin

Verify:

groups admin

You should see sudo in the output.

Test the account before changing SSH authentication:

su - admin

Then:

sudo whoami

The expected result is:

root

Ubuntu’s security guidance recommends using non-root accounts and applying the principle of least privilege. Ubuntu

6. Configure SSH Key Authentication

Passwords can be attacked through brute-force attempts. SSH keys provide a much stronger authentication method when configured correctly.

On your local computer, generate a key if you do not already have one:

ssh-keygen -t ed25519

Copy the public key to your Ubuntu server:

ssh-copy-id admin@SERVER_IP

Alternatively, manually place the public key inside:

~/.ssh/authorized_keys

Make sure the permissions are correct:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Test SSH key authentication in a second terminal window before closing your existing session.

Ubuntu uses OpenSSH for encrypted remote administration, and OpenSSH supports public-key authentication in addition to password authentication. Ubuntu

7. Harden the SSH Server

Once SSH key authentication works, you can tighten SSH security.

Instead of heavily modifying the primary configuration, Ubuntu supports configuration snippets under:

/etc/ssh/sshd_config.d/
``` citeturn0search7


Create a configuration file:

```bash
sudo nano /etc/ssh/sshd_config.d/99-hardening.conf

For a key-only server, you might use:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3

Before applying the changes, validate the configuration:

sudo sshd -t

If no error is displayed, reload SSH:

sudo systemctl reload ssh

Important: Do not disable password authentication until you have confirmed that SSH key authentication works.

Otherwise, you can lock yourself out of the server.

8. Configure the UFW Firewall

A server should expose only the ports it actually needs.

Ubuntu includes UFW as a convenient interface for host-based firewall configuration. UFW is initially disabled by default. Ubuntu

Check its status:

sudo ufw status

Before enabling the firewall on a remote server, allow SSH:

sudo ufw allow OpenSSH

For a web server, you may also need:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Then enable UFW:

sudo ufw enable

Check the resulting rules:

sudo ufw status verbose

A basic web server might expose only:

22/tcp
80/tcp
443/tcp

Database ports such as MySQL 3306 generally should not be publicly accessible unless there is a specific reason.

9. Enable Automatic Security Updates

Security updates are one of the most important parts of maintaining an Internet-facing server.

Ubuntu Server uses unattended-upgrades for automatic updates, and automatic security updates are enabled by default on standard Ubuntu Server installations. Ubuntu

Check whether the package is installed:

dpkg -l | grep unattended-upgrades

If necessary:

sudo apt install unattended-upgrades

You can configure it with:

sudo dpkg-reconfigure unattended-upgrades

Check the service:

systemctl status unattended-upgrades

Logs are available under:

/var/log/unattended-upgrades/

For critical production servers, automatic updates should still be combined with monitoring and a tested backup or rollback strategy.

10. Install Essential Administration Tools

Minimal server installations often lack utilities administrators use every day.

A useful baseline is:

sudo apt install -y \
curl \
wget \
git \
vim \
nano \
htop \
iotop \
net-tools \
dnsutils \
unzip \
zip \
rsync \
jq \
lsof \
tmux

You may not need every package, but these utilities are useful for diagnostics, file transfers, API requests, DNS troubleshooting, resource monitoring, and automation.

For example:

htop

provides an interactive view of CPU and memory usage.

lsof -i

can help identify processes using network sockets.

And:

ss -tulpn

shows listening network services.

11. Check Open Ports

After installing or configuring software, verify which services are accessible.

Run:

sudo ss -tulpn

You might see something similar to:

0.0.0.0:22
0.0.0.0:80
0.0.0.0:443

Every listening port should have a reason to exist.

If an unexpected service is listening publicly, identify it before putting the server into production.

You can also inspect running services:

systemctl --type=service --state=running

Reducing unnecessary services reduces the server’s attack surface.

12. Configure Swap If Necessary

Small VPS instances can run out of RAM surprisingly quickly.

Check memory:

free -h

Check existing swap:

swapon --show

If no swap exists, you can create a 2 GB swap file:

sudo fallocate -l 2G /swapfile

Secure it:

sudo chmod 600 /swapfile

Create the swap area:

sudo mkswap /swapfile

Enable it:

sudo swapon /swapfile

Verify:

swapon --show

To make it persistent after reboot:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Swap is not a replacement for RAM, but it can prevent abrupt out-of-memory failures during temporary memory spikes.

13. Check Disk Space and Storage

Running out of disk space can break databases, package upgrades, logging, Docker, and web applications.

Check filesystem usage:

df -h

Check block devices:

lsblk

To find large directories:

sudo du -xh / --max-depth=1 2>/dev/null | sort -h

Logs are another common source of unexpected disk consumption.

Check journal usage:

journalctl --disk-usage

For Docker servers, also monitor:

docker system df

Production monitoring should alert administrators before a filesystem approaches 100% usage.

14. Configure Backups Before Deploying Applications

Backups should be configured before the server becomes important.

A simple backup strategy might include:

  • daily database backups;
  • application and configuration backups;
  • off-server copies;
  • VPS snapshots;
  • retention policies;
  • periodic restore tests.

For basic file synchronization, rsync remains extremely useful:

rsync -avz /var/www/ backup-user@backup-server:/backups/web01/

For databases, use the appropriate database-native backup mechanism.

For example, MySQL administrators may use:

mysqldump

while PostgreSQL provides:

pg_dump

But copying data is only half of a backup strategy.

A backup is useful only if it can actually be restored.

Test recovery periodically.

15. Add Monitoring Before Going to Production

The final step in your Ubuntu 26.04 LTS server setup should be monitoring.

At minimum, monitor:

  • CPU usage;
  • RAM usage;
  • disk usage;
  • disk I/O;
  • system load;
  • network traffic;
  • uptime;
  • HTTP/HTTPS availability;
  • SSL certificate expiration;
  • failed services.

Basic built-in commands include:

uptime
free -h
df -h
systemctl --failed
journalctl -p err -b

For production infrastructure, consider a dedicated monitoring platform such as Prometheus, Grafana, Zabbix, Netdata, or your hosting provider’s monitoring system.

Monitoring changes server administration from reacting to outages to detecting problems before users notice them.

Ubuntu 26.04 LTS Server Setup Checklist

After completing the initial configuration, your checklist should look something like this:

[✓] System updated
[✓] Ubuntu version verified
[✓] Hostname configured
[✓] Time zone configured
[✓] Administrator account created
[✓] SSH keys configured
[✓] Root/password SSH access restricted
[✓] Firewall enabled
[✓] Automatic security updates verified
[✓] Administration utilities installed
[✓] Open ports reviewed
[✓] Swap configured if necessary
[✓] Disk usage checked
[✓] Backups configured
[✓] Monitoring enabled

At this point, the server is in a much better position for production workloads.

What Should You Install Next?

What comes next depends on the purpose of the server.

For a web server, you might install:

Nginx
Apache
PHP
MariaDB or MySQL
PostgreSQL
Redis

For containerized applications:

Docker
Docker Compose

For hosting environments, you may install a server control panel.

For private infrastructure, the next step could instead be WireGuard, a reverse proxy, monitoring software, or a backup agent.

The important principle is simple: build a secure and maintainable base system first, then deploy the application stack.

Common Ubuntu Server Setup Mistakes

One common mistake is installing the entire application stack immediately after provisioning a VPS without first securing the operating system.

Another is exposing services directly to the Internet.

For example, databases, Redis instances, management interfaces, and monitoring dashboards often do not need public access.

Administrators also sometimes disable SSH password authentication before testing their SSH keys. This can result in an immediate lockout.

Firewall changes create a similar risk. Always ensure the current SSH port is permitted before enabling restrictive firewall rules.

Finally, do not assume backups are working simply because a backup job completes successfully. Test restoration.

Is Ubuntu 26.04 LTS Good for Servers?

For many deployments, yes.

Ubuntu LTS releases are particularly attractive for servers because they provide a longer maintenance window than interim Ubuntu releases. Standard LTS security maintenance for Main and Restricted packages lasts five years, while Ubuntu Pro can extend security coverage further. documentation.ubuntu.com

Ubuntu also has a large ecosystem around server workloads including Docker, Kubernetes, Nginx, Apache, PHP, MySQL, PostgreSQL, cloud-init, virtualization, and GPU computing.

The official Ubuntu 26.04 distribution includes a dedicated server installation image that installs the operating system without a graphical interface. eu.releases.ubuntu.com

For a new deployment in 2026 where long-term OS support is important, Ubuntu 26.04 LTS is therefore a natural option to consider.

Final Thoughts

A fresh Ubuntu installation is only the beginning.

A proper Ubuntu 26.04 LTS server setup should include system updates, SSH hardening, firewall rules, automatic security updates, backups, monitoring, and basic resource management before production applications are deployed.

The 15 steps above create a solid baseline for most VPS, VDS, dedicated server, and virtual machine deployments.

You can then build the application layer on top of that foundation — whether the server will host WordPress, Docker containers, databases, VPN services, AI workloads, or traditional web applications.

A few extra minutes spent configuring the operating system correctly at the beginning can save hours of troubleshooting later.