SSD Nodes Learn Hosting plans →
Gidsen Matt ConnorDoor Matt Connor · Bijgewerkt 2026-08-28

VPS beveiligen: stappenplan voor de eerste 10 minuten

Een nieuwe VPS is direct een doelwit voor scanners. Volg dit stappenplan om root-toegang uit te schakelen, SSH-keys in te stellen en de firewall correct te configureren.

De eerste 10 minuten bepalen hoe veilig uw server is

Een gloednieuwe VPS is niet veilig. Vanaf het moment dat deze een openbaar IP-adres heeft, proberen scanners in te loggen. De standaard image biedt hen een groot doelwit: root is vaak bereikbaar, wachtwoorden zijn vaak toegestaan, er is geen firewall en er wordt niets volgens een schema bijgewerkt. Het goede nieuws is dat het dichten van al deze gaten ongeveer tien minuten en een handvol commando's kost. Dit is het runbook dat ik op elke nieuwe server uitvoer voordat ik er iets op plaats.

Werk de stappen in volgorde af, omdat ze op elkaar voortbouwen. Elke stap heeft zijn eigen handleiding, waarnaar u tijdens het proces wordt verwezen; deze pagina is het snelle pad dat alles met elkaar verbindt.

Minuut 1: Alles bijwerken

Log in als root met de inloggegevens die u van uw provider heeft ontvangen en werk het systeem volledig bij voordat u andere acties onderneemt:

apt update && apt upgrade -y

Een server die niet is bijgewerkt, is het makkelijkste doelwit dat er bestaat; daarom heeft dit de hoogste prioriteit. Zodra dit proces is voltooid, stelt u automatische beveiligingsupdates in zodat het systeem bijgewerkt blijft zonder dat u dit handmatig hoeft te onthouden.

Minuut 2: Maak een normale gebruiker aan met sudo

Werk niet langer als root. Maak een gebruiker voor uzelf aan en geef deze sudo-rechten:

adduser matt
usermod -aG sudo matt

Log vanaf dit punt in als deze gebruiker en gebruik sudo voor beheertaken. Voortdurend werken als root betekent dat elke fout en elk beveiligingslek plaatsvindt met onbeperkte bevoegdheden; dit is precies wat werken als een gebruiker zonder privileges beoogt te voorkomen.

Minuut 4: SSH-keys instellen

Wachtwoorden worden geraden; keys niet. Maak op uw eigen laptop een key aan als u er nog geen heeft:

ssh-keygen -t ed25519

Kopieer vervolgens de publieke helft naar de server:

ssh-copy-id matt@YOUR_SERVER

ssh-copy-id vereist dat wachtwoordauthenticatie is ingeschakeld voor de nieuwe gebruiker; als dit al is uitgeschakeld, kopieer dan de ~/.ssh/authorized_keys van root naar /home/matt/.ssh/authorized_keys (eigendom van matt), of plak uw publieke key handmatig in dat bestand.

Het model achter deze stap, één key per apparaat, de rechten die inloggen met een key verhinderen en het intrekken van een verloren key, wordt behandeld in basisprincipes van SSH-keybeheer.

Log uit en log opnieuw in als matt met de key en bevestig dat dit werkt voordat u de volgende stap uitvoert. SSH beveiligen voordat u met een key kunt inloggen, is de manier waarop mensen zichzelf buitensluiten. Als die login de melding Permission denied (publickey) geeft, los dit dan nu op in plaats van terug te vallen op het wachtwoord, omdat die ene melding vijf verschillende fouten dekt en de ssh -v-output u vertelt welke van die fouten u daadwerkelijk heeft.

Minuut 6: Schakel root-login en wachtwoorden uit

Nu uw sleutel werkt, sluit u de twee deuren waar scanners op vertrouwen. Gebruik een drop-in bestand zodat pakketupgrades dit niet overschrijven. Noem het 00- zodat het vóór 50-cloud-init.conf wordt gesorteerd, wat Ubuntu cloud-images standaard bevatten met PasswordAuthentication yes; sshd behoudt de eerste waarde die het leest, dus een bestand dat later sorteert zou stilletjes verliezen:

sudo nano /etc/ssh/sshd_config.d/00-hardening.conf
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no

Herlaad vervolgens SSH:

sudo systemctl restart ssh

Controleer daarna de instellingen die sshd daadwerkelijk gebruikt, zodat een verliezende drop-in u niet kan misleiden:

sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'

Met wachtwoorden uitgeschakeld en root-login verwijderd, kan het constante brute-force verkeer tegen uw server simpelweg niet slagen. De volledige behandeling, inclusief een optionele poortwijziging, staat in SSH hardening op een VPS.

Minuut 8: Schakel de firewall in

Hanteer een default-deny beleid voor al het inkomende verkeer en sta vervolgens alleen toe wat noodzakelijk is. Sta SSH toe voordat u de firewall inschakelt, anders verbreekt u uw eigen verbinding:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable

