Sikring af SSH involverer en bred vifte af mulige teknikker, men ikke alle er lige praktiske for ethvert miljø. Anbefalingerne i denne artikel er bredt anerkendte, effektive metoder, der balancerer let implementering med robust beskyttelse. De er hentet fra standarder fastsat af organisationer som NIST, CERT og OpenSSH-projektet og afspejler kerneprincipper, som SSL.com også anvender til at sikre digitale certifikater – beskyttelse af nøgler, brug af stærk kryptering og begrænsning af privilegeret adgang.
Når du har konfigureret disse grundlæggende bedste praksisser, kan du udforske mere avancerede taktikker – såsom certifikatbaseret SSH, port banking eller SSH over VPN – efter behov.
1. Brug nøglebaseret godkendelse i stedet for adgangskoder
Hvad er det:
Du erstatter adgangskodelogins med et kryptografisk offentligt/privat nøglepar. Den offentlige nøgle går på din server, mens den private nøgle bliver på din lokale maskine.
Hvorfor det er mere sikkert:
- Adgangskoder er modtagelige for brute-force-angreb
- En angriber skal fysisk anskaffe din private nøgle for at bryde ind, hvilket er langt sværere end at gætte en adgangskode
Sådan implementeres:
Generer et nøglepar
På Linux eller macOS skal du åbne en terminal og køre:
ssh- keygen -t ed25519
For ekstra sikkerhed (hvis ed25519 ikke er tilgængelig i dit miljø), kan du bruge:
ssh- keygen -t rsa -b 4096
Kopier den offentlige nøgle til din server
Du kan bruge kommandoen ssh-copy-id (på Linux/macOS) til nemt at overføre din offentlige nøgle:
ssh-copy-id bruger@server_adresse
Hvis ssh-copy-id ikke er tilgængelig, skal du manuelt tilføje indholdet af din id_ed25519.pub (eller id_rsa.pub) fil til serverens ~/.ssh/authorized_keys fil.
Deaktiver adgangskodegodkendelse
Indstil i /etc/ssh/sshd_config:
Adgangskode Godkendelsesnr
Genstart SSH-tjenesten:
sudo systemctl genstart ssh
Ligesom håndtering af digitale certifikater sikrer SSH-nøglebaseret godkendelse, at kun en person med den korrekte private nøgle kan etablere en forbindelse.
2. Deaktiver root-login
Hvad er det:
Forhindrer root-brugeren i at logge ind direkte via SSH.
Hvorfor det er mere sikkert:
- Root-kontoen har ubegrænsede privilegier og er et attraktivt mål for angribere
- Deaktivering af direkte root-adgang tvinger angribere til ikke kun at gætte en nøgle eller adgangskode, men også et gyldigt brugernavn
Sådan implementeres:
Find eller tilføj i /etc/ssh/sshd_config:
PermitRootLogin nr
Genstart SSH:
sudo systemctl genstart ssh
Dette trin indsnævrer effektivt din angrebsflade ved at fjerne den mest kraftfulde konto fra nem rækkevidde.
3. Håndhæv stærk kryptering og MAC-algoritmer
Hvad er det:
SSH giver dig mulighed for at specificere, hvilke cifre og meddelelsesgodkendelseskoder (MAC'er), der skal bruges til at kryptere data og verificere dataintegritet.
Hvorfor det er mere sikkert:
- Ældre eller svage algoritmer (f.eks. DES, RC4) kan være sårbare over for kryptografiske angreb
- Brug af moderne cifre (som AES-256) og stærke MAC'er (som HMAC-SHA2) hjælper med at holde dine sessionsdata fortrolige og manipulationssikrede
Sådan implementeres:
I /etc/ssh/sshd_config skal du tilføje eller opdatere din cipher/MAC-liste:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MAC'er hmac-sha2-256, hmac-sha2-512
Genstart SSH:
sudo systemctl genstart ssh
At holde kryptografi ajour for SSH er lige så vigtigt som at sikre, at sikre protokoller og chiffer bruges i TLS.
4. Hold SSH (og dit system) opdateret
Hvad er det:
At sikre, at OpenSSH, sammen med resten af dit operativsystem, får regelmæssige sikkerhedsrettelser.
Hvorfor det er mere sikkert:
- Forældet software indeholder ofte kendte sårbarheder
- Angribere retter sig ofte mod ældre versioner med ikke-patchede udnyttelser
Sådan implementeres:
På Debian- eller Ubuntu-baserede systemer:
sudo apt-get update && sudo apt-get opgradering
På CentOS, Fedora eller RHEL-baserede systemer:
sudo yum update
Sørg for også at tjekke for firmwareopdateringer, hvis du kører SSH på netværksapparater eller anden hardware.
5. Implementer to-faktor- eller multi-faktor-godkendelse (2FA/MFA)
Hvad er det:
Tilføjer et ekstra lag af sikkerhed ved at kræve noget ud over en adgangskode eller nøgle (f.eks. en engangskode på din telefon).
Hvorfor det er mere sikkert:
- Selvom angribere får din SSH-nøgle, har de stadig brug for den anden faktor for at logge ind
- Hjælper med at forsvare sig mod tyveri af legitimationsoplysninger
Sådan implementeres:
Installer og konfigurer et MFA-værktøj
For eksempel: Google Autentificering kan installeres på Linux-servere og opsættes som et PAM-modul (Pluggable Authentication Modules). Følg installationsinstruktionerne, der er specifikke for din distribution.
Rediger /etc/pam.d/sshd og /etc/ssh/sshd_config
- Aktiver Google Authenticator eller et andet MFA-modul
- Indstil ChallengeResponseAuthentication ja og AuthenticationMethods offentlig nøgle, tastatur-interaktiv (eller hvilken kombination der passer til dit miljø)
Genstart SSH:
sudo systemctl genstart ssh
6. Aktiver logning og overvågning
Hvad er det:
Optag SSH-loginhændelser, spor mistænkelig aktivitet, og modtag advarsler, når noget er galt.
Hvorfor det er mere sikkert:
- Indbrudsforsøg er ofte synlige i logfiler som gentagne mislykkede logins eller uautoriserede handlinger
- Tidlig registrering betyder, at du kan reagere hurtigt – blokering af IP'er eller ændring af konfigurationer, før skaden er sket
Sådan implementeres:
Øg log-omtale
Indstil i /etc/ssh/sshd_config:
LogNiveau VERBOSE
Samlede logfiler
- Værktøjer som syslog, rsyslog eller syslog-ng hjælpe med at indsamle og centralisere logfiler
- A SIEM (Security Information and Event Management) løsning kan tilbyde avancerede analyser og alarmering
Brug værktøjer til forebyggelse af indtrængen
fail2ban scanner logfiler og forbyder IP'er, der viser ondsindede tegn, såsom for mange adgangskodefejl.
7. Implementer adgangskontrol og begrænsninger
Hvad er det:
Begræns, hvem der kan oprette forbindelse til SSH og hvorfra, hvilket forhindrer uautoriserede eller overdrevne indgående anmodninger.
Måder at gøre det på:
Firewall-begrænsninger
Tillad kun SSH fra kendte eller betroede IP-adresser. For eksempel på Linux med ufw:
sudo ufw tillade fra 192.168.1.0/24 til enhver port 22
Portkonfiguration
At køre SSH på en ikke-standardport (f.eks. 2222) kan reducere automatiske scanningsforsøg. Det er ikke en erstatning for rigtige sikkerhedsforanstaltninger, men det kan reducere støjen.
Bruger-/gruppebegrænsninger
Angiv i /etc/ssh/sshd_config:
Tillad brugere alice bob
or
Tillad grupper sshadmins
8. Brug SSH-nøgleadgangssætninger og sikker nøgleopbevaring
Hvad er det:
Krypter din private nøgle med en adgangssætning, så selvom din maskine er kompromitteret, er selve nøglen ikke umiddelbart brugbar.
Hvorfor det er mere sikkert:
- En stjålet nøglefil uden en adgangssætning kan give øjeblikkelig adgang
- Adgangssætninger fungerer som et ekstra lag af kryptering på din lokale nøgle
Sådan implementeres:
Indstil en adgangssætning under nøglegenerering
ssh- keygen -t ed25519
(Du bliver bedt om at indtaste en adgangssætning.)
Beskyt dine nøglefiler
Begræns tilladelser til din .ssh-mappe og nøglefiler:
chmod 700 ~ / .ssh
chmod 600 ~/.ssh/id_ed25519
Overvej hardwaresikkerhedsmoduler (HSM'er) eller tokens
For større organisationer kan brug af dedikeret hardware til nøgleopbevaring mindske risikoen for softwarebaseret tyveri eller malware.
Konklusion
SSH sikkerhed koger ned til lag af beskyttelse. Ved at implementere nøglebaseret godkendelse, deaktivere direkte root-adgang, bruge stærk kryptering, holde sig opdateret, kræve multi-faktor-godkendelse, overvåge logfiler, begrænse adgangen og beskytte dine nøgler med adgangssætninger, dækker du de mest almindelige (og mest alvorlige) risici.
Disse foranstaltninger stemmer overens med den samme bredere sikkerhedsfilosofi, som SSL.com fortaler for digitale certifikater: Beskyt kryptografiske nøgler, brug robust kryptering, begræns privilegeret adgang og hold øje med dine systemer. Når du har etableret disse grundlæggende bedste praksisser, kan du udforske mere avancerede muligheder som SSH-certifikatmyndigheder, portbankning eller at køre SSH over en VPN for yderligere at skræddersy din sikkerhedsposition.