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
- 2. Check Your Ubuntu Version
- 3. Set the Correct Hostname
- 4. Configure the Correct Time Zone
- 5. Create a Separate Administrator Account
- 6. Configure SSH Key Authentication
- 7. Harden the SSH Server
- 8. Configure the UFW Firewall
- 9. Enable Automatic Security Updates
- 10. Install Essential Administration Tools
- 11. Check Open Ports
- 12. Configure Swap If Necessary
- 13. Check Disk Space and Storage
- 14. Configure Backups Before Deploying Applications
- 15. Add Monitoring Before Going to Production
- Ubuntu 26.04 LTS Server Setup Checklist
- What Should You Install Next?
- Common Ubuntu Server Setup Mistakes
- Is Ubuntu 26.04 LTS Good for Servers?
- Final Thoughts
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/
``` citeturn0search7
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.



