Gå direkte til indholdet

Cookieindstillinger

Vælg for hver type, hvilke cookies du tillader. Du kan altid ændre dit valg via Cookieindstillinger nederst på hver side. Privatlivspolitik

Nødvendige

Altid slået til

Nødvendige for at logge ind, gemme din kurv og huske dine valg. De er altid slået til.

Hvilke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: din session og at forblive logget ind
  • weboke_basket: din kurv
  • wkBtwIncl: vise priser med eller uden moms
  • wok_cookies: dit cookievalg, 12 måneder

Måler, hvilken annonce der fører til et besøg eller en bestilling, så vi ikke betaler for annoncer, der ikke virker.

Hvilke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), op til 90 dage
  • OpenAI Ads, annoncer i ChatGPT
  • wok_aff: hvilken partner der henviste dig til os (affiliateprogram), 60 dage

4,6

Land og sprog

Hvert land har sin egen side med landets priser og moms.

Se

Hardening og CIS-principper

Modul 10: Forbliv sikker · Læsetid: 11 minutter

Læringsmål: Efter denne lektion kan du forklare, hvad hardening er, og hvilke principper der ligger bag. Du ved, hvad CIS Benchmarks er, og hvordan du bruger dem klogt, og du kan gennemgå din server systematisk med Lynis.

Centrale begreber: hardening, angrebsflade, minimal installation, mindste rettigheder (least privilege), lagdelt forsvar (defense in depth), CIS Benchmarks, Level 1 og Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, tidssynkronisering

Hvad er hardening?

En frisk installation af Debian eller Ubuntu er rimelig sikker, men den er lavet til at fungere så mange steder som muligt. Hardening (at hærde) betyder at tilpasse din server præcis til din brug: alt væk, som du ikke har brug for, alt strammere, som kan strammes, uden at dine egne tjenester går i stykker.

I de tidligere moduler har du allerede gjort det lidt ad gangen: SSH med nøgler (modul 2), en almindelig bruger med sudo (modul 3), automatiske opdateringer (modul 4), en firewall og fail2ban (modul 5), tjenester under egne brugere (modul 6). Denne lektion sætter de enkelte tiltag ind i en ramme, så du kan se, hvad der stadig mangler.

Fire principper

1. En lille angrebsflade. Det, der ikke findes, kan ikke gå i stykker. Hver installeret tjeneste, hver åben port og hver konto er en mulig indgang (lektion 5.1). Installér minimalt, og ryd op i det, du ikke længere bruger:

anna@web1:~$ systemctl list-units --type=service --state=running
anna@web1:~$ sudo ss -tulpn
anna@web1:~$ apt list --installed | wc -l

Kører der en tjeneste, du ikke kender, så find ud af, hvad den gør (lektion 6.1). Har du ikke brug for den, så fjern pakken.

2. Mindste rettigheder. Hver bruger og hvert program får kun de rettigheder, der er nødvendige (lektion 3.2). Intet dagligt arbejde som root, tjenester under egne brugere, databasebrugere kun med rettigheder til deres egen database, ingen chmod 777.

3. Lagdelt forsvar. Gå ud fra, at ét tiltag svigter. En database, der kun lytter på 127.0.0.1 og står bag en firewall og har en stærk adgangskode, er også sikker, hvis et af de tre ved et uheld falder bort. Det kaldes defense in depth.

4. Vid, hvad der sker. Hardening handler ikke kun om at lukke ned, men også om at se: logs, der gemmes (lektion 6.2), overvågning, der giver besked (lektion 8.3), og backups, du kan gå tilbage til (modul 8). Uden det opdager du først et indbrud, når det er for sent.

CIS Benchmarks

Center for Internet Security (CIS) er en amerikansk nonprofitorganisation, der laver CIS Benchmarks: omfattende lister med anbefalede indstillinger pr. produkt, skrevet af frivillige fra sikkerhedsverdenen. Der findes over hundrede, også for Debian Linux og Ubuntu Linux, pr. version. Du kan downloade pdf'erne gratis til ikke-kommerciel brug, når du har oprettet en konto.

En benchmark for Linux indeholder hundredvis af anbefalinger, hver med en forklaring, en måde at kontrollere den på og en måde at indstille den på. De er delt op i profiler:

  • Level 1: basale tiltag, som du forholdsvis hurtigt kan indføre, med en tydelig sikkerhedsgevinst, uden at serveren bliver meget mindre brugbar. For de fleste servere er det målet.
  • Level 2: ekstra tiltag til miljøer, hvor sikkerhed kommer først (lagdelt forsvar). De kan koste funktioner eller hastighed og kan ifølge CIS selv gøre skade, hvis du anvender dem uden omtanke.

For Linux findes der separate profiler for servere og arbejdsstationer.

Eksempler på emner i en Linux-benchmark: separate partitioner til /tmp og /var/log, at slå ubrugte filsystemer og netværksprotokoller fra, tidssynkronisering, auditlogning, indstillinger for SSH (mange af dem kender du fra lektion 2.2), adgangskodepolitik, rettigheder på vigtige filer og firewallen.

Ud over Benchmarks findes der CIS Controls (nu version 8.1): ikke indstillinger pr. produkt, men en liste med atten grupper af tiltag for en hel organisation, som "opgørelse over software", "håndtering af sårbarheder" og "gendannelse af data". For én server er Benchmarks mest nyttige; Controls hjælper, når du tænker over hele din virksomhed.

