« Terug (Cursus)

Cursus: Linux beveiligen

Inhoudsopgave

Artikel voor het laatst bijgewerkt op .

In deze cursus behandelen we hoe een Linux-systeem beveiligd kan worden. We bekijken maatregelen die je zou kunnen nemen en hoe je bepaalde besluitvorming zelf kan doen om te bepalen welke maatregelen nuttig zijn voor jouw situatie.

In aanbouw

Deze cursus is in aanbouw en zal geleidelijk groeien tot een volwaardig geheel. Het schrijven van toegankelijke teksten kost tijd, dus kijk later gerust nog een keer.

Beveiliging is risicobeheer

Bij een bank is veel geld te halen, dus iedereen snapt dat een bank ervoor kiest om extra veiligheidsmaatregelen te nemen. Denk aan de dikke kluis, betonblokken voor een pand en een uitgebreid netwerk aan camera’s en alarmsensoren.

Goed om te realiseren is dat iedere maatregel tijd en geld kost. Veiligheid en gemak zijn vaak in conflict met elkaar. Daarom maken we afwegingen en bekijken we de risico’s: wat kan er mis gaan en hoe groot is die kans?

Jouw systeem is vermoedelijk geen bank, maar gelijktijdig wil je wel voldoende doen om je persoonlijke informatie te beveiligen.

Inzicht

Meer gemak betekent meestal minder veiligheid. Een goede balans tussen gemak en veiligheid bepaal je daarom zelf.

Veiligheid begint bij het begin

Een systeem is zo veilig als de zwakste schakel. Het is daarom goed om regelmatig te denken: wat is nu eigenlijk de zwakste schakel in het geheel? Dat is vaak per onderdeel weer anders.

Voorbeeldje: Een notebook kan eenvoudiger gestolen worden dan een vaste PC. Niet alles is voorkomen, maar wel zijn de gevolgen van diefstal kleiner te maken, door bijvoorbeeld de data op de notebook te sleutelen en het opstarten van notebook alleen mogelijk te maken met een wachtwoord.

Data

Een belangrijk onderdeel om te beveiligen is (persoonlijke) data. Deze data staat meestal opgeslagen op de volgende plaatsen:

  • Harde schijf
  • Werkgeheugen
  • USB-stick
  • NAS

Binnen Linux zal het merendeel van de data zich bevinden op de harde schijf en een klein gedeelte in het werkgeheugen. Om Linux beter te beveiligen, kijken we dus in hoofdzaak naar de opslag op de harde schijf.

Versleuteling

Veel Linux-distributies maken het mogelijk om een partitie en/of de persoonlijke map te versleutelen. Dat betekent dat dit stukje opslag alleen “geopend” kan worden met de juiste sleutel. Als je deze optie hebt tijdens het installeren, dan is dit dus de overweging waard. Mocht het systeem in de verkeerde handen vallen, dan wordt het een stuk moeilijker om bij jouw persoonlijke data te komen.

Backups

Voor data is niet alleen vertrouwelijk en integriteit belangrijk, maar ook de beschikbaarheid. Soms gebeurt het echter dat de databron defect raakt. Harde schijven en USB-sticks hebben eenmaal niet het eeuwige leven. Om de beschikbaarheid op de lange termijn te verhogen, zijn backups aan te raden. Er zijn verschillende oplossingen mogelijk, van het synchroniseren van data naar een NAS of cloudopslag, tot aan het maken van (extra) lokale snapshots met bijvoorbeeld Timeshift.

Software-updates

Een zeer eenvoudige optie om het systeem te beveiligen of veiliger te houden is door software-updates uit te voeren. De meeste Linux-distributies maken dagelijks nieuwe softwarepakketten beschikbaar, waarvan een deel gerelateerd kan zijn aan gevonden veiligheidsissues.

Automatische updates

De populaire Linux-distributies hebben steeds vaker een optie beschikbaar om automatisch updates uit te voeren. Vaak is er dan ook de keuze om alleen de pakketten automatisch bij te werken die uit de zogeheten security-repository komen. Dit zijn dus de softwarepakketten waarvan het bekend is dat er een (serieus) probleem mee is. Meestal zullen dit soort pakketten slechts een oplossing bevatten voor het veiligheidsprobleem en geen nieuwe functionaliteit toevoegen. Hierdoor is de kans op onverwacht gedrag erg klein.

Netwerkverkeer inperken

Een moderne computer maakt actief gebruik van netwerkverbindingen voor het ophalen van software-updates, het browsen op het web en het binnenhalen van nieuwe e-mail. Standaard is nagenoeg al het netwerkverkeer toegestaan. Vanuit praktisch oogpunt heel logisch, maar toch is het vaak wenselijk om dit in te perken.

Het inperken van netwerkverkeer doen we meestal op twee stromen: de inkomende en uitgaande verbindingen.

Er is natuurlijk wel een verschil hoe ver we willen gaan met het inperken van netwerkverkeer. Een Linux-server die websites aanbiedt, dient inkomende verbindingen op dat vlak wel toe te staan. Zo is het gebruikelijk dat voor deze systemen poort 80 (HTTP) en 443 (HTTPS) vaak open staan, zodat de achterliggende webserver bereikt kan worden.

Bij een normale computer (desktop of notebook) kunnen inkomende verbindingen vaak standaard geblokkeerd worden. Uiteraard inkomend verkeer dat onderdeel is van een “actief gesprek” zal wel worden toegestaan. Anders zou je bijvoorbeeld een webpagina opvragen bij een webserver, maar nooit het antwoord kunnen ontvangen.

Mogelijk relevante artikelen om meer te leren:

Extra maatregelen met behulp van System Hardening

Met behulp van system hardening kunnen we de Linux-kernel en software-componenten verbeteren qua beveiliging. Vaak komt het neer op het verwijderen van onnodige componenten, strakker afstellen van de afgebleven onderdelen en aanvullende beveiligingssoftware installeren. Dit proces komt de beveiliging ten goede, maar vergt wel extra kennis van de betreffende onderdelen. Het implementeren van extra maatregelen dient zorgvuldig te gebeuren.

Om te bepalen welke extra maatregelen we kunnen nemen, zijn er enkele bronnen beschikbaar:

  • Hardening guides
  • Best practices
  • Tooling

Hardening guides

Hardening guides zijn documenten, vaak opgesteld door de fabrikant. De fabrikant is hierbij de Linux-distributie of de betreffende software-ontwikkelaar. De documenten geven stappen aan die je zou kunnen implementeren. Ondanks dat het een goede bron is, is het vaak handwerk en zijn de afwegingen niet altijd duidelijk.

Best practices

In het verlengde van hardening guides zijn er de best practices. Je zou een best practice kunnen vergelijken met het advies “handen wassen na toiletbezoek”. Het zijn vaak aanbevolen maatregelen, zoals instellingen, om software veiliger te maken tijdens het gebruik. Best practices richten zich vaak specifiek op de betreffende software, maar er zijn er ook wel voor het gebruik van een Linux-systeem, zoals “gebruik een normale gebruiker in plaats van het root-account voor dagelijks gebruik van het systeem”.

Tooling

Als laatste is er tooling, zoals LynisExternal link , die kan helpen met het ontdekken welke maatregelen er nog mogelijk zijn. Het grote voordeel van software is dat het eenvoudiger gebruikt kan worden om een systeem te toetsen dan bijvoorbeeld een hardening guide.

Welke maatregelen zijn zinvol?

Er is helaas geen eenduidig antwoord te geven hoe ver je moet gaat met system hardening en het implementeren van extra maatregelen. Het is namelijk sterk afhankelijk van jouw systeem, je kennisniveau en wat je probeert te bereiken.

Wordt vervolgd…

Gebruikte termen en definities

Backup
Een reservekopie van data
Best practices
Een maatregel die over het algemeen als verstandig en wijs gebruik zal worden beschouwd
NAS (Network Attached Storage)
Opslagruimte op een extern apparaat dat gekoppeld is aan het netwerk, zoals een apparaat van Synology of QNAP
Software repository
Opslag van broncode gebruikt voor software-ontwikkeling of binaire bestanden ten behoeve van software-updates
Software-update
Een nieuwere versie van een geïnstalleerd programma
System-hardening
Een reeks aan maatregelen waarbij onnodige componenten worden weggehaald of uitgeschakeld, instellingen worden aangescherpt en extra software met specifiek doel toegevoegd aan het systeem

Gerelateerde artikelen

Meer leren over Linux en het gebruik ervan? Bekijk dan eens de volgende artikelen: