Modul 10 · 10.1
Härdning och CIS-principer
Modul 10: Håll dig säker · Lästid: 11 minuter
Lärandemål: Efter den här lektionen kan du förklara vad härdning är och vilka principer som ligger bakom. Du vet vad CIS Benchmarks är och hur du använder dem klokt, och du kan gå igenom din server systematiskt med Lynis.
Nyckelbegrepp: härdning (hardening), attackyta, minimal installation, minsta möjliga behörighet (least privilege), skydd i flera lager (defense in depth), CIS Benchmarks, Level 1 och Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, tidssynkronisering
Vad är härdning?
En nyinstallerad Debian eller Ubuntu är ganska säker, men byggd för att fungera på så många ställen som möjligt. Härdning (hardening) betyder att du anpassar servern till just ditt användningssätt: bort med allt du inte behöver, strängare inställningar där det går, utan att dina egna tjänster slutar fungera.
I de tidigare modulerna har du redan gjort det bit för bit: SSH med nycklar (modul 2), en vanlig användare med sudo (modul 3), automatiska uppdateringar (modul 4), en brandvägg och fail2ban (modul 5), tjänster under egna användare (modul 6). Den här lektionen sätter in de enskilda åtgärderna i ett sammanhang, så att du ser vad som fortfarande saknas.
Fyra principer
1. En liten attackyta. Det som inte finns kan inte gå sönder. Varje installerad tjänst, varje öppen port och varje konto är en möjlig väg in (lektion 5.1). Installera så lite som möjligt och städa bort det du inte längre använder:
anna@web1:~$ systemctl list-units --type=service --state=running
anna@web1:~$ sudo ss -tulpn
anna@web1:~$ apt list --installed | wc -lKörs det en tjänst som du inte känner igen, ta reda på vad den gör (lektion 6.1). Behöver du den inte, ta bort paketet.
2. Minsta möjliga behörighet. Varje användare och varje program får bara de rättigheter som behövs (lektion 3.2). Inget dagligt arbete som root, tjänster under egna användare, databasanvändare med rättigheter bara till sin egen databas, ingen chmod 777.
3. Skydd i flera lager. Utgå från att en åtgärd fallerar. En databas som bara lyssnar på 127.0.0.1 och står bakom en brandvägg och har ett starkt lösenord är fortfarande säker om en av de tre råkar falla bort. Det kallas defense in depth.
4. Veta vad som händer. Härdning handlar inte bara om att stänga till, utan också om att se: loggar som sparas (lektion 6.2), bevakning som larmar (lektion 8.3) och säkerhetskopior som du kan återställa från (modul 8). Utan det märker du ett intrång först när det är för sent.
CIS Benchmarks
Center for Internet Security (CIS) är en amerikansk ideell organisation som tar fram CIS Benchmarks: omfattande listor med rekommenderade inställningar per produkt, skrivna av frivilliga från säkerhetsvärlden. Det finns över hundra, även för Debian Linux och Ubuntu Linux, per version. Du kan ladda ner pdf-filerna gratis för icke-kommersiellt bruk när du har skapat ett konto.
En benchmark för Linux innehåller hundratals rekommendationer, var och en med en förklaring, ett sätt att kontrollera och ett sätt att ställa in. De är indelade i profiler:
- Level 1: grundläggande åtgärder som du kan införa ganska snabbt, med en tydlig säkerhetsvinst, utan att servern blir mycket mindre användbar. För de flesta servrar är det målet.
- Level 2: extra åtgärder för miljöer där säkerheten går först (skydd i flera lager). De kan kosta funktioner eller prestanda och kan enligt CIS själva orsaka skada om du tillämpar dem utan eftertanke.
För Linux finns det separata profiler för servrar och arbetsstationer.
Exempel på ämnen i en Linux-benchmark: separata partitioner för /tmp och /var/log, att stänga av oanvända filsystem och nätverksprotokoll, tidssynkronisering, granskningsloggning, SSH-inställningar (många känner du igen från lektion 2.2), lösenordspolicy, rättigheter på viktiga filer och brandväggen.
Utöver Benchmarks finns CIS Controls (nu version 8.1): inte inställningar per produkt, utan en lista med arton grupper av åtgärder för en hel organisation, som "inventering av programvara", "hantering av sårbarheter" och "återställning av data". För en enskild server är Benchmarks mer användbara; Controls hjälper när du tänker på hela ditt företag.
Använd en benchmark klokt
En benchmark är ingen knapp du trycker på. Några regler:
- Förstå först, tillämpa sedan. Varje rekommendation har en förklaring. Förstår du inte varför, vänta med att tillämpa den.
- En sak i taget, och testa. En sträng inställning för kärnan eller nätverket kan få din applikation att sluta fungera. Ta en ögonblicksbild (snapshot), ändra en sak och kontrollera att allt fortfarande fungerar.
- Allt passar inte dig. En rekommendation om en separat
/var/log-partition är svår att genomföra på en befintlig VPS och ger lite. Välj medvetet och skriv ner varför du låter bli något. - Var försiktig med färdiga härdningsskript från internet som tillämpar "allt från CIS" på en gång. De kan ändra SSH, din brandvägg eller dina loggar så att du låser ute dig själv, och efteråt vet du inte längre vad som har ändrats.
Lynis: en granskning inifrån
Lynis är ett gratis program med öppen källkod (GPL) från CISOfy som går igenom din server inifrån och ger varningar och förslag per ämne. Det ändrar ingenting själv, det rapporterar bara.
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 : 262Så läser du resultatet:
- Warnings är saker som du verkligen bör titta på, till exempel paket med kända sårbarheter (då har du uppdateringar som väntar, lektion 4.1).
- Suggestions är råd. Många är användbara, en del passar inte din server. Ett förslag att stänga av
AllowTcpForwardingfår till exempel dina SSH-tunnlar att sluta fungera (lektion 2.3). Välj medvetet. - Varje meddelande har en kod inom hakparentes, som
[SSH-7408]. Med den letar du i loggen/var/log/lynis.logupp exakt vad som testades. - Hardening index är ett tal upp till 100. Det är en riktningsvisare, inte ett betyg att jaga. En ökning efter dina ändringar visar att du gör framsteg; 100 är inget mål.
Lynis-versionen i din distributions paketkälla kan ligga lite efter. För en första granskning är det inget problem.
Ytterligare tre ämnen i korthet
- AppArmor och SELinux är extra säkerhetslager i kärnan som för varje program bestämmer vad det får göra. Debian och Ubuntu använder AppArmor, påslaget som standard; AlmaLinux och Rocky använder SELinux. Stäng inte av dem "för att något inte fungerar": leta upp meddelandet i journalen och lös problemet riktat.
- sysctl ställer in kärnans inställningar, till exempel för nätverket. Standardvärdena i Debian och Ubuntu är rimliga. Vill du ändra något, lägg det i en egen fil i
/etc/sysctl.d/(Debian 13 läser inte längre/etc/sysctl.conf). - Tid: en server med fel tid gör loggarna oanvändbara och kan se certifikat som ogiltiga. Kontrollera med
timedatectlatt det står "System clock synchronized: yes".
I praktiken
Hos WebOké, precis som hos andra leverantörer av VPS, sköter du själv säkerheten inuti din server: leverantören ansvarar för hårdvaran, nätverket och virtualiseringsplattformen. Den här kursen är självhjälp: ingen tittar med på din server. Ta en ögonblicksbild i panelen innan du börjar en härdningsrunda, och se till att du vet hur du öppnar konsolen om du ändå låser ute dig själv.
Sammanfattning
- Härdning betyder att anpassa servern till ditt eget användningssätt: bort med det som inte behövs, strängare där det går.
- Fyra principer: liten attackyta, minsta möjliga behörighet, skydd i flera lager och att se vad som händer.
- CIS Benchmarks ger hundratals rekommendationer per produkt i profilerna Level 1 (grund) och Level 2 (sträng); använd dem med förståelse, ett steg i taget.
- Lynis går igenom din server inifrån och ger varningar, förslag och ett hardening index; det ändrar ingenting själv.
- Stäng inte av AppArmor/SELinux; egna kärninställningar i
/etc/sysctl.d/; kontrollera tidssynkroniseringen.
Quiz
Uppgift
Uppgift O10.1: En granskning med Lynis. Ta en ögonblicksbild, installera Lynis på din server och kör sudo lynis audit system. Skriv ner hardening index, alla varningar och fem förslag. Välj tre förslag som du genomför och ett som du medvetet inte genomför, med skälet. Kör sedan granskningen igen och skriv ner det nya indexet.
Uppgift O10.1: En granskning med Lynis
Den här uppgiften gör du själv; ingen kontrollerar den. Bocka av vad du har gjort och markera uppgiften som klar.
Först varningarna (oftast väntande uppdateringar). Meningsfullt: striktare SSH-inställningar, automatiska uppdateringar, bort med oanvända tjänster. Ett bra skäl att hoppa över något: AllowTcpForwarding om du använder tunnlar. Indexet är en vägvisare, inte ett mål.
Dina bockar och anteckningar sparas bara i den här webbläsaren; vi skickar dem ingenstans. Är du inloggad sparar vi i Mina kurser bara att du har gjort uppgiften.
Läs mer
- Säkra din VPS: de första fem minuterna
- CIS Benchmarks (översikt, även Debian och Ubuntu): https://www.cisecurity.org/cis-benchmarks
- CIS Controls: https://www.cisecurity.org/controls
- Lynis, dokumentation: https://cisofy.com/documentation/lynis/
- Det nederländska NCSC, Beginnen met cybersecurity (nederländsk källa): https://www.ncsc.nl/beginnen-met-cybersecurity