Brug en benchmark klogt

En benchmark er ikke en knap, du bare trykker på. Et par regler:

  • Forstå først, anvend bagefter. Hver anbefaling har en forklaring. Forstår du ikke hvorfor, så vent med at anvende den.
  • Én ting ad gangen, og test. En streng indstilling for kernen eller netværket kan ødelægge din applikation. Tag et snapshot, ændr én ting, og kontrollér, at alt stadig virker.
  • Ikke alt er til dig. En anbefaling om en separat /var/log-partition er besværlig på en eksisterende VPS og giver ikke meget. Vælg bevidst, og notér, hvorfor du ikke gør noget.
  • Pas på med færdige hardeningscripts fra internettet, der anvender "alt fra CIS" på én gang. De kan ændre SSH, din firewall eller dine logs, så du låser dig selv ude, og bagefter ved du ikke længere, hvad der er ændret.

Lynis: en audit indefra

Lynis er et gratis open source-program (GPL) fra CISOfy, der gennemgår din server indefra og giver advarsler og forslag pr. emne. Det ændrer ikke selv noget; det rapporterer kun.

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 : 262

Sådan læser du det:

  • Warnings er ting, du virkelig skal se på, som pakker med kendte sårbarheder (så mangler du opdateringer, lektion 4.1).
  • Suggestions er råd. Mange er nyttige, nogle passer ikke til din server. Et forslag om at slå AllowTcpForwarding fra ødelægger for eksempel dine SSH-tunneler (lektion 2.3). Vælg bevidst.
  • Hver melding har en kode i klammer, som [SSH-7408]. Med den slår du op i logfilen /var/log/lynis.log, hvad der præcis er testet.
  • Hardening index er et tal op til 100. Det er en pejling, ikke en karakter, du skal jagte. En stigning efter dine ændringer viser, at du gør fremskridt; 100 er ikke et mål.

Lynis-versionen i din distributions pakkekilde kan halte lidt bagefter. Det er ikke et problem til en første audit.

Tre emner mere i korte træk

  • AppArmor og SELinux er ekstra sikkerhedslag i kernen, der pr. program fastlægger, hvad det må. Debian og Ubuntu bruger AppArmor, slået til som standard; AlmaLinux og Rocky bruger SELinux. Slå dem ikke fra, "fordi noget ikke virker": find meldingen i journalen, og løs problemet målrettet.
  • sysctl sætter indstillinger for kernen, for eksempel for netværket. Standardværdierne i Debian og Ubuntu er fornuftige. Vil du ændre noget, så læg det i en egen fil i /etc/sysctl.d/ (Debian 13 læser ikke længere /etc/sysctl.conf).
  • Tid: en server med forkert tid gør logs ubrugelige og kan opfatte certifikater som ugyldige. Kontrollér med timedatectl, at der står "System clock synchronized: yes".

I praksis

Hos WebOké, ligesom hos andre udbydere af en VPS, står du selv for sikkerheden inde på din server: udbyderen sørger for hardwaren, netværket og virtualiseringsplatformen. Dette kursus er selvhjælp: ingen kigger med på din server. Tag et snapshot i panelet før en hardeningrunde, og vid, hvordan du åbner konsollen, hvis du alligevel låser dig selv ude.

Opsummering

  • Hardening er at tilpasse din server til din egen brug: væk med det unødvendige, strammere hvor det kan lade sig gøre.
  • Fire principper: lille angrebsflade, mindste rettigheder, lagdelt forsvar og at se, hvad der sker.
  • CIS Benchmarks giver hundredvis af anbefalinger pr. produkt i profilerne Level 1 (basis) og Level 2 (streng); brug dem med forståelse, ét skridt ad gangen.
  • Lynis gennemgår din server indefra og giver advarsler, forslag og et hardening index; det ændrer ikke selv noget.
  • Slå ikke AppArmor/SELinux fra; egne kerneindstillinger i /etc/sysctl.d/; kontrollér tidssynkroniseringen.

Quiz

1. Hvad er idéen bag lagdelt forsvar (defense in depth)?



2. Hvad er forskellen på Level 1 og Level 2 i CIS Benchmarks?



3. Lynis foreslår at slå AllowTcpForwarding fra i SSH. Du bruger SSH-tunneler til at komme til din database. Hvad gør du?



4. En kollega finder et script på internettet, der sætter "alle CIS-anbefalinger på én gang" på din server. Hvad er den største risiko?



5. Din applikation virker ikke, og i journalen står der en afvisning fra AppArmor. Hvad er den rigtige fremgangsmåde?



Opgave

Opgave O10.1: En audit med Lynis. Tag et snapshot, installér Lynis på din server, og kør sudo lynis audit system. Notér dit hardening index, alle advarsler og fem forslag. Vælg tre forslag, du gennemfører, og ét, du bevidst ikke gennemfører, med begrundelsen. Kør derefter auditten igen, og notér det nye index.

Opgave O10.1: En audit med Lynis

Denne opgave laver du selv; ingen tjekker den. Afkryds hvad du har gjort, og markér opgaven som udført.




Dine afkrydsninger og noter forbliver kun i denne browser; vi sender dem ingen steder hen. Er du logget ind, gemmer vi kun i Mine kurser, at du har udført opgaven.

Læs mere

Et øjeblik…

Opsæt dine domæner

Angiv for hvert domæne navneserverne, tilknytningen til din hosting, og hvem der bliver ejer.

Indlæser dine domæner…