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, 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:

passwd
bash

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.

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:

nano /etc/ssh/sshd_config
bash

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 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:

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

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

passwd user1
bash

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).

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:

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

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

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

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:

chmod 755 /opt/shell-login.sh
bash

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.

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.

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, 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.

Ga naar hoofdmenu