How to secure your Linux VPS (Ubuntu) in 15 minutes

Updates, a personal user, SSH keys, a firewall and automatic ban for attackers — the essential security steps for every new Ubuntu server.

Intermediate 15 min read Updated Oct 16, 2026 ServerLoom team
On this page

A new server on the internet gets login attempts within minutes. These steps close the most common doors. They work on Ubuntu 22.04 and 24.04.

Step 1: Update everything

Bash
sudo apt update && sudo apt upgrade -y

Step 2: Create your own user

Working as root all the time is risky. Create a personal user with admin rights (replace alex with your name):

Bash
sudo adduser alexsudo usermod -aG sudo alex

Step 3: Log in with an SSH key instead of a password

A key is much safer than a password and can't be guessed. On your own computer (Windows PowerShell, macOS or Linux terminal), create a key:

Bash
ssh-keygen -t ed25519 -C "my-laptop"

Press Enter to accept the default location and choose a passphrase. Then copy the key to your server:

Bash
# macOS / Linuxssh-copy-id alex@YOUR-SERVER-IP # Windows PowerShelltype $env:USERPROFILE\.ssh\id_ed25519.pub | ssh alex@YOUR-SERVER-IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Now test it: ssh alex@YOUR-SERVER-IP should log you in without asking for the server password.

Step 4: Turn off password and root login

Only do this after step 3 works. Create a small settings file:

Bash
sudo tee /etc/ssh/sshd_config.d/99-hardening.conf > /dev/null <<'EOF'PasswordAuthentication noPermitRootLogin noEOF # make sure no other file switches passwords back ongrep -ri "PasswordAuthentication" /etc/ssh/sshd_config.d/ sudo sshd -t && sudo systemctl restart ssh
Careful

Keep your current SSH window open and test the login in a NEW window first. If something is wrong, you can still fix it — or use the console in your ServerLoom panel.

If the grep command shows another file with PasswordAuthentication yes (for example 50-cloud-init.conf), change it to no too.

Step 5: Turn on the firewall

UFW blocks everything except what you allow. Allow SSH before enabling it:

Bash
sudo ufw allow OpenSSHsudo ufw enablesudo ufw status

Running a website or game? Open only its port, for example sudo ufw allow 443/tcp for HTTPS or sudo ufw allow 25565/tcp for Minecraft.

Step 6: Ban attackers automatically

Fail2ban watches your login logs and blocks IPs that keep guessing. On Ubuntu it protects SSH as soon as it's installed:

Bash
sudo apt install -y fail2bansudo systemctl enable --now fail2bansudo fail2ban-client status sshd

Step 7: Install security updates automatically

Bash
sudo apt install -y unattended-upgradessudo dpkg-reconfigure -plow unattended-upgrades

Checklist

  • System up to date and security updates automatic.
  • Personal user with sudo, root login disabled.
  • SSH keys only — no passwords.
  • Firewall on, only the ports you need open.
  • Fail2ban blocking brute-force attempts.
Pro tip

Every ServerLoom server also sits behind ServerLoom Shield, so DDoS attacks are filtered before they reach your firewall.

Ready to try it? Try it on a ServerLoom VPS

High-clock AMD Ryzen, NVMe storage, full root access and ServerLoom Shield DDoS protection — online in minutes.

See Ryzen VPS plans
Stuck on a step? Our team helps you 24/7. Ask on Discord

Need help?

Choose how you'd like to reach us