Currently accepting new security engagementsRequest a scope
How this work runsLinux and VPS configuration and hardening

Taking over a server that was set up quickly and never reviewed

A walkthrough of a Linux and VPS hardening engagement, from the first audit to the point where the server is documented, monitored and provably recoverable. This describes the method rather than a specific client, and no result is claimed for it.

The common starting point: one VPS, configured under launch pressure, running in production ever since

A walkthrough, not a result. This describes how this type of work runs at Nextralix. There is no client attached to it and no outcome claimed by it. It is here so you can judge the method before committing to an engagement, and it is labelled this way rather than dressed up as a success story.

The situation

Servers set up in a hurry are rarely wrong in an obvious way. They tend to be undocumented, over-permissioned and unmonitored, with a backup routine nobody has ever tested. The work is not dramatic. It is a list, worked through in order, with each item verified rather than assumed.

How it was approached

  1. Audit first, change nothing: running services and listening ports, open firewall rules, user accounts and sudo access, key based versus password authentication, package and kernel currency, log destinations and retention.
  2. Reduce exposure: close everything the application does not need, restrict administrative access to keys and known sources, and separate the application's runtime user from any account with administrative rights.
  3. Make the configuration reproducible, so the server can be rebuilt from a document rather than from one person's memory.
  4. Set up unattended security updates with a defined reboot policy, so patching is not dependent on somebody remembering.
  5. Configure backups, then restore one into a scratch environment. A backup that has never been restored is an assumption, not a backup.
  6. Hand over a written record of what changed, why, and what to watch.

What usually surfaces

The recurring pattern in this work is not a missing patch. It is that nobody currently knows what the server is running, who can reach it, or whether the backups restore.

What changes as a result

Once the configuration is written down and the restore has been tested, an incident becomes a procedure instead of an emergency, and the next engineer does not have to reverse engineer the machine before they can safely touch it.

What is put in place

  • Least privilege for the application runtime user, so a compromised application does not equal a compromised host.
  • Key based administrative access only, with password authentication disabled.
  • A firewall that denies by default and documents each exception.
  • Automatic security updates with an agreed reboot window.
  • Backups with a restore that has actually been performed and dated.
Check this on your own system

Three things worth doing this week

None of these needs a purchase order. They are the checks that most often turn up something on a system nobody has looked at from the outside.

Ask when the backup was last restored

Not when it last ran. If nobody can name a date when a restore was performed and checked, treat the backup as untested.

Count the accounts that can become root

On a server that has been through a few contractors, this number is usually higher than anyone expects, and some of the accounts belong to people who left.

A server no one has documented is a single point of failure with a person attached

The risk is not only that the machine fails. It is that the one person who understands it becomes unavailable.

More in this area

Cloud and DevOps

All case studies

Want to know whether this applies to you?

Tell us what you are running and which of these worries you. We will tell you plainly whether it is worth testing, what it would cost, and when the answer is that you should fix something yourself first.