# Hoe een server beveiligen

Het veilig configureren van uw server is een van de belangrijkste taken voor beheerders. Dit geldt niet alleen voor zelfbeheerde servers, maar ook voor gehuurde hardware. Maatregelen zoals wachtwoordbeveiliging, robuuste SSH-instellingen en regelmatige updates vormen samen een uitgebreid beveiligingspakket.

## Wie is verantwoordelijk voor een veilige serverconfiguratie?

Het hosten van uw eigen server biedt maximale vrijheid wat betreft configuratie. Een geschikt alternatief zijn [rootservers](https://www.ionos.com/servers/root-server "Affordable root servers from IONOS"), die door veel providers worden aangeboden en **toegang tot een rootaccount** verlenen. In beide scenario’s zijn kritieke taken zoals installatie, structurering en onderhoud volledig voor rekening van de huurder. Fouten in het rootgebied kunnen tot aanzienlijke problemen leiden. Door de juiste procedures te volgen, kunt u echter een ideale basis leggen voor een **betrouwbare**, **krachtige** en **veilige server**.

## Hoe u uw server stap voor stap beveiligt

Of u nu een Windows-, Ubuntu- of Debian-server wilt beveiligen, er zijn verschillende universele stappen die u kunnen helpen een **solide beveiligingsbasis** te leggen. Hieronder vatten we de belangrijkste stappen samen.

### Stap 1: Voer een minimale installatie uit

Zelfs voordat u begint met het nemen van beschermende maatregelen en het configureren van uw server, kunt u het toekomstige beveiligingspotentieel van uw project beïnvloeden. Ongeacht of u een Windows- of Linux-besturingssysteem gebruikt, pas dit principe toe tijdens de installatie: uw server mag alleen de software bevatten die nodig is om **zijn taken uit te voeren**.

De reden hiervoor is dat **elke geïnstalleerde applicatie een potentieel veiligheidsrisico vormt** en de prestaties negatief kan beïnvloeden. Om kwetsbaarheden tot een minimum te beperken, installeert u alleen de noodzakelijke systeemcomponenten en vertrouwt u uitsluitend op **geverifieerde software van derden**.

### Stap 2: Stel een sterk wachtwoord in

Na de installatie moet u eerst een sterk beheerderswachtwoord (Windows) of rootwachtwoord (Linux) instellen. Standaard is er geen waarde gedefinieerd, dus het beheerdersaccount blijft geblokkeerd totdat u een wachtwoord invoert. De meeste besturingssystemen vragen u om direct na de installatie een **account met een wachtwoord** aan te maken, dat zal fungeren als uw beheerders- of rootlogin.

Als u uw Linux-server bij een provider hebt gehuurd en een bestaande root-login hebt ontvangen, wijzig dan onmiddellijk het wachtwoord. Log in op uw server via SSH en voer de volgende opdracht in de terminal in:

```bash
passwd
```

Nadat u uw veilige wachtwoord hebt geïnstalleerd, moet u het verifiëren. Zorg ervoor dat u een wachtwoord kiest dat zo lang mogelijk is en een combinatie van **letters**, **speciale tekens** en **cijfers** bevat. Het wordt ook aanbevolen om een wachtwoordbeheerder te gebruiken om het wachtwoord veilig op te slaan, zodat u het indien nodig gemakkelijk kunt openen.

Tip Als er al een root-wachtwoord is ingesteld voor uw Linux-systeem en u weet dit niet, kunt u het wijzigen in **de herstelmodus**. Start de herstelmodus door tijdens het opstarten op de Shift-toets te drukken. Ga vanuit het menu-item ‘root’ naar de ‘Root’-prompt, waar u beheerdersrechten hebt om het wachtwoord te wijzigen.

### Stap 3: Wijzig de SSH-poort

Standaard maakt SSH-toegang gebruik van TCP/UDP-poort 22, die vooraf is geconfigureerd tijdens de installatie van het systeem. Hackers richten hun geautomatiseerde inlogpogingen vaak op deze poort. Om het risico op ongeoorloofde toegang te verminderen, kunt u een andere poort toewijzen voor **versleutelde externe verbindingen**.

Om dit te doen, bewerk je het SSH-configuratiebestand `sshd_config` met een willekeurige teksteditor. Als je bijvoorbeeld de nano-editor wilt gebruiken, voer je het volgende commando uit:

```bash
nano /etc/ssh/sshd_config
```

Zoek naar de regel met het label ‘Port’ en vervang poortnummer 22 door het nummer van uw keuze. Houd er rekening mee dat er verschillende andere standaardpoorten zijn gereserveerd voor verschillende diensten (bijvoorbeeld poort 80 voor HTTP).

Opmerking Voordat de wijzigingen in het `sshd_config` bestand van kracht worden, moet u de SSH-service opnieuw opstarten. Op [Debian](https://www.ionos.com/nl-be/digitalguide/server/knowhow/debian-de-universele-systeemsoftware/) kunt u dit doen met het commando `etc/init.d/ssh restart`. Ubuntu-gebruikers kunnen de service opnieuw opstarten met `service ssh restart`.

### Stap 4: Schakel SSH-aanmelding voor beheerdersaccounts uit

Om uw server nog beter te beveiligen, is het raadzaam om SSH-aanmelding voor het root- of beheerdersaccount uit te schakelen. Als een aanvaller namelijk toegang krijgt tot het wachtwoord, kan hij het account gebruiken voor externe toegang.

Voordat u deze maatregel implementeert, moet u ervoor zorgen dat er **ten minste één ander account** is dat verbinding kan maken met de server, om te voorkomen dat u zichzelf buitensluit. Voor Linux-systemen maakt u een account aan met behulp van de volgende opdracht:

```bash
useradd -g users -d /home/user1 -m -s /bin/bash user1
```

Hiermee wordt een voorbeeldgebruikersaccount met de naam ‘user1’ aangemaakt. Wijs vervolgens een veilig wachtwoord toe aan het account:

```bash
passwd user1
```

Test of het inloggen met het aangemaakte gebruikersaccount werkt. Als dat lukt, ga dan verder met de hoofdtaak: het uitschakelen van het root-account. Open het SSH-configuratiebestand `sshd_config` opnieuw met je favoriete editor. Zoek de vermelding `PermitRootLogin yes` en vervang deze door `PermitRootLogin no`. Na het herstarten van de SSH-service **is externe toegang voor het root-account niet meer mogelijk**.

Met behulp van de `AllowGroups` voer in het configuratiebestand kunt u ook aangeven welke gebruikers verbinding mogen maken via SSH. Hiervoor maakt u eenvoudigweg een **groep** aan (`addgroup`) en voegt u de gewenste gebruikers toe (`adduser`). Vervolgens neemt u de gekozen **groepsnaam** op in de `sshd_config` (bijv. `AllowGroups ssh_users`).

Opmerking Een alternatief voor het uitschakelen van SSH-aanmelding voor root-accounts is om aanmelding op basis van een wachtwoord volledig te verbieden en in plaats daarvan authenticatie met openbare sleutels met SSH-sleutels te gebruiken.

### Stap 5: E-mailmeldingen instellen voor SSH-aanmeldingen

Ongeacht de specifieke stappen die u neemt om SSH-toegang te beveiligen, moet u daarna continu alle activiteiten op afstand controleren. Zo kunt u controleren of de SSH-service op uw server goed beveiligd is en **ongeoorloofde toegangspogingen vroegtijdig detecteren**, zodat u adequaat kunt reageren. Een eenvoudig shellscript kan automatisch een meldingsmail naar uw adres sturen na elke succesvolle aanmelding op afstand bij uw server.

Hier is een voorbeeldscript `/opt/shell-login.sh` voor Linux, dat u eenvoudig zelf kunt maken:

```txt
#!/bin/bash
echo "Login on $(hostname) on $(date +%Y-%m-%d) at $(date +%H:%M)"
echo "User: $USER"
echo
finger
```

Voeg vervolgens de volgende regel toe aan het bestand `/etc/profile`:

```txt
/opt/shell-login.sh | mailx -s "SSH login on the server" youremail@example.com
```

Deze invoer zorgt ervoor dat het script wordt uitgevoerd en een **meldingsmail** naar het opgegeven adres wordt verzonden wanneer er een SSH-aanmelding plaatsvindt. Om dit te bereiken, moet het script toestemming 755 krijgen (lees- en uitvoerrechten voor alle gebruikers en schrijfrechten voor de eigenaar). U kunt deze toestemming instellen met de volgende opdracht:

```bash
chmod 755 /opt/shell-login.sh
```

Opmerking Als een gebruiker een SSH-verbinding tot stand brengt met behulp van een programma zoals WinSCP, dat geen volledige aanmelding uitvoert, zal het beschreven shellscript geen e-mail versturen!

### Stap 6: Blokkeer ongebruikte poorten

Open poorten vormen over het algemeen geen significant veiligheidsrisico, aangezien ze essentieel zijn voor de communicatie met verschillende diensten en toepassingen. Zo zijn poorten 80 en 443 noodzakelijk voor HTTP- en HTTPS-verbindingen, net als de door u gekozen SSH-poort. Deze interfaces kunnen echter kwetsbaarheden worden als de **bijbehorende programma’s beveiligingsfouten bevatten**, die aanvallers kunnen misbruiken.

Tip Lees in ons speciale artikel hoe u uw poorten kunt testen om een overzicht te krijgen van alle open poorten.

Als u een minimale systeeminstallatie hebt uitgevoerd en slechts een beperkt aantal applicaties van derden hebt geïnstalleerd, zou het aantal extra benodigde poorten klein moeten zijn. Om uw server tegen aanvallen te beschermen, moet u alle onnodige open poorten in uw firewallinstellingen blokkeren. De meeste grote besturingssystemen bevatten standaard **pakketfilteringssoftware**, zoals iptables. Met deze tool kunt u regels definiëren om het dataverkeer te reguleren, waaronder **het specificeren van toegestane en geblokkeerde poorten**.

### Stap 7: Werk de software regelmatig bij

**Bekende beveiligingslekken** in applicaties worden doorgaans snel verholpen met updates. Door op de hoogte te blijven van updates voor uw besturingssysteem en geïnstalleerde applicaties en deze direct toe te passen, zorgt u voor een optimale bescherming van uw server. De meeste serversystemen bieden ook functies om **kritieke beveiligingsupdates automatisch op de achtergrond te downloaden en te installeren**.

Als u bijvoorbeeld een Windows-server beveiligt, kunt u in het gedeelte **Windows Update** specifieke beleidsregels voor automatische updates configureren. Hiermee kunt u onder andere instellen wanneer en hoe vaak er naar updates wordt gecontroleerd, of deze **onmiddellijk** moeten worden **geïnstalleerd** en wanneer het systeem opnieuw moet worden opgestart. Linux-systemen bieden tools zoals `apt-listchanges` of het `apticron` shell-script om u dagelijks op de hoogte te stellen van nieuwe beschikbare softwarepakketten en deze te downloaden. Aanvullende scripts zoals `unattended-upgrades` kunnen de automatische installatie verzorgen.

Opmerking Zelfs wanneer u een geautomatiseerd updateproces gebruikt, moet u ervoor zorgen dat u bijhoudt welke updates zijn voltooid. Dit helpt bij het identificeren en oplossen van fouten die tijdens het updateproces kunnen optreden.

### Stap 8: Bescherm Windows- en Linux-servers tegen brute-force-aanvallen

Een van de eenvoudigste en meest voorkomende aanvalsmethoden is de brute-force-aanval. Bij dit type aanval gebruiken hackers tools om herhaaldelijk wachtwoorden te raden. Door krachtige **wachtwoordbeheerpraktijken** te implementeren, kunt u de kans dat deze methode slaagt aanzienlijk verkleinen.

Als uw server echter diensten aanbiedt waarvoor gebruikers moeten inloggen, kunt u er niet vanuit gaan dat alle gebruikers sterke wachtwoorden gebruiken. **Analysetools** kunnen dit risico helpen beperken: oplossingen zoals Fail2ban (Linux/POSIX-systemen) of RdpGuard (Windows) controleren serverlogbestanden, detecteren ongewoon gedrag en **blokkeren verdachte IP-adressen**. U kunt instellen hoeveel mislukte pogingen zijn toegestaan voordat er wordt geblokkeerd en hoe lang de blokkering duurt.

Tip Voor extra veiligheid kunt u overwegen om tweefactorauthenticatie in te stellen. Bij deze methode is naast het wachtwoord een tweede authenticatiefactor nodig, zoals een smartphone, smartcard of TAN-lijst.

### Stap 9: Gebruik monitoringtools

Om de veiligheid van de server te waarborgen, is het van cruciaal belang dat **de interactie tussen hardware en software** naar behoren functioneert. Dit is geen eenmalige taak, maar een voortdurende verantwoordelijkheid die constante aandacht vereist. Gezien het grote aantal **verschillende systeemprocessen** is het raadzaam om vanaf het begin monitoringtools te gebruiken. Deze tools volgen alle serveractiviteiten en waarschuwen u bij afwijkingen.

Een eenvoudig, gemakkelijk te configureren programma voor dit doel is Monit, dat via de pakketbeheerder op veel Linux-distributies kan worden geïnstalleerd. Deze open-sourceapplicatie (GNU-AGPL-licentie) kan **processen**, **bestanden**, **clouds**, **hosts**, **programma’s** of **scripts** monitoren, evenals **systeembronnen** zoals CPU- en geheugengebruik. Voor een uitgebreidere monitoring kunt u Nagios overwegen, een open-source tool die beschikbaar is voor Linux en Windows. Nagios kan ook worden uitgebreid met Nagios-plugins.

### Stap 10: Back-ups instellen

De aanbevolen configuratiestappen verbeteren de beveiliging van uw server aanzienlijk. Maar zelfs de beste configuraties en zorgvuldig onderhoud kunnen geen 100% bescherming garanderen. Een uitgebreide back-upstrategie is een cruciaal onderdeel van uw beveiligingssysteem, zodat u bestanden kunt herstellen in geval van gegevensverlies.

Er zijn veel krachtige tools beschikbaar om back-ups te maken en te herstellen. Een gratis optie is de open-source synchronisatietool [rsync](https://www.ionos.com/nl-be/digitalguide/server/gereedschap/serverback-ups-instellen-met-rsync/), die compatibel is met de meeste grote platforms (macOS, Windows, Linux). Deze tool houdt uw back-up in realtime up-to-date door alle wijzigingen in de originele gegevens te spiegelen.

Zorg ervoor dat u naast een algemene serverback-up ook een back-up maakt van uw databases.

Opmerking Voor maximale back-upbeveiliging slaat u back-ups op **externe opslagapparaten** op (bijvoorbeeld draagbare harde schijven, extra servers) in plaats van op de server die wordt beveiligd.


This is a markdown version of: [https://www.ionos.com/nl-be/digitalguide/server/configuratie/een-server-beveiligen-linux-correct-configureren-enz/](https://www.ionos.com/nl-be/digitalguide/server/configuratie/een-server-beveiligen-linux-correct-configureren-enz/) for AI/LLM consumption.