SSH er den vigtigste protokol, der bruges til at oprette forbindelse til og administrere Linux-servere. På grund af dette er det en af de hyppigst angrebne porte, når ondsindede aktører forsøger at få adgang til din server. I denne artikel vil vi diskutere et par metoder, som du kan bruge til at gøre din SSH-forbindelse mere sikker.
Bemærk: Afhængigt af det produkt, du har hos OVHcloud, er nogle af disse trin måske allerede blevet taget. Hvis det er tilfældet, skal du blot gå videre til næste trin. Desuden antager trinene i denne artikel, at du autentificerer dig til din server ved hjælp af SSH-nøgler. Hvis du i stedet bruger en adgangskode, vil visse trin i denne artikel ikke fungere.
Forudsætninger
- Sådan bruger du SSH-nøgler
- Server, der kører CentOS 7
Temaer
- Oprettelse af en ny Sudo-bruger
- Ændring af SSH-dæmonen Konfiguration
Opretning af en ny Sudo-bruger
Det er altid den bedste praksis at afvise root-godkendelse over SSH, da dette er det brugernavn, som folk vil forsøge at hacke sig mest ind på. Derfor er det første, vi vil gøre for at sikre vores server, at oprette en ny sudo bruger til SSH. For at gøre dette skal du indtaste følgende kommando, hvor du erstatter det røde brugernavn med et brugernavn efter eget valg:
# adduser username
Næst skal vi indstille en adgangskode til brugeren:
# passwd username
Følg prompten for at oprette og bekræfte adgangskoden. Nu vil vi give vores nye bruger sudo-privilegier, så vi kan blive root og køre kommandoer, der kræver administrative rettigheder. Det kan vi gøre ved at indtaste følgende kommando.
# usermod -aG wheel username
Sidst vil vi give vores nye bruger mulighed for at autentificere ved hjælp af den offentlige SSH-nøgle, som vi allerede har givet til root-brugeren. Vi kan bruge en simpel rsync-kommando til at kopiere den offentlige nøgle over til vores nye brugers authorized_keys-fil.
# rsync --archive --chown=username:username ~/.ssh /home/username
Hvor du går videre til næste trin, skal du logge ud og sikre dig, at du er i stand til at autentificere dig på serveren som den nye bruger ved hjælp af SSH. Hvis du ikke kan logge ind som din nye bruger, vil du stadig kunne logge ind som root; bekræft, at alle kommandoer er blevet indtastet korrekt, og prøv at logge ind som din nye bruger igen.
Ændring af SSH-dæmonens konfiguration
Da vi bruger SSH-nøgler og en ny bruger til at godkende vores server, ønsker vi aldrig, at nogen skal godkende sig ved hjælp af en adgangskode eller brugernavnet root. For at opnå dette ønsker vi først at navigere til konfigurationsfilen for OpenSSH-dæmonen. For at gøre dette skal du åbne filen i en teksteditor efter eget valg ved hjælp af følgende kommando:
$ sudo vi /etc/ssh/sshd_config
Der er tre ændringer, som vi ønsker at foretage i denne fil. For det første vil vi ændre den port, som OpenSSH lytter efter anmodninger på.
Warning: Hvis du har nogen aktive firewalls, skal du tillade trafik gennem den port, du vælger, ellers låser du dig selv ude af din server. Hvis du låser dig selv ude af din server, kan du få adgang igen via IPMI eller KVM. Hvis du vil vide mere, kan du læse vores artikel Kom godt i gang med IPMI.
Overst i filen vil du se et afsnit, der som standard ser således ud:
#Port 22#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::
Ukommenter afsnittet “Port”, og vælg et gyldigt portnummer som i følgende eksempel. I vores eksempel bruger vi port 12345.
Port 12345#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::
Næst ruller du ned til # Authentication:
-delen af filen. Du vil se fem muligheder, der som standard vises som følger:
#LoginGraceTime 2m#PermitRootLogin yes
PermitRootLogin yes#StrictModes#MaxAuthTries 6#MaxSessions 10
Her ønsker vi at ændre “yes” ud for “PermitRootLogin” til “no”. Den vil blive vist som følger:
#LoginGraceTime 2m
#PermitRootLogin yesPermitRootLogin no#StrictModes#MaxAuthTries 6#MaxSessions 10
Nu vil vi rulle lidt længere ned i sshd_config-filen for at foretage vores sidste ændring – deaktivere adgangskodegodkendelse. Du vil se et afsnit, der som standard ser således ud:
# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication yes
Vi ønsker at ændre “yes” ud for “PasswordAuthentication” til et “no”. Det vil se ud som følger:
# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication no
Spar og afslut filen. Til sidst skal vi genstarte OpenSSH, for at ændringerne kan træde i kraft. Det gør du ved at indtaste følgende kommando:
$ sudo systemctl restart sshd.service
Lad os tage et øjeblik til at gennemgå, hvad vi gjorde her. Vi ændrede det portnummer, som vi bruger til at lytte efter SSH-forespørgsler. Derefter deaktiverede vi SSH-adgang for root-brugeren eller enhver bruger, der forsøger at autentificere sig med en adgangskode. Hvis vi har gjort dette korrekt, vil følgende kommando ikke længere fungere for at logge ind på serveren.
$ ssh [email protected]
For at logge ind nu skal vi angive det portnummer, vi bruger til at lytte efter SSH-forespørgsler. Det betyder, at vi fra nu af skal bruge følgende kommando, hvor vi erstatter tallet ud for “-p” med det portnummer, vi valgte tidligere:
$ ssh -p 12345 [email protected]
Sørg for, at denne kommando virker, og at den foregående ikke gør det. Hvis den gør, er du klar til at få sikker adgang til din server via SSH.
Konklusion
Med så mange dårlige aktører, der bruger internettet, har det aldrig været vigtigere at sikre alle potentielle indgangspunkter til din server. Ved at følge denne vejledning har du hjulpet sikkerheden af det mest almindelige indgangspunkt på Linux-servere.