This page contains affiliate links. If you make a purchase through one, we may earn a commission at no extra cost to you.
The same handful of mistakes account for most first-VPS problems, and nearly all of them are avoidable in the first setup session rather than fixed later under pressure. See Contabo’s current VPS plans.
Leaving the Default SSH Port Open
Port 22 is the first thing automated bots scan for on any newly provisioned server, and a huge share of unauthorized-access attempts target it specifically because it’s the default. Changing the SSH port and disabling password-based root login in favor of key authentication closes off the overwhelming majority of drive-by attack attempts before they even start.

No Firewall Configured
A fresh VPS typically has every port open by default, which means any service you install is reachable from the entire internet unless you specifically lock it down. A basic firewall (UFW on Ubuntu/Debian is the simplest starting point) that allows only the specific ports your applications actually need — SSH on its non-default port, HTTP/HTTPS if you’re running a web server — closes off everything else without requiring deep networking knowledge to set up. This is a five-minute task in the first setup session that a huge number of beginners skip entirely, not because it’s hard, but because a server with no firewall looks and feels identical to one with a properly configured one until something actually tries to exploit the gap.

Doing Everything as Root Instead of a Sudo User
Logging in as root and running every command directly is the default path of least resistance, and it’s also a real risk multiplier — a single typo in a root-level command can do far more damage than the same typo run by a limited user, and any compromised application running as root gives an attacker full system control immediately rather than a limited foothold. Creating a separate user with sudo privileges (elevated access only when explicitly invoked, not by default) for day-to-day work is standard practice specifically because it adds a meaningful safety margin against both human error and compromised software, at essentially no ongoing inconvenience once it’s set up.
Skipping OS Security Updates
Operating system and package updates frequently include security patches for vulnerabilities that are, by the time the patch ships, publicly known and actively being scanned for. A server that never gets updated accumulates a growing list of known, documented weaknesses over time — this isn’t a hypothetical risk, since attackers specifically target unpatched systems using the exact vulnerabilities the update would have closed. Enabling automatic security updates, or at minimum a regular manual update schedule, closes this gap without requiring constant hands-on maintenance.
Running Everything on One Server
Website, database, email, and every side project on a single VPS means a resource spike or misconfiguration in one takes down all of them simultaneously. This is convenient right up until the first real incident, at which point the convenience turns into every project on the server being offline at once instead of just the one that actually broke.
Consider a second low-cost Contabo VPS for experiments and side projects, separate from anything that actually needs to stay up.
No Backup Until After Something Breaks
Unlike shared hosting, a VPS has no backup running unless you set one up yourself. The realistic pattern is setting up backups reactively, right after a data loss incident, instead of proactively before there’s anything to lose. Automating a backup schedule in the first setup session removes the entire scenario.
Ignoring Disk Space Until the Server Stops Responding
Log files, temporary files, and application data accumulate quietly over months, and a server that runs out of disk space doesn’t fail gracefully — it stops responding to new connections and can corrupt data mid-write. A simple monthly check, or better, an automated alert at 80% disk usage, catches this before it becomes an emergency.
Sizing the VPS for the Marketing Page Instead of the Actual Workload
Overbuying resources “to be safe” wastes money on capacity that never gets used; underbuying for a growing project means an unplanned mid-project resize. Starting with a size matched to the current, actual workload — not a hypothetical future one — and resizing when a real need shows up is cheaper and more accurate than guessing upfront.
Leaving Unused Services and Ports Running
It’s common to install a service to test something, get it working, and then move on without ever removing it — a database admin tool, a testing framework, an old application version still listening on a port nobody uses anymore. Every running service is a potential attack surface, whether or not you’re actively using it, and an unused service is pure risk with zero corresponding benefit. Periodically auditing what’s actually running (a simple “list all listening ports” command) and removing or disabling anything you don’t specifically need cleans up accumulated risk that builds silently over a server’s lifetime.
Bottom Line
None of these mistakes are complicated to avoid — they’re just easy to skip when a server is new and nothing’s gone wrong yet. Handling security, separation, backups, and disk monitoring in the first setup session prevents the vast majority of first-VPS problems from ever happening.
Frequently Asked Questions
How do I know if my VPS is being scanned or attacked?
Checking authentication logs (typically /var/log/auth.log on Debian-based systems) will show repeated failed login attempts, often from a rotating set of IP addresses — this is normal background noise for any internet-facing server, and it’s exactly what changing the default SSH port and disabling password login protects against.
How often should I actually check disk space manually?
Manual checks aren’t necessary if an automated alert is set up at a threshold like 80% usage. Without automated alerting, a monthly manual check is a reasonable minimum to avoid an unexpected full-disk failure.
Is it overkill to run separate VPS instances for separate projects?
Not necessarily — at budget VPS pricing, running a second small instance for experiments is often cheaper than the time cost of an outage that takes down an unrelated production project sharing the same server.
Do I really need a sudo user if I’m the only person using the server?
Yes — the risk isn’t about other people accessing the server, it’s about limiting the damage a single mistake or a compromised application can do. Running as a limited sudo user rather than root by default protects against your own typos and any software vulnerability just as much as it would against another person.
How do I check what’s actually running on my VPS?
A command like netstat or ss (both standard on Linux distributions) lists all currently listening ports and the services behind them. Running this periodically and comparing it to what you actually expect to be running is a quick way to catch forgotten test services before they become a real risk.
