Iedere systeembeheerder heeft het wel eens meegemaakt: een IP-adres dat honderden inlogpogingen doet, systematisch op zoek naar een zwakke plek. Deze aanvallen kunnen je webserver flink belasten, en als ze van server naar server springen, blijft het probleem zich herhalen. Toen ik mijn nieuwe webserver opzette en dezelfde brute-force patronen opmerkte, wist ik dat ik hier iets mee moest. Gelukkig kan ik met een beetje creativiteit en de hulp van beschikbare tools snel tot een oplossing komen.
De uitdaging: brute-force-aanvallen stoppen Na de eerste paar uur draaien van mijn nieuwe webserver viel het me op dat enkele IP-adressen honderden mislukte inlogpogingen registreerden. Hoewel mijn server bestand is tegen deze aanvallen, slurpen ze onnodige CPU-kracht en bandbreedte. Bovendien weet je nooit precies wat deze scanners proberen te vinden.
Wat als ik dit verkeer al vroeg in het proces kan blokkeren, voordat het mijn servers bereikt? Alles loopt immers door dezelfde internetrouter. Enter: Mikrotik’s RAW-functie.
De kracht van Mikrotik’s RAW-functie De RAW-functie van Mikrotik biedt een efficiënte manier om ongewenst verkeer af te handelen. Voordat data de standaard firewall-lijsten bereikt, verwerkt de RAW-regel deze al. Hierdoor vraagt het filteren veel minder CPU-kracht en blijft je netwerk soepel draaien, zelfs tijdens een brute-force-aanval.
Met deze functie kan ik ongewenst verkeer direct ‘droppen’, zodat het mijn netwerk niet eens meer kan betreden. Een krachtige oplossing, maar hoe zorg ik ervoor dat de lijst van verdachte IP-adressen actueel blijft?
Mijn oplossing: een Python-script en automatisering Met behulp van een Python-script en wat creativiteit ben ik tot een praktische aanpak gekomen. Hier is hoe het werkt:
- Data verzamelen: Het script haalt elke nacht om 02:00 uur de logbestanden op van mijn twee webservers. Het zoekt naar IP-adressen met meer dan 100 mislukte inlogpogingen.
- Lijst genereren: Deze IP-adressen worden samengevoegd tot een “blocklist”, die als accesslist beschikbaar wordt gesteld.
- Automatische import: Mijn Mikrotik-router downloadt deze lijst automatisch en voegt de IP-adressen toe aan de RAW-accesslist.
Met deze setup wordt ongewenst verkeer meteen geblokkeerd zonder significante belasting voor mijn netwerk.
Een efficiënte firewall dankzij RAW De RAW-functie heeft een cruciaal voordeel: het verwerkt verkeer voordat het de “/ip firewall filter” bereikt. Dit betekent dat zelfs intensieve scans of brute-force-aanvallen de firewall niet meer bereiken. Hierdoor blijven zowel de firewall als de achterliggende machines onbelast.
Het resultaat? Een veiliger netwerk zonder extra overhead, gerealiseerd in minder dan een uur werk.
Vrij te gebruiken Samen maken we het internet veiliger. Daarom heb ik mijn script beschikbaar gemaakt op GitHub onder de naam mikrotik-helpers. ( een nieuwe repo met scripts speciaal voor mikrotik gebruikers ) Met dit script kun je eenvoudig je eigen addresslijst genereren, aangepast aan de logs van jouw DirectAdmin-servers. Het script verwerkt deze gegevens tot een lijst die je kunt importeren in je Mikrotik-router.
Een kanttekening is wel : mijn lijst is mogelijk niet relevant voor jouw situatie. Het is beter om je eigen logs te gebruiken en een specifieke lijst samen te stellen.
Dit project is een voorbeeld van hoe je met een beetje improvisatie en moderne tools een groot verschil kunt maken in je beveiliging . Door gebruik te maken van de kracht van Mikrotik’s RAW-functie en een slim stukje Python-code heb ik mijn servers beschermd tegen brute-force-aanvallen, zonder mijn netwerk te belasten.
Wil je zelf aan de slag? Bekijk mijn script op GitHub en ontdek hoe eenvoudig het is om je netwerk een stuk veiliger te maken.
Heb jij ook slimme oplossingen voor netwerkproblemen? Deel ze in de reacties of neem deel aan onze Discord server. En dan maken we samen het internet een stukje veiliger!