Härdning

Linux

Linux härdning handlar om minimalism, stark autentisering och förutsägbar konfiguration. Du minskar antalet pågående tjänster, upprätthåller minsta privilegium och använder inbyggda säkerhetsfunktioner som MAC, revision och brandväggar för att göra kompromisser svårare och lättare att upptäcka.

Lärandemål

Det här ska du kunna efter genomläsning.
  • Minska attackytan genom att inaktivera det du inte behöver
  • Hårda vägar för autentisering och eskalering av privilegier
  • Tillämpa kärna och paketuppdateringar säkert och konsekvent
  • Validera härdning med enkla kontroller och meningsfull loggning

I korthet

En snabb mental modell innan du går på djupet.
🧠
Huvudmål
  • Minimalt exponerade tjänster och tydligt ägande av förändringar
  • Stark SSH och sudo konfiguration
  • Försvar på djupet med MAC, brandvägg och revision
  • Snabb återställning med säkerhetskopior och kända bra konfigurationer
Hög effektkontroller
  • Automatiska säkerhetsuppdateringar där så är lämpligt
  • SSH nyckelbehörighet och policy för begränsad inloggning
  • Brandväggsstandard neka inkommande med explicit tillåtna portar
  • SELinux eller AppArmor tillämpar på system som stöds
Praktiskt arbetsflöde
  • Baslinjebyggd, härda sedan i små steg med verifiering
  • Använd konfigurationshantering för att undvika snöflingaservrar
  • Logga och övervaka autentisering, behörighet och nätverksändringar
  • Granska installerade paket och körande tjänster regelbundet

Översikt

Linux härdning börjar med att minska komplexiteten. Varje aktiverad tjänst, öppen port och installerat paket är en annan plats där en sårbarhet eller felkonfiguration kan existera.

De flesta kompromisser lyckas på grund av svag autentisering, exponerade hanteringstjänster eller oparpad programvara. Din första prioritet är att göra fjärråtkomst förutsägbar och att hålla uppdateringarna flytande.

För striktare miljöer, använd obligatorisk åtkomstkontroll, granskning och filintegritetskontroller för att lägga till lager som fortfarande är viktiga efter att ett användarkonto har äventyrats.

  • Ta bort eller inaktivera oanvända tjänster och lyssningsdemoner
  • Föredrar SSH nycklar och begränsa vem som kan logga in och varifrån
  • Använd sudo med avsikt och undvik direkt rotinloggning
  • Håll tiden synkroniserad och loggarna sparas för undersökningar
Tips
Härdning är lättare före produktion
Bygg först en säker bild och klona den sedan. Eftermontering av härdning på många unika system är långsam och felbenägen.
💡

Härdningsåtgärder

Använd reglaget för att växla mellan en baslinje med låg friktion och en strängare säkerhetsbaslinje.

Handling Vad du gör Varför gör du det Säkerhetseffekt
Håll paket uppdaterade Aktivera regelbundna uppdateringar för OS och nyckelpaket. Starta om när det krävs för kärn- eller libc-uppdateringar. Många utnyttjar riktar sig mot kända sårbarheter som redan har patchar. Minskar exponeringen för råvaruexploatering.
Inaktivera oanvända tjänster Lista aktiverade tjänster och inaktivera allt du inte använder. Stäng oanvända portar. En tjänst du inte behöver är ren risk. Mindre attackyta och färre avlägsna ingångspunkter.
Använd en värdbrandvägg Aktivera ett brandväggsverktyg (ufw, firewalld eller nftables wrapper) och neka inkommande som standard. Tillåt endast nödvändiga portar. Lokala brandväggar innehåller misstag och minskar rörelser i sidled. Färre tillgängliga tjänster och tydligare nätverkshållning.
Härda SSH grunderna Använd SSH-nycklar, inaktivera direkt rotinloggning och begränsa vilka användare som kan SSH i. SSH är ett vanligt brute force och credential stuffing-mål. Starkare autentisering och minskad exponering för lösenordsattacker.
Använd sudo, undvik delade konton Ge namngivna användare sudo där det behövs och undvik att logga in som root. Delade konton förstör ansvar och ökar sprängradien. Bättre spårbarhet och minskat missbruk av privilegier.
Grundläggande loggning och loggrotation Se till att journald eller syslog körs och att loggarna roteras och behålls tillräckligt länge för felsökning. Utan loggar kan du inte förklara incidenter eller misslyckanden. Förbättrar upptäckt och kriminalteknisk beredskap.
Säkerhetskopiering och återställningsplan Säkerhetskopiera viktiga konfigurationer och data. Teståterställningar, inte bara säkerhetskopieringsjobb. Härdning förhindrar inte varje incident. Återhämtning spelar roll. Begränsar stilleståndstiden och minskar lösensumman.
Handling Vad du gör Varför gör du det Säkerhetseffekt
Tillämpa en dokumenterad baslinje Använd en CIS-justerad baslinje eller leverantörshärdningsguide och hantera den som kod. En baslinje minskar driften och gör revisioner möjliga. Repeterbar hållning över flottor och snabbare undersökning.
Framtvinga MAC (SELinux eller AppArmor) Håll SELinux eller AppArmor i verkställande läge där det stöds och fixa avslag istället för att inaktivera det. MAC begränsar vad komprometterade processer kan komma åt även med exekvering på användarnivå. Innehåller exploatering och minskar privilegieeskaleringsvägar.
Centralisera autentisering och begränsa SSH Inaktivera lösenordsautentisering där det är möjligt, begränsa användare och källnätverk och överväg MFA för privilegierad åtkomst. Lösenord är lätta att råka ut för och lätta att nätfiska. Minskar missbruk av autentiseringsuppgifter och begränsar fjärrinträde.
Härda sudo och privilegieupptrappning Begränsa sudoers ingångar till specifika kommandon, kräver omautentisering och övervaka användningen av sudo. Över bred sudo förvandlar en användarkompromiss till full root snabbt. Minskar sidorörelser och uthållighetsmöjligheter.
Aktivera och justera revision Aktivera granskade och distribuera regler fokuserade på autentisering, behörighet och kritiska filer. Vidarebefordra revisionsloggar centralt. Revisionsspår är värdefulla när du behöver svara på vem som gjorde vad och när. Förbättrar upptäckten och stödjer incidentrespons.
Kärn- och nätverkshärdning Tillämpa säkra sysctl-inställningar för nätverk och inaktivera osäkra äldre beteenden när det inte behövs. Många attacker är beroende av svaga standardinställningar och äldre kompatibilitet. Minskar exploateringsytan och förbättrar motståndskraften.
Övervakning av filintegritet Använd ett filintegritetsverktyg (till exempel AIDE) på kritiska sökvägar och varna om oväntade ändringar. Angripare modifierar ofta binärer, konfigurationer och cron-jobb för uthållighet. Upptäcker manipulering och stödjer inneslutning.
Logga pipeline och varning Skicka autentiserings- och granskningsloggar till ett centralt system och varna om misstänkta mönster som upprepade fel eller nya privilegierade grupper. Lokala loggar kan raderas efter kompromiss. Högre chans att upptäcka incidenter tidigt.
Varning
Inaktivera inte MAC för att fixa en app
Om SELinux eller AppArmor blockerar en åtgärd, behandla det som en signal. Justera policy eller applikation – inte själva säkerhetsskiktet.
⚠️

Signaler att bevaka

Mönster som är värda att undersöka vidare.
📡
  • Nya lyssningsportar eller tjänster aktiverade utanför ändringsfönster
  • Upprepade SSH autentiseringsfel eller inloggningar från ovanliga platser
  • Oväntad sudo användning eller ändringar av sudoers filer
  • Ändringar av kritiska konfigurationer, cron-jobb eller systembinärer

FÖRDJUPNING

Mental modell: minska vad som är nåbart och vad som är tillåtet

Linux härdning är enklast när du behandlar systemet som en samling av små, komponerbara behörigheter. Kärnidén är enkel: minska det som är tillgängligt, minska det som är tillåtet och minska det man litar på.

En användbar mental modell är exponeringstider tillstånd är lika med risk. Exponering är öppna tjänster och nåbara gränssnitt. Behörighet är vad koden kan göra efter att den startar. Trust är vilka paket och konfigurationer du accepterar som giltiga.

Linux ger dig många kontroller, men det svåra är konsekvens. Små skillnader mellan värdar, distributioner och team kan skapa luckor som angripare utnyttjar eftersom miljön blir oförutsägbar.

• Minimera tjänster och lyssningsuttag eftersom de definierar fjärringång.

• Minimera privilegier och funktioner eftersom de definierar lokal påverkan.

• Minimera förtroendegränser genom att separera roller, användare och arbetsbelastningar.

Baslinjeprioriteringar för Linux system

Verkliga Linux incidenter börjar ofta med ett av tre mönster: en exponerad tjänst, en svag referensväg eller en överraskning i leveranskedjan. En bra baslinje prioriterar kontroller som blockerar dessa mönster över många arbetsbelastningar.

Serviceexponering handlar inte bara om hamnar. Det handlar också om vem som kan nå dem, vilket gränssnitt de binder till och om de kör med onödiga behörigheter. Standard för att bara binda till det du behöver.

Autentiseringssökvägar inkluderar SSH, lokala konton, API tokens i filer och programhemligheter. Härdning handlar dels om att minska var hemligheter bor och dels om att begränsa vad en angripare kan göra om en läcker.

Försörjningskedjans risk är operativ. Om du installerar från många källor, kör okända skript som root eller hoppar över uppdateringar är din baslinje ömtålig. Föredrar färre förråd, signerade paket och en repeterbar installationshistoria.

Avvägning att förvänta sig: härdning kan kosta bekvämlighet. Snäva behörigheter och strikta tjänster kan bryta automatisering och utvecklarverktyg. Det säkra förhållningssättet är att separera miljöer eller roller istället för att försvaga allt för alla.

När du behöver kompatibilitet, sikta på snävare ändringar, som att tillåta en tjänstfunktion, snarare än breda ändringar som att inaktivera en kontroll globalt.

Vanliga fällor vid Linux härdning

En ofta förekommande fälla är att härda värden men att glömma appen. Om programmet körs som root, skriver hemligheter till världsläsbara filer eller inte har någon patch-kadens, tvingas värdhärdning att kompensera och misslyckas ofta.

En annan fälla är att lita för mycket på nätverksgränser. Många Linux-servrar kan nås från platser som folk inte hade tänkt sig på grund av VPNs, molnsäkerhetsgrupper, containernätverk eller platta interna nätverk.

Privilegekrypning är också vanligt. Med tiden får fler användare sudo åtkomst, fler tjänster körs som privilegierade och fler undantag läggs till. Baslinjen blir långsamt ett förslag snarare än en regel.

Överhärdning kan också vara en fälla. Om du gör ändringar som är svåra att felsöka, kommer operatörerna att kringgå dem under press. Det skapar en splittrad hjärnmiljö med odokumenterat beteende.

• Tysta fel: en kontroll konfigureras men tillämpas inte, till exempel en policy i tillåtande läge eller en tjänst som startas med en annan enhetsfil.

• Inkonsekvent konfiguration: samma roll beter sig olika mellan värdarna, vilket gör både övervakning och incidentrespons svårare.

Inneslutning: MAC, isolering och säkrare standardinställningar

Inneslutning är där Linux lyser när den används avsiktligt. Tänk i termer av att minska vad en process kan se, röra och anropa. Även om kodexekvering sker, kan inneslutning förhindra privilegieskalering och datastöld.

Använd obligatorisk åtkomstkontroll när det är lämpligt. SELinux eller AppArmor kan vara frustrerande i början, men de ger en stark gräns som är svår att replikera med enbart filbehörigheter. Avvägningen är policyunderhåll och felsökningsförmåga.

Isoleringsverktyg spelar också roll. Namnutrymmen, cgroups och containerkörningstider kan vara en del av en hårdnande historia, men bara om du behandlar dem som säkerhetsgränser med tydliga antaganden.

Systemd kan också minska risken genom att begränsa en tjänst under körning, som att begränsa filsystemåtkomst och systemanrop. Detta är kraftfullt eftersom det hårdnar tjänsten utan att kräva kodändringar.

När ska man koppla av inneslutningen: ofta för äldre programvara, leverantörsagenter eller felsökning. Det säkra mönstret är att bara koppla av för den specifika tjänsten och hålla resten strikt, sedan dokumentera orsaken och en plan för att återbesöka.

Dokumentera undantag med ett test: vad ska du kontrollera senare för att bekräfta att du kan dra åt igen utan att avbryta produktionen.

Verifiering och bevis: loggar, revisioner och integritetskontroller

Verifiering på Linux bör fokusera på effektivt tillstånd, inte avsett tillstånd. Många system ser härdade ut på papper men körs med olika körtidsinställningar, anpassade enhetsöverstyrningar eller föråldrade paket.

Börja med exponeringskontroller: lista lyssningsportar, tjänster och gränssnitt. Det ser bra ut som att bara förväntade tjänster lyssnar, och administrationstjänster är endast tillgängliga från kontrollerade nätverk.

Verifiera sedan behörighet och integritet: kontrollera vilka konton som har sudo, vilka tjänster som körs som root och om viktiga filer är skyddade från modifiering. Om du använder integritetsverktyg, bekräfta att det faktiskt rapporterar ändringar.

Så här verifierar du och hur det ser ut:

• Exponering: inga oväntade lyssningsuttag, och brandväggar eller säkerhetsgrupper matchar dokumenterad avsikt

• Konton: minimala sudo användare, inga inaktuella konton och tydligt ägande för tjänstekonton

• Policy: SELinux tillämpar eller AppArmor-profiler tillämpas där det är avsett, inte tyst inaktiverat

• Drift: konfigurationshanteringsrapporter konvergerar och manuella redigeringar är sällsynta och granskas

När du ska koppla av detta: för kortlivade labbvärdar eller isolerade byggmaskiner. Redan då, skriv ner vad som är avslappnat, och håll åtminstone grundläggande lappning och kontohygien eftersom dessa misslyckanden lätt går mellan miljöer.