Modul 10 · 10.1
Hardening og CIS-prinsipper
Modul 10: Hold deg sikker · Lesetid: 11 minutter
Læringsmål: Etter denne leksjonen kan du forklare hva hardening er og hvilke prinsipper som ligger bak, du vet hva CIS Benchmarks er og hvordan du bruker dem klokt, og du kan gå systematisk gjennom serveren din med Lynis.
Nøkkelbegreper: hardening, angrepsflate, minimal installasjon, minste rettigheter (least privilege), lagdelt forsvar (defense in depth), CIS Benchmarks, Level 1 og Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, tidssynkronisering
Hva er hardening?
En fersk installasjon av Debian eller Ubuntu er rimelig sikker, men laget for å fungere på så mange steder som mulig. Hardening (herding) er å tilpasse serveren nøyaktig til din bruk: fjern alt du ikke trenger, gjør alt strengere som kan være strengt, uten at dine egne tjenester slutter å virke.
I de forrige modulene har du allerede gjort dette bit for bit: SSH med nøkler (modul 2), en vanlig bruker med sudo (modul 3), automatiske oppdateringer (modul 4), en brannmur og fail2ban (modul 5), tjenester under egne brukere (modul 6). Denne leksjonen setter de enkelte tiltakene inn i en ramme, slik at du ser hva som fortsatt mangler.
Fire prinsipper
1. En liten angrepsflate. Det som ikke finnes, kan ikke gå i stykker. Hver installerte tjeneste, hver åpne port og hver konto er en mulig inngang (leksjon 5.1). Installer minimalt, og rydd bort det du ikke lenger bruker:
anna@web1:~$ systemctl list-units --type=service --state=running
anna@web1:~$ sudo ss -tulpn
anna@web1:~$ apt list --installed | wc -lKjører det en tjeneste du ikke kjenner, finn ut hva den gjør (leksjon 6.1). Trenger du den ikke, fjern pakken.
2. Minste rettigheter. Hver bruker og hvert program får bare de rettighetene som trengs (leksjon 3.2). Ikke noe daglig arbeid som root, tjenester under egne brukere, databasebrukere bare med rettigheter til sin egen database, ingen chmod 777.
3. Lagdelt forsvar. Gå ut fra at ett tiltak svikter. En database som bare lytter på 127.0.0.1 og står bak en brannmur og har et sterkt passord, er også sikker hvis ett av de tre ved et uhell faller bort. Dette kalles defense in depth.
4. Vit hva som skjer. Hardening handler ikke bare om å stenge, men også om å se: logger som blir tatt vare på (leksjon 6.2), overvåking som varsler (leksjon 8.3), og sikkerhetskopier du kan gå tilbake til (modul 8). Uten dette oppdager du et innbrudd først når det er for sent.
CIS Benchmarks
Center for Internet Security (CIS) er en amerikansk ideell organisasjon som lager CIS Benchmarks: omfattende lister med anbefalte innstillinger per produkt, satt sammen av frivillige fra sikkerhetsmiljøet. Det finnes over hundre av dem, også for Debian Linux og Ubuntu Linux, per versjon. Du kan laste ned pdf-ene gratis for ikke-kommersiell bruk, etter at du har opprettet en konto.
En benchmark for Linux inneholder hundrevis av anbefalinger, hver med en forklaring, en måte å kontrollere på og en måte å stille det inn på. De er delt inn i profiler:
- Level 1: grunnleggende tiltak du kan innføre ganske raskt, med en tydelig sikkerhetsgevinst, uten at serveren blir mye mindre brukbar. For de fleste servere er dette målet.
- Level 2: ekstra tiltak for miljøer der sikkerhet kommer først (lagdelt forsvar). De kan koste funksjoner eller hastighet, og ifølge CIS selv gjøre skade hvis du bruker dem uten omtanke.
For Linux finnes det egne profiler for servere og arbeidsstasjoner.
Eksempler på temaer i en Linux-benchmark: egne partisjoner for /tmp og /var/log, slå av ubrukte filsystemer og nettverksprotokoller, tidssynkronisering, revisjonslogging, innstillinger for SSH (mange av dem kjenner du fra leksjon 2.2), passordregler, rettigheter på viktige filer, og brannmuren.
Ved siden av Benchmarks finnes CIS Controls (nå versjon 8.1): ikke innstillinger per produkt, men en liste over atten grupper tiltak for en hel organisasjon, som "oversikt over programvare", "håndtering av sårbarheter" og "gjenoppretting av data". For én server er Benchmarks mer nyttige; Controls hjelper når du tenker på hele bedriften.
Bruk en benchmark klokt
En benchmark er ikke en knapp du trykker på. Noen regler:
- Forstå først, bruk deretter. Hver anbefaling har en forklaring. Skjønner du ikke hvorfor, så vent med å ta den i bruk.
- Én ting om gangen, og test. En streng innstilling for kjernen eller nettverket kan ødelegge applikasjonen din. Ta et snapshot, endre én ting, og kontroller at alt fortsatt virker.
- Ikke alt passer for deg. En anbefaling om en egen
/var/log-partisjon er vanskelig på en eksisterende VPS og gir lite. Velg bevisst, og skriv ned hvorfor du ikke gjør noe. - Vær forsiktig med ferdige hardeningskript fra internett som bruker "alt fra CIS" på én gang. De kan endre SSH, brannmuren eller loggene slik at du låser deg selv ute, og etterpå vet du ikke lenger hva som er endret.
Lynis: en revisjon innenfra
Lynis er et gratis program med åpen kildekode (GPL) fra CISOfy som går gjennom serveren din innenfra og gir advarsler og forslag per tema. Det endrer ingenting selv; det bare rapporterer.
anna@web1:~$ sudo apt install lynis
anna@web1:~$ sudo lynis audit system
...
-[ Lynis 3.x Results ]-
Warnings (1):
----------------------------
! Found one or more vulnerable packages. [PKGS-7392]
Suggestions (34):
----------------------------
* Consider hardening SSH configuration [SSH-7408]
- Details : AllowTcpForwarding (set YES to NO)
...
Lynis security scan details:
Hardening index : 66 [############# ]
Tests performed : 262Slik leser du resultatet:
- Warnings er ting du virkelig må se på, som pakker med kjente sårbarheter (da har du ventende oppdateringer, leksjon 4.1).
- Suggestions er råd. Mange er nyttige, noen passer ikke til serveren din. Et forslag om å slå av
AllowTcpForwardingødelegger for eksempel SSH-tunnelene dine (leksjon 2.3). Velg bevisst. - Hver melding har en kode i hakeparentes, som
[SSH-7408]. Med den søker du i loggen/var/log/lynis.logetter hva som ble testet. - Hardening index er et tall opp til 100. Det er en veiviser, ikke en karakter å jage etter. En økning etter endringene dine viser at du gjør fremskritt; 100 er ikke et mål.
Lynis-versjonen i pakkekilden til distribusjonen din kan ligge litt etter. Det er ikke noe problem for en første revisjon.
Tre temaer til, kort fortalt
- AppArmor og SELinux er ekstra sikkerhetslag i kjernen som legger fast hva hvert program har lov til. Debian og Ubuntu bruker AppArmor, slått på som standard; AlmaLinux og Rocky bruker SELinux. Ikke slå dem av "fordi noe ikke virker": finn meldingen i journalen og løs problemet målrettet.
- sysctl setter innstillinger i kjernen, for eksempel for nettverket. Standardverdiene i Debian og Ubuntu er fornuftige. Vil du endre noe, legg det i en egen fil i
/etc/sysctl.d/(Debian 13 leser ikke lenger/etc/sysctl.conf). - Tid: en server med feil tid gjør loggene ubrukelige og kan se sertifikater som ugyldige. Kontroller med
timedatectlat det står "System clock synchronized: yes".
I praksis
Hos WebOké, som hos andre leverandører av VPS, har du selv ansvaret for sikkerheten inne på serveren din: leverandøren sørger for maskinvaren, nettverket og virtualiseringsplattformen. Dette kurset er selvhjelp: ingen følger med på serveren din. Ta et snapshot i panelet før en runde med hardening, og vit hvordan du åpner konsollen hvis du likevel låser deg selv ute.
Oppsummering
- Hardening er å tilpasse serveren til din egen bruk: fjern det som ikke trengs, gjør strengere det som kan.
- Fire prinsipper: liten angrepsflate, minste rettigheter, lagdelt forsvar, og å se hva som skjer.
- CIS Benchmarks gir hundrevis av anbefalinger per produkt i profilene Level 1 (grunnleggende) og Level 2 (strengt); bruk dem med forståelse, ett steg om gangen.
- Lynis går gjennom serveren din innenfra og gir advarsler, forslag og en hardening index; det endrer ingenting selv.
- Ikke slå av AppArmor/SELinux; egne kjerneinnstillinger i
/etc/sysctl.d/; kontroller tidssynkroniseringen.
Quiz
Oppgave
Oppgave O10.1: En revisjon med Lynis. Ta et snapshot, installer Lynis på serveren din og kjør sudo lynis audit system. Noter hardening index, alle advarsler og fem forslag. Velg tre forslag du gjennomfører og ett du bevisst ikke gjennomfører, med begrunnelse. Kjør deretter revisjonen på nytt og noter den nye indeksen.
Oppgave O10.1: En revisjon med Lynis
Denne oppgaven gjør du selv; ingen kontrollerer den. Kryss av det du har gjort, og merk oppgaven som fullført.
Først advarslene (som regel ventende oppdateringer). Nyttig: strengere SSH-innstillinger, automatiske oppdateringer, fjerne tjenester som ikke brukes. En god grunn til å hoppe over noe: AllowTcpForwarding hvis du bruker tunneler. Indeksen er en veiviser, ikke et mål.
Avkrysningene og notatene dine blir kun i denne nettleseren; vi sender dem ikke noe sted. Er du logget inn, lagrer vi kun i Mine kurs at du har gjort oppgaven.
Les mer
- Sikre VPS-en din: de første fem minuttene
- CIS Benchmarks (oversikt, også Debian og Ubuntu): https://www.cisecurity.org/cis-benchmarks
- CIS Controls: https://www.cisecurity.org/controls
- Lynis, dokumentasjon: https://cisofy.com/documentation/lynis/
- Det nederlandske NCSC, Beginnen met cybersecurity (nederlandsk kilde): https://www.ncsc.nl/beginnen-met-cybersecurity
