De ‘hardener’ van Ubuntu: Hoe het konstruktoid-script systemen met systemd van boven naar beneden beveiligt

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.

Scroll naar boven