Een onbeveiligde server is een open uitnodiging voor hackers. Bij Theory7 zien we dagelijks pogingen om servers te compromitteren via brute force aanvallen, exploits en andere methodes. Met de juiste beveiligingsmaatregelen kun je het overgrote deel van deze aanvallen blokkeren. In deze handleiding behandelen we de essentials van serverbeveiliging.

Waarom serverbeveiliging cruciaal is

Een gehackte server kan leiden tot:

  • Dataverlies - Belangrijke bestanden gewist of versleuteld
  • Spam verzending - Je server verstuurt spam, je IP komt op blacklists
  • Malware hosting - Je server host schadelijke content
  • DDoS aanvallen - Je server wordt gebruikt om anderen aan te vallen
  • Reputatieschade - Je domein en IP raken besmet

Voorkomen is vele malen beter dan genezen. Het is essentieel om je server te beschermen tegen deze bedreigingen, niet alleen om je eigen gegevens te beschermen, maar ook om de integriteit van je klanten en gebruikers te waarborgen.

SSH beveiligen

SSH is de belangrijkste toegangspoort tot je server. Beveilig deze grondig.

SSH poort wijzigen

De standaard poort 22 wordt constant gescand. Wijzig naar een andere poort:

sudo nano /etc/ssh/sshd_config

Zoek de regel Port 22 en wijzig naar bijvoorbeeld:

Port 2222

Herstart SSH na de wijziging:

sudo systemctl restart sshd

Vergeet niet de firewall aan te passen voor de nieuwe poort. Dit kan je doen door de firewall regels bij te werken, zodat de nieuwe poort toegankelijk is.

Root login uitschakelen

Schakel directe root login uit. Werk met een normale gebruiker en gebruik sudo voor administratieve taken:

sudo nano /etc/ssh/sshd_config

Wijzig:

PermitRootLogin no

Dit voorkomt dat hackers eenvoudig toegang krijgen tot de root account, wat een veelvoorkomend doelwit is.

SSH keys verplichten

Schakel wachtwoord authenticatie uit en gebruik alleen SSH keys:

PasswordAuthentication no
PubkeyAuthentication yes

Genereer eerst een SSH key op je lokale computer en kopieer de public key naar de server voordat je wachtwoord authenticatie uitschakelt. Dit verhoogt de beveiliging aanzienlijk, omdat het moeilijker is voor aanvallers om toegang te krijgen zonder de juiste sleutel.

Firewall configureren met UFW

UFW (Uncomplicated Firewall) maakt firewallbeheer eenvoudig en toegankelijk voor iedereen.

UFW installeren en basis regels

sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing

Deze basisinstellingen zorgen ervoor dat alle inkomende verbindingen worden geblokkeerd, tenzij specifiek toegestaan.

Poorten openzetten

Open alleen de poorten die je nodig hebt:

# SSH (aangepaste poort)
sudo ufw allow 2222/tcp

# Webverkeer
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# DirectAdmin
sudo ufw allow 2222/tcp

Firewall activeren

sudo ufw enable

Controleer de status:

sudo ufw status verbose

Dit geeft je een overzicht van welke poorten open zijn en welke regels actief zijn.

Fail2ban tegen brute force

Fail2ban monitort logbestanden en blokkeert IPs die herhaaldelijk falen bij inlogpogingen. Dit is een effectieve manier om brute force aanvallen te voorkomen.

Installatie

sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

SSH jail configureren

Maak een lokale configuratie:

sudo nano /etc/fail2ban/jail.local

Voeg toe:

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600

Dit blokkeert een IP voor 1 uur na 3 mislukte loginpogingen binnen 10 minuten. Dit kan helpen om aanvallers af te schrikken en je server veiliger te maken.

sudo systemctl restart fail2ban

Systeem updates

Verouderde software bevat vaak bekende kwetsbaarheden die door aanvallers kunnen worden misbruikt.

Handmatige updates

sudo apt update && sudo apt upgrade -y

Het is belangrijk om regelmatig je systeem bij te werken om de laatste beveiligingspatches te ontvangen.

Automatische security updates

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

Door automatische updates in te schakelen, zorg je ervoor dat je altijd de nieuwste beveiligingspatches hebt zonder dat je er zelf aan hoeft te denken.

Extra beveiligingstips

Ongebruikte services uitschakelen

Elk draaiend proces is een potentieel aanvalsvector. Schakel ongebruikte services uit:

sudo systemctl list-unit-files --type=service --state=enabled
sudo systemctl disable servicenaam

Sterke wachtwoorden afdwingen

Configureer password policies met PAM of gebruik alleen SSH keys. Dit helpt om zwakke wachtwoorden te voorkomen die gemakkelijk te raden zijn.

Log monitoring

Check regelmatig je logs op verdachte activiteit:

sudo tail -f /var/log/auth.log
sudo tail -f /var/log/syslog

Door regelmatig je logs te controleren, kun je verdachte activiteiten tijdig opmerken en actie ondernemen.

Two-factor authentication

Overweeg 2FA voor SSH met Google Authenticator of vergelijkbaar. Dit voegt een extra laag beveiliging toe, waardoor zelfs als een aanvaller je wachtwoord heeft, ze nog steeds niet kunnen inloggen zonder de tweede factor.

Beveiligingschecklist

Gebruik deze checklist bij elke nieuwe server:

  • SSH poort gewijzigd
  • Root login uitgeschakeld
  • SSH keys geconfigureerd
  • Wachtwoord auth uitgeschakeld
  • UFW firewall actief
  • Fail2ban geïnstalleerd
  • Automatische updates actief
  • Onnodige services uitgeschakeld

Gerelateerde artikelen

Meer informatie over VPS servers bij Theory7

Hulp nodig?

We staan voor je klaar! Loop je ergens tegenaan of heb je vragen? Ons supportteam helpt je graag persoonlijk verder. Stuur ons een berichtje via het ticketsysteem - we reageren meestal binnen een paar uur en denken graag met je mee.