06 - 52 442 081

Home » Hoe ik mijn server stap voor stap heb afgeschermd tegen aanvallen

Hoe ik mijn server stap voor stap heb afgeschermd tegen aanvallen

10 juli 2025

Hoe ik mijn server stap voor stap heb afgeschermd tegen aanvallen

Hoe JLink jouw website veilig houdt

Hoe zorg je dat een server niet alleen snel is, maar ook bestand tegen aanvallen van buitenaf? In dit artikel laat ik zien hoe ik mijn server laag voor laag heb afgeschermd tegen ongewenst verkeer — met een combinatie van firewall, monitoring en slimme filtering.

1. De basis: Firewall en monitoring

De eerste laag in elke beveiligingsstrategie is een solide firewall. Ik gebruik firewalld met directe regels en ipsets voor maximale controle. Alle inkomend verkeer wordt standaard geblokkeerd, behalve wat expliciet is toegestaan.

Daarnaast log ik actief het netwerkverkeer, zodat ik afwijkingen snel kan detecteren. Deze logging vormt de basis voor monitoring en detectie van ongewenste patronen.

Benieuwd hoe JLink je website veilig en betrouwbaar houdt?
In dit artikel leg ik het uit:

In deze blog leg ik uit hoe je websitealtijd bereikbaar is, veilig blijft voor bezoekers én niet zomaar uit de lucht valt

2. Fail2ban voor actieve bescherming

Een firewall is statisch. Fail2ban voegt daar een dynamische laag aan toe. Bij verdachte activiteit (zoals brute force-pogingen) wordt het IP-adres automatisch tijdelijk geblokkeerd.

Ik gebruik aangepaste jails en een combinatie van regex-patronen om effectief in te grijpen bij aanvallen op bijvoorbeeld /wp-login.php, XML-RPC of foutmeldingen in Apache. De bans worden via ipsets verwerkt, zodat firewalld de blokkade direct kan uitvoeren.

3. Whitelists met Bunny.net en Cloudflare

Een belangrijke uitdaging bij het gebruik van een CDN (zoals Cloudflare of Bunny.net) is dat het verkeer afkomstig lijkt van hun edge-servers. Daardoor zie je het echte IP-adres van de bezoeker niet zonder aanvullende maatregelen.

Om legitiem verkeer van het CDN niet per ongeluk te blokkeren:

  • Haal ik de IP-ranges van Cloudflare en Bunny.net automatisch op via hun API’s.
  • Vul ik ipsets met deze adressen, die via firewalld altijd worden toegestaan.
  • Synchroniseer ik deze whitelists ook naar de ignoreip-instellingen van Fail2ban.

Deze scripts draaien op vaste momenten via cron, zodat ik altijd de actuele ranges gebruik.

Cloudflare bescherming

4. Landen blokkeren bij verdacht of ongewenst verkeer

Sommige landen staan bekend als herkomst van veel crimineel of ongewenst verkeer. Zeker bij websites met een puur Nederlands publiek (zoals lokale verenigingen) is het logisch om zulke landen preventief te blokkeren.

In eerste instantie deed ik dit via ipsets op de server zelf, maar vanwege de inzet van Cloudflare bleek het effectiever en eenvoudiger om dit via hun Security Rules te regelen — zo voorkom je dat ongewenst verkeer überhaupt bij de server komt.

Daarmee wordt verdacht verkeer al tegengehouden voordat het de server bereikt. Deze landenblokkades zijn per domein configureerbaar en worden alleen toegepast als ze functioneel bijdragen aan de veiligheid en rust.

Wil je weten hoe jouw website technisch presteert?

Vraag een vrijblijvende analyse aan — dan kijk ik met je mee.

5. Cloudflare IP-lists als extra barrière

Omdat firewalld alleen de zichtbare IP-adressen kan blokkeren (meestal de CDN-edge), gebruik ik ook Cloudflare zelf als beschermlaag. Bij een ban door Fail2ban:

  • Voeg ik het IP-adres toe aan een Cloudflare IP-list via hun API.
  • Die IP-list wordt gebruikt in een firewall rule binnen Cloudflare zelf.

Op die manier wordt het IP-adres al bij Cloudflare tegengehouden — nog voordat het je server bereikt. Unban werkt op dezelfde manier via de API.

Bunny Shield: Extra bescherming voor media en verkeer

Voor websites met veel mediaverkeer zet ik Bunny.net in. Dat biedt niet alleen supersnelle edge caching via pullzones, maar ook extra beveiligingslagen:

  • Edge caching
    Afbeeldingen en bestanden worden dicht bij de bezoeker geserveerd. Dat ontlast de server én versnelt de laadtijd.
  • Bunny Shield
    Hiermee voorkom ik misbruik zoals hotlinking of massale mediaverzoeken door bots. Alleen de IP-adressen van Bunny mogen nog media opvragen — directe toegang tot bestanden vanaf andere netwerken wordt geblokkeerd.

Deze combinatie houdt mediaverkeer onder controle, beschermt de server en draagt bij aan een snelle, stabiele gebruikerservaring.

Netdata monotor

7. Monitoring: constant inzicht, snel ingrijpen

Tot slot is goede monitoring essentieel. Dankzij tools zoals NetData, script logging en externe uptime checks weet ik precies:

  • Wie er inlogt en wanneer
  • Of een website langzamer wordt
  • Of een IP-adres ineens ongebruikelijk veel verkeer genereert

Problemen worden meestal al gesignaleerd vóórdat ze gevolgen hebben. Zo blijf ik in controle.

Mijn aanpak: gestructureerd, getest, onderhoudbaar

Elke maatregel hierboven is ontstaan uit een concreet probleem in de praktijk. Belangrijk was om niet telkens te ‘plakken en knippen’ met losse oplossingen, maar een gestructureerd geheel te bouwen dat:

  • Transparant is (alles via logs, scripts en ipsets),
  • Onderhoudbaar blijft (geen hacks, minimale afhankelijkheden),
  • En flexibel is per site of klant.

Ik help je graag met een serverinrichting die van meet af aan veilig, snel en toekomstbestendig is — afgestemd op jouw situatie. Geen overbodige software, maar een doordachte technische basis.

Ook jouw website veilig draaien op een stevig fundament?

Neem gerust contact op — ik kijk graag mee of een migratie naar de JLink-standaard ook voor jou de oplossing is.

Jan  Lucas

Geschreven door Jan Lucas

Jan Lucas is eigenaar van JLink - Schakel naar Succes.
Met ruim 20 jaar ervaring met het ontwikkelen van voornamelijk Wordpress websites weet hij wat belangrijk is om online succesvol te zijn.