aslain.dev
0%
01 Hizmetler 02 Hakkımda 03 Projeler 04 Stack 05 Blog 06 İletişim
← Tüm makaleler Tools & DevOps

VPS-beveiligingschecklist: eerste installatiestappen

De klok begint te lopen zodra je een nieuwe VPS hebt: elke server die aan het internet hangt, krijgt binnen enkele minuten na livegang met geautomatiseerde botscans te maken. Een stevige basis voor VPS-beveiliging leg je in die eerste uren, nog voordat je ook maar één applicatie installeert. In dit artikel deel ik de checklist die ik op volgorde doorloop wanneer ik een verse Ubuntu/Debian-server klaarmaak voor productie: een gebruiker met rechten, SSH-hardening, een firewall, fail2ban, automatische beveiligingsupdates en een paar essentiële goede gewoonten.

1. Eerste login en systeemupdate

Je provider geeft je meestal een root-wachtwoord of een SSH-sleutel. De allereerste taak is de pakketlijst verversen en geïnstalleerde pakketten bijwerken. Oude pakketten komen met bekende kwetsbaarheden; updaten is de goedkoopste beveiligingswinst die er is.

apt update && apt upgrade -y

Kwam er een kernel- of bibliotheekupdate binnen, herstart de server dan één keer: reboot. Dit is ook een goed moment om je tijdzone en hostnaam in te stellen.

2. Maak een gebruiker met rechten (sudo) in plaats van root

Alles als root doen betekent dat één verkeerd commando of een gekaapte sessie het hele systeem kan platleggen. Maak je eigen gebruiker aan en voeg hem toe aan de sudo-groep:

adduser aslain
usermod -aG sudo aslain

Schakel over naar de nieuwe gebruiker en draai sudo whoami om de rechten te bevestigen. Vanaf nu doe je het dagelijks werk met deze gebruiker, en straks schakelen we directe root-login volledig uit.

3. Gebruik een SSH-sleutel, laat het wachtwoord los

Inloggen met een wachtwoord is een open deur voor brute-force-aanvallen. Gebruik in plaats daarvan een SSH-sleutelpaar. Heb je geen sleutel op je eigen machine, genereer er dan een:

ssh-keygen -t ed25519 -C "aslain@laptop"

Kopieer de publieke sleutel naar de server:

ssh-copy-id aslain@SERVER_IP

Kun je nu inloggen met ssh aslain@SERVER_IP zonder dat om een wachtwoord wordt gevraagd, dan werkt de sleutel. Schakel wachtwoordlogin niet uit voordat je de sleuteltoegang hebt geverifieerd, anders sluit je jezelf misschien buiten.

4. Hard de SSH-configuratie

SSH-hardening is een van de stappen met het hoogste rendement op het vlak van VPS-beveiliging. Bewerk /etc/ssh/sshd_config (of een apart bestand onder /etc/ssh/sshd_config.d/):

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

Op volgorde: deze instellingen blokkeren directe root-login, schakelen wachtwoordauthenticatie volledig uit en staan alleen toegang met sleutel toe. Herstart na de wijziging de service:

systemctl restart ssh

Belangrijke tip: open een nieuwe terminal en probeer opnieuw te verbinden, maar houd de bestaande sessie open. Heb je een fout gemaakt, dan kun je via de open sessie terug om het te herstellen. De standaardpoort 22 veranderen is security by obscurity; het biedt geen echte bescherming maar vermindert wel de logruis — je kunt het doen, maar het vervangt geen firewall en geen sleutellogin.

5. Zet een firewall op en open alleen de nodige poorten

Op Ubuntu/Debian is ufw (Uncomplicated Firewall) het handigste hulpmiddel. De logica is simpel: weiger alles, sta alleen toe wat je nodig hebt.

ufw default deny incoming
ufw default allow outgoing
ufw allow OpenSSH
ufw enable

Ga je een webserver draaien, open dan ook HTTP en HTTPS:

ufw allow 80/tcp
ufw allow 443/tcp

Controleer de status met ufw status verbose. Let op: zorg dat de SSH-regel aanwezig is voordat je de firewall inschakelt, anders sluit je jezelf buiten.

6. Blokkeer geautomatiseerde aanvallen met fail2ban

Zelfs na de overstap naar sleutellogin lopen je logs vol met mislukte inlogpogingen. fail2ban bant een IP tijdelijk na een ingesteld aantal mislukkingen:

apt install fail2ban -y
systemctl enable --now fail2ban

De standaardinstellingen geven redelijke SSH-bescherming. Wil je het aanpassen, maak dan een bestand /etc/fail2ban/jail.local (bewerk jail.conf zelf niet — dat wordt bij een update overschreven):

[sshd]
enabled = true
maxretry = 4
bantime = 1h

Geblokkeerde IP's bekijk je met fail2ban-client status sshd.

7. Zet automatische beveiligingsupdates aan

Mensen vergeten te updaten; automatisering niet. Gebruik unattended-upgrades om beveiligingspatches vanzelf toe te passen:

apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades

Standaard installeert dit pakket alleen updates uit de beveiligingsrepository's, zodat je geen onverwachte grote versiesprongen krijgt. Toch is het verstandig om op kritieke systemen de updates ook zelf periodiek na te lopen.

8. Een paar essentiële goede gewoonten

  • Tijdsynchronisatie: draai timedatectl set-ntp true om de klok kloppend te houden; dat is belangrijk voor certificaten en logs.
  • Minimale rechten: draai services onder hun eigen beperkte gebruikers, niet als root.
  • Back-ups: beveiliging gaat niet alleen over aanvallen tegenhouden, maar ook over herstellen op een slechte dag. Sla de snapshotfunctie van je provider en regelmatige databack-ups niet over.
  • Monitoring: werp af en toe een blik op de loginrecords met journalctl en last.

Zodra deze stappen een gewoonte zijn, kost het minder dan een halfuur om een nieuwe server op een veilige basis te zetten.

Veelgestelde vragen

Moet ik de SSH-poort van 22 veranderen?

Dat is niet verplicht. De poort veranderen vermindert de geautomatiseerde logruis, maar is geen echte beveiligingslaag. De echte bescherming is sleutellogin, uitgeschakelde wachtwoordauthenticatie en een firewall; een poortwijziging vervangt die niet.

Wat gebeurt er als ik wachtwoordlogin uitschakel en mijn sleutel verlies?

Dan ben je volledig buitengesloten van de server. Maak dus een veilige back-up van je sleutel en ken de webgebaseerde console (VNC/recovery) die de meeste providers bieden; daar kun je inloggen en een nieuwe sleutel toevoegen.

Doen fail2ban en de firewall hetzelfde werk?

Nee. De firewall bepaalt welke poorten open zijn; fail2ban detecteert herhaald kwaadaardig gedrag (zoals mislukte logins) op die open poorten en bant het betreffende IP tijdelijk. De twee vullen elkaar aan.

Hulp nodig bij het opzetten van een server? Ik help met het harden van Linux-servers, het opzetten van game-/webservers en DevOps-werk. Wil je je project bespreken, neem dan contact op.

Bu kategorideki tüm yazılar →

Devamı için