Automatisering van Beveiliging met Konstruktoid/hardening
In een tijdperk waarin VPS of cloud-instanties binnen enkele minuten kunnen worden opgezet en meteen aan het internet worden blootgesteld, groeit de belangstelling voor geautomatiseerde hardening-tools. Deze tools passen best practices toe zonder dat er punten over het hoofd worden gezien. Een van de meest besproken projecten in de gemeenschap is de repository konstruktoid/hardening: een hardening-script voor Ubuntu (systemd editie) dat, in een strikte volgorde, tientallen controles uitvoert op kernel, netwerk, systemd, fstab, SSH, logging, packages, en meer, met als doel een hoog en consistent beveiligingsprofiel achter te laten.
Een orkest in verschillende bewegingen: van kernel naar systemd, van netwerk naar gebruiker
Het script volgt een logische volgorde die risico’s minimaliseert en afhankelijkheden tussen de blokken oplost. De basisstructuur van het proces omvat de volgende stappen:
1) Preflight: permissies en APT
De functie pre stelt APT-vlaggen in en controleert basisrechten. Zonder deze fundamenten kunnen latere stappen (zoals installatie en het instellen van noexec in /tmp) mislukken.
2) Kernel en netwerk: firewall en overbodige modules
De functie firewall configureert UFW indien geïnstalleerd en stelt SSH-toegang van specifieke IP-adressen in. Daarnaast worden minder gebruikelijke netmodules en ongebruikte bestandssystemen gedeactiveerd om de aanvalsvectoren te minimaliseren.
3) Systemd: consistentie en standaardlimieten
Deze sectie stelt diverse beveiligingsparameters in om de systeemd-service te versterken, waaronder het beperken van het aantal processen en bestandslimieten, evenals de configuratie van DNS-instellingen en sessiebeperkingen.
4) Tijd en bestanden: timesyncd en veilige fstab-opties
Definitie van NTP-servers voor tijdsynchronisatie en het toepassen van strikte montages voor belangrijke bestandssystemen om misbruik te voorkomen.
5) Pakketketens en opruimen van binaire bestanden
De functies prelink en aptget draaien automatisch om beschadigde pakketten te verhelpen en om het systeem bij te werken met de nieuwste beveiligingspatches.
6) Banners, permissies en hosttoegang
Het script configureert TCP Wrappers en stelt waarschuwingen in voor ongeautoriseerd gebruik, wat bijdraagt aan het verhogen van de veiligheid.
7) Gebruikers, PAM en wachtwoorden
Beveiliging van gebruikersaccounts, inclusief strikte wachtwoordbeleid en het beperken van de groepen die sudo-toegang hebben.
8) SSH-server: een moderne en strenge configuratie
Aanpassingen aan de SSH-configuratie voor veilige versleuteling, beperkte toegang en logging.
9) Logging en audit: journal, rsyslog, AIDE, rkhunter
Configuratie van logging-software om inzicht te krijgen in systeembestuur en beveiligingsincidenten.
10) Mail en coredumps
Instellingen voor lokale mailservices en het uitschakelen van coredumps om gevoelige informatie te beschermen.
11) USBGuard, AppArmor, PATH, umask
Beveiliging van USB-apparaten, toepassing van AppArmor-profielen, en het handhaven van beveiligde paden en umask-instellingen.
12) Pakketten: installeren wat beschermt, verwijderen wat stoort
Installatie van essentiële pakketten en verwijdering van overbodige software om de veiligheidsrisico’s te verlagen.
13) Cron en at, hosts en consoletoegang
Beperkingen op cron-taken en toegang tot de root-gebruiker om ongeautoriseerde toegang te voorkomen.
14) Opruiming en eindcontrole
Controleer of het systeem is voorbereid op updates en schoon is, waardoor stabiliteit en veiligheid worden gegarandeerd.
Voordelen: orde, consistentie en waarschuwingen over mogelijke problemen
De kracht van het script ligt in het uitvoeren van veel taken in de juiste volgorde en het inderspelen van duidelijke sporen. Dit zorgt ervoor dat de configuraties coherent en logisch zijn, waardoor het risico op fouten aanzienlijk wordt verminderd.
Voor wie is dit bedoeld? Wat zijn de voordelen ten opzichte van handmatige configuratie?
Voor beheerders en teams die een robuuste baseline voor Ubuntu willen zonder alles zelf te hoeven vernieuwen, biedt deze tool veel voordelen zoals:
- Idempotentie
- Consistentie
- Tijdwinst
Dit project vervangt geen CIS Benchmarks of nalevingsframeworks, maar brengt systemen dichter bij de aanbevolen beveiligingsmaatregelen.
Veelgestelde vragen
Kan dit mijn productie-server breken?
Ja, onverstandige hardening kan regressies veroorzaken, vooral bij afhankelijkheden. Maak altijd een snapshot en test in een staging-omgeving.
Kan ik selectief functies uitvoeren?
Ja, het script is zo ontworpen dat je functies kan in- of uitschakelen zonder het hele proces te verstoren.
Vervangt dit CIS Benchmarks of tools zoals Ansible?
Nee, het is een praktische tool voor hardening, niet voor naleving op grote schaal. Voor schaalbaarheid en compliance dien je deze functies te integreren in grotere oplossingen.
Welke veranderingen zijn het meest ‘gevoelig’?
Veranderingen aan montages, deactivering van modules zoals usb-storage, en veranderingen aan SSH-configuratie.
Bron
Dit artikel is gebaseerd op de documentatie van de repository van konstruktoid/hardening. Het wordt sterk aanbevolen om de README en de bijbehorende configuratiebestanden te bekijken voordat je het script in kritieke omgevingen uitvoert.