Voeg allow-regels toe voor elke service die u daadwerkelijk draait, zoals 80/tcp en 443/tcp voor een website. Als een nieuwe SSH-sessie na deze actie geen verbinding meer maakt, lees dan de foutmelding voordat u wijzigingen aanbrengt, want een weigering betekent dat sshd antwoordde en een timeout betekent meestal dat de firewall het pakket heeft tegengehouden. Controleer of zowel IPv4 als IPv6 zijn afgedekt, want een firewall die alleen IPv4 filtert, laat de IPv6-kant volledig open. De volledige handleiding vindt u in Firewalls 101 op een VPS. Deze ufw-commando's gaan uit van Ubuntu of Debian; op een Rocky of AlmaLinux-systeem is het doel van default-deny hetzelfde, maar is de tool firewalld. Volg in dat geval de firewalld-versie van deze stap.

Minuut 10: Vertraag scanners met Fail2ban

Voeg tot slot Fail2ban toe om IP-adressen te weren die uw poorten bestoken:

sudo apt install -y fail2ban

Op Ubuntu 24.04 beschermt de standaardinstallatie SSH vanaf de eerste opstart. Omdat het gebruik van keys al vereist is, fungeert dit als een vangnet dat logbestanden opschoont en herhaaldelijke aanvallers blokkeert, in plaats van als uw primaire verdedigingslinie.

Uw checklist

Dit is het runbook. Gebruik de onderstaande generator om elke controle af te vinken en een gepersonaliseerde checklist te genereren die u bij de server kunt bewaren, inclusief het exacte commando voor elke stap:

ToolBuild your VPS hardening checklist

Doorloop deze lijst één keer per nieuwe server en het proces wordt een routine. Tien minuten werk nu bespaart u de zeer vervelende middag die volgt wanneer een server wordt gecompromitteerd.

Zodra de essentiële zaken zijn geregeld, zorgen automatische beveiligingsupdates op Ubuntu ervoor dat de server up-to-date blijft zonder dat u opnieuw hoeft in te loggen. Elke service die u vervolgens toevoegt, vereist een eigen beoordeling en de zwakke punten verschuiven: bij een zelfgehoste wachtwoordkluis bevat de server nooit platte tekst, dus de werkelijke risico's van Vaultwarden zijn het admin-token en het back-upbestand.

FAQ

Wat moet ik als eerste doen op een nieuwe VPS?

Update het systeem met apt update && apt upgrade -y, maak daarna een normale gebruiker aan met sudo-rechten en stop met werken als root. Stel vervolgens SSH-keys in, schakel root-login en wachtwoordauthenticatie uit, activeer een default-deny firewall en installeer Fail2ban. Door deze volgorde aan te houden, voert u elke stap veilig uit zonder uzelf buiten te sluiten.

Hoe voorkom ik dat ik mezelf buitensluit tijdens het beveiligen van SSH?

Stel uw SSH-key in en test deze voordat u wachtwoorden of root-toegang uitschakelt. Log uit en weer in met de key om te bevestigen dat het werkt; schakel pas daarna PasswordAuthentication en PermitRootLogin uit. Wanneer u de firewall inschakelt, sta dan poort 22 toe voordat u ufw enable uitvoert. Mocht u zichzelf toch buitensluiten, dan biedt de webconsole van uw provider toegang zonder SSH.

Heb ik al deze maatregelen echt nodig op een kleine server?

Ja, want scanners maken geen onderscheid op basis van de grootte van uw server. Ze proberen elk publiek IP-adres op dezelfde manier. Het volledige stappenplan kost ongeveer tien minuten en elimineert de meest voor de hand liggende kwetsbaarheden: geen root-login, geen wachtwoordgokken, niets onbedoeld blootgesteld aan het internet en bekende bugs automatisch gepatcht.

Wat is de belangrijkste stap?

SSH uitsluitend via keys met uitgeschakelde root-login. De meeste aanvallen op een nieuwe VPS zijn geautomatiseerde wachtwoordpogingen op het root-account; door beide uit te schakelen, wordt dit type aanval onmogelijk. De firewall en Fail2ban beperken vervolgens wat er zichtbaar is en vertragen eventuele resterende pogingen.

Hoe controleer ik of de server daadwerkelijk goed is beveiligd?

Controleer handmatig drie zaken voordat u het systeem vertrouwt. Voer sudo ss -tlnp uit en bevestig dat alleen de poorten die u open wilde hebben luisteren op een publiek adres, zonder dat er een 0.0.0.0 of [::] service draait die u was vergeten. Voer sudo ufw status verbose uit en bevestig dat het standaard inkomende beleid deny is en dat zowel de standaard- als de (v6)-regels aanwezig zijn. Open altijd een tweede SSH-sessie voordat u de eerste sluit, zodat een fout in de SSH-configuratie u niet buitensluit van de server. Als deze drie punten in orde zijn, staat de basisbeveiliging.