Cryptology Academy · Lektion

Härdning av SSH och bästa praxis för granskning

Tillämpa härdning av sshd_config, rutiner för nyckelrotation och granskningsloggning för att härda SSH-distributioner.

Lektion 4 av 413 steg

Härdning av SSH och bästa praxis för granskning är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cryptology Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cryptology Academy innehåller totalt 4 lektioner.

Inaktivera lösenordsautentisering

Det mest effektiva enskilda steget för att härda SSH är att ange PasswordAuthentication no i /etc/ssh/sshd_config. Detta tvingar alla användare att autentisera sig med publika nycklar och eliminerar riskerna med svaga eller återanvända lösenord samt brute force-attacker. Se till att minst en auktoriserad nyckel är installerad innan ni inaktiverar lösenordsautentisering, så att ni inte låser er ute.

Begränsa tillåtna användare och grupper

Direktiven AllowUsers och AllowGroups begränsar SSH-åtkomst till namngivna användare eller medlemmar i grupper. Till exempel tillåter AllowGroups sshusers endast medlemmar av gruppen sshusers. Detta ger försvar i flera lager: även om en angripare känner till ett användarnamn och får tag i inloggningsuppgifter nekas SSH-åtkomst om kontot inte uttryckligen är tillåtet.

Ändra standardporten

Att ändra SSH från port 22 till en port med högt nummer är en form av fördunkling, inte säkerhet. Det minskar dock avsevärt bruset i loggarna från automatiserade skannrar som riktar in sig på port 22. Därmed blir det enklare att analysera loggarna efter verkliga hot. Se alltid brandväggsreglerna som den primära åtkomstkontrollen; portfördunkling är endast en kompletterande åtgärd.

Inaktivera root-inloggning

Genom att ange PermitRootLogin no förhindrar ni direkt root-autentisering via SSH. Angripare som riktar in sig på root har ett garanterat giltigt användarnamn och obegränsade behörigheter om de lyckas. Den rekommenderade inställningen är PermitRootLogin prohibit-password, som tillåter root-inloggning endast med autentisering med publika nycklar. Därmed blockeras lösenordsbaserad brute force mot root, samtidigt som nödåtkomst bevaras.

Begränsa autentiseringsförsök

MaxAuthTries 3 begränsar antalet autentiseringsförsök per anslutning till tre. Efter tre misslyckanden avslutar servern anslutningen. Detta försvårar brute force-försök. I kombination med exponentiell backoff från fail2ban eller SSHGuard, som tillfälligt blockerar IP-adresser efter upprepade misslyckanden, blir brute force-attacker beräkningsmässigt ogenomförbara.

Tidsgränser för inloggning

LoginGraceTime anger hur länge servern väntar på en lyckad autentisering innan den kopplar från. Standardvärdet är 120 sekunder; om det sänks till 20 sekunder förhindras långsamma brute force-försök och resursåtgången från oautentiserade anslutningar minskar. ClientAliveInterval och ClientAliveCountMax styr hälsokontroller av anslutningar och kan koppla från inaktiva eller döda sessioner.

Begränsa tillåtna kryptografiska algoritmer

Moderna SSH-konfigurationer bör begränsa algoritmerna till starka, moderna alternativ. I sshd_config anger ni Ciphers till chacha20-poly1305@openssh.com,aes256-gcm@openssh.com, MACs till hmac-sha2-256-etm@openssh.com och KexAlgorithms till curve25519-sha256. Detta eliminerar äldre algoritmer som arcfour, DES och MD5-baserade MAC:ar, vilka kan vara tillgängliga av kompatibilitetsskäl.

Blockera brute force med fail2ban

fail2ban övervakar autentiseringsloggar och blockerar IP-adresser som överskrider en gräns för misslyckade inloggningsförsök. Efter ett konfigurerbart antal misslyckanden inom ett tidsintervall lägger fail2ban till en iptables-regel som släpper alla ytterligare paket från den IP-adressen. Detta automatiserade svar gör brute force-attacker opraktiska utan manuell hantering.

Granskning med ssh-audit

Verktyget ssh-audit ansluter till en SSH-server och utvärderar dess konfiguration: vilka nyckelutbytesalgoritmer, värdnyckeltyper, chiffer och MAC:ar den erbjuder, samt flaggar föråldrade eller svaga alternativ. Genom att köra ssh-audit mot era servrar före och efter härdning får ni en objektiv jämförelse före och efter och kan identifiera eventuella luckor i konfigurationen.

Loggning och åtkomstgranskning

SSH-autentiseringshändelser loggas via syslog. I Linux registrerar /var/log/auth.log (Debian) eller /var/log/secure (RHEL) varje lyckad och misslyckad inloggning tillsammans med tidsstämpel, användarnamn, käll-IP och det använda nyckelfingeravtrycket. Genom att skicka dessa loggar till ett centralt SIEM kan ni upptäcka ovanliga åtkomstmönster, till exempel inloggningar från oväntade länder eller vid ovanliga tider.

Komplett exempel på härdad konfiguration

En härdad sshd_config kombinerar PasswordAuthentication no, PermitRootLogin prohibit-password, MaxAuthTries 3, LoginGraceTime 20, AllowGroups sshusers, begränsade Ciphers och MACs, X11Forwarding no samt AllowTcpForwarding no (om tunnling inte krävs). Varje direktiv tar bort en specifik angreppsmöjlighet, och tillsammans utgör de en SSH-konfiguration med försvar i flera lager.

Konfiguration för SSH-härdning

Vilken inställning i sshd_config är mest effektiv för att eliminera lösenordsbaserade brute force-attacker mot SSH?

Sammanfattning av SSH-härdning

Checklista för SSH-härdning: inaktivera lösenordsautentisering, begränsa åtkomsten med AllowGroups/AllowUsers, inaktivera root-inloggning eller begränsa den till enbart nyckelautentisering, ange MaxAuthTries 3, minska LoginGraceTime, begränsa algoritmerna till enbart moderna chiffer, införa fail2ban eller SSHGuard, köra ssh-audit för en objektiv bedömning och centralisera loggar för avvikelsedetektering.

Gratis att börja

Lär dig Cryptology Academy med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
67
Lektioner
261

Vanliga frågor

Är lektionen ”Härdning av SSH och bästa praxis för granskning” gratis?

Ja – hela texten till ”Härdning av SSH och bästa praxis för granskning” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cryptology Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Cryptology Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Härdning av SSH och bästa praxis för granskning”?

Tillämpa härdning av sshd_config, rutiner för nyckelrotation och granskningsloggning för att härda SSH-distributioner. Ni övar på Cryptology Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Cryptology Academy?

Du behöver inga förkunskaper. Utbildningen i Cryptology Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Härdning av SSH och bästa praxis för granskning”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Cryptology Academy-lektionen?

Ja. Varje Cryptology Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. SSH-handskakning och autentisering med värdnyckel
  2. Autentisering med publika nycklar och agent forwarding
  3. SSH-tunnling och tekniker för port forwarding
  4. Härdning av SSH och bästa praxis för granskning
← Tillbaka till Cryptology Academy