De eerste stappen op een nieuwe VPS zijn: inloggen, het systeem bijwerken, een sudo-gebruiker met een SSH-sleutel aanmaken, de hostnaam en tijdzone instellen, swap toevoegen op kleine pakketten en een firewall aanzetten. Dat kost ongeveer 15 minuten en dekt het meeste af van wat aanvallers als eerste proberen.
De commando's hieronder zijn voor Ubuntu 24.04 en Debian 12. Vervang waarden tussen punthaken en het voorbeeldadres 203.0.113.10 door je eigen gegevens.
1. De eerste keer inloggen
Bij het aanmaken van een server kies je een SSH-sleutel of een rootwachtwoord dat per e-mail wordt verstuurd. Met een sleutel:
ssh [email protected] # voorbeeldadres
Bij de eerste verbinding moet je de vingerafdruk van de hostsleutel bevestigen. Typ yes. Heb je een wachtwoord gebruikt, dan wordt daarnaar gevraagd; wijzig het meteen met passwd.
Heb je nog geen sleutel, lees dan eerst hoe je SSH-sleutels aanmaakt en gebruikt. Het kost twee minuten en is de moeite waard.
2. Alles bijwerken
Nieuwe images zijn recent, maar pakketten veranderen snel. Werk bij voordat je iets installeert:
apt update
apt full-upgrade -y
apt autoremove -y
Is de kernel bijgewerkt, herstart dan:
[ -f /var/run/reboot-required ] && reboot
Wacht een halve minuut en log opnieuw in.
3. Automatische beveiligingsupdates aanzetten
Ubuntu levert unattended-upgrades mee; op Debian moet je het misschien installeren:
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades # antwoord "Yes"
Hiermee worden beveiligingsupdates dagelijks geïnstalleerd. Standaard wordt er niet herstart. Wil je herstarts op een rustig moment toestaan, pas dan /etc/apt/apt.conf.d/50unattended-upgrades aan:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
4. Een gewone gebruiker met sudo aanmaken
adduser deploy # kies een willekeurige naam
usermod -aG sudo deploy
Kopieer de geautoriseerde sleutels van root naar de nieuwe gebruiker, zodat je met dezelfde sleutel kunt inloggen:
mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
Open een tweede terminal en test voordat je verdergaat:
ssh [email protected]
sudo whoami # moet tonen: root
Houd de rootsessie open totdat het nieuwe inloggen werkt.
5. Hostnaam en tijdzone instellen
sudo hostnamectl set-hostname web-1
sudo timedatectl set-timezone Europe/Berlin
timedatectl # controleer: "System clock synchronized: yes"
Voeg de hostnaam toe aan /etc/hosts als sudo waarschuwt dat hij die niet kan resolven:
127.0.1.1 web-1
Veel beheerders houden servers op UTC, zodat logs makkelijker te vergelijken zijn. Beide is prima; wees alleen consequent.
6. Swap toevoegen op kleine servers
Pakketten met 1 of 2 GB geheugen hebben baat bij een swapbestand. Controleer eerst:
swapon --show
free -h
Staat er niets, maak dan een bestand van 1 GB of 2 GB aan:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Laat de kernel de voorkeur geven aan geheugen en alleen onder druk swap gebruiken:
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swap.conf
sudo sysctl --system
7. Een firewall aanzetten
Je hebt twee lagen, en je kunt ze allebei gebruiken.
Op de server: UFW
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose
Open andere poorten alleen als een dienst ze nodig heeft, bijvoorbeeld sudo ufw allow 80,443/tcp voor een webserver.
Vóór de server: cloudfirewall
Een firewall van Wolkra filtert verkeer voordat het de server bereikt en kan via labels op veel servers tegelijk worden toegepast. Hij is gratis. Een veelgebruikte opzet staat SSH alleen toe vanaf het adres van je kantoor of thuis, en HTTP/HTTPS vanaf overal. Zie de documentatie over firewalls.
8. SSH beveiligen
Zodra inloggen met een sleutel werkt voor je sudo-gebruiker, schakel je wachtwoorden en inloggen als root uit. Maak een drop-in-bestand aan:
sudo tee /etc/ssh/sshd_config.d/10-hardening.conf >/dev/null <<'EOF'
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
EOF
sudo sshd -t && sudo systemctl reload ssh
sshd -t controleert eerst de syntax, zodat een typfout je niet buitensluit. Alle beveiligingsstappen staan in een Ubuntu-server beveiligen.
9. Een paar handige tools installeren
sudo apt install -y curl wget git htop ncdu unzip ca-certificates
htoptoont processen en geheugen live.ncdu /vindt wat je schijf vult.journalctl -p warning -btoont waarschuwingen sinds de laatste start.
10. Reverse DNS instellen als je e-mail verstuurt of een nette naam nodig hebt
Verstuurt de server mail of moet hij terug resolven naar een hostnaam, stel dan in de console het PTR-record voor zijn IP in. Zorg dat het forward-DNS-record (A of AAAA) naar hetzelfde adres wijst. Zie IP-adressen.
11. Plan nu je back-ups
Een verse server is het beste moment om over back-ups te beslissen. Bij Wolkra kun je dagelijkse automatische back-ups aanzetten (20% van de serverprijs, 7 herstelpunten) en snapshots maken vóór riskante wijzigingen. Voor belangrijke data voeg je daarnaast een kopie buiten de server toe. De handleiding voor een back-upstrategie legt de 3-2-1-regel in de praktijk uit.
12. Weet hoe je weer binnenkomt
Er gaat weleens iets mis: een te strenge firewallregel, een typfout in de SSH-config. Noteer voordat dat gebeurt waar de reddingsmiddelen zitten:
- de console in de browser (VNC) in het serveroverzicht, die ook zonder netwerktoegang werkt;
- de rescue-modus, die een klein systeem opstart zodat je de schijf kunt mounten en bestanden kunt herstellen;
- rebuild, dat het image opnieuw installeert als de server niet meer te redden is.
Checklist
- Ingelogd met een SSH-sleutel
- Bijgewerkt en herstart
- Automatische beveiligingsupdates aan
- Sudo-gebruiker aangemaakt en getest
- Hostnaam en tijdzone ingesteld
- Swap op kleine pakketten
- UFW en/of cloudfirewall ingeschakeld
- Inloggen als root en met wachtwoorden uitgeschakeld
- Reverse DNS ingesteld indien nodig
- Back-ups ingeschakeld
Zet daarna iets live: probeer Docker Compose, WordPress of een Caddy-reverse proxy.
Veelgestelde vragen
Wat moet ik als eerste doen op een nieuwe VPS?
Log in, installeer alle updates, maak een gewone gebruiker aan met sudo-rechten en een SSH-sleutel, en zet daarna een firewall aan. De rest kan later.
Moet ik het root-account gebruiken?
Gebruik root alleen voor de eerste keer inloggen. Dagelijks werk is veiliger vanuit een gewone gebruiker met sudo, omdat vergissingen dan een expliciete sudo vereisen en logs laten zien wie wat heeft gedaan.
Heeft een VPS swap nodig?
Kleine servers met 1 of 2 GB geheugen hebben baat bij een bescheiden swapbestand. Dat voorkomt dat de kernel processen afsluit bij korte geheugenpieken.
Hoe vind ik het IP-adres van mijn server?
Het staat in het serveroverzicht in de console. Op de server zelf voer je ip -brief address uit.
Wat als ik mezelf buitensluit?
Gebruik de console in de browser in de Wolkra-console, of start de server op in rescue-modus om de SSH- of firewallinstellingen te herstellen.