Sådan sikres og hærdes OpenSSH-server


Når det kommer til adgang til eksterne enheder såsom servere, routere og switche, anbefales SSH-protokol stærkt i betragtning af dens evne til at kryptere trafik og afværge enhver, der måske prøver at aflytte dine forbindelser.

Uanset hvad det er, er standardindstillingerne for SSH ikke ufejlbarlige, og der kræves yderligere tweaks for at gøre protokollen mere sikker. I denne vejledning undersøger vi forskellige måder, du kan bruge til at sikre og hærde OpenSSH-installationen på serveren.

1. Opsæt SSH adgangskodeløs godkendelse

Som standard kræver SSH, at brugerne angiver deres adgangskoder, når de logger ind. Men her er sagen: hackere kan gætte adgangskoder eller endda udføre et brutalt kraftangreb ved hjælp af specielle hackeværktøjer og få adgang til dit system. For at være på den sikre side anbefales det stærkt at bruge SSH-adgangskodeløs godkendelse.

Det første trin er at generere et SSH-nøglepar, der består af en offentlig nøgle og en privat nøgle. Den private nøgle findes på dit værtssystem, mens den offentlige nøgle derefter kopieres til fjernserveren.

Når den offentlige nøgle er kopieret, kan du nu SSH ind på fjernserveren problemfrit uden at skulle angive en adgangskode.

Det næste trin er at deaktivere adgangskodeautentificering. For at opnå dette skal du ændre SSH-konfigurationsfilen.

$ sudo vim /etc/ssh/sshd_config

Inde i konfigurationsfilen skal du rulle og finde følgende direktiv. Fjern kommentar og skift indstillingen ja til nej

PasswordAuthentication no

Genstart derefter SSH-dæmonen.

# sudo systemctl restart sshd

På dette tidspunkt har du kun adgang til fjernserveren ved hjælp af SSH-nøglegodkendelse.

2. Deaktiver anmodninger om tilslutning af brugerens SSH-adgangskode

En anden anbefalet måde at styrke sikkerheden på din server er at deaktivere SSH-login fra brugere uden adgangskoder. Dette lyder lidt underligt, men nogle gange kan systemadministratorer oprette brugerkonti og glemme at tildele adgangskoder - hvilket er en meget dårlig idé.

For at afvise anmodninger fra brugere uden adgangskode skal du igen gå til konfigurationsfilen på /etc/ssh/sshd_config og sikre dig, at du har nedenstående direktiv:

PermitEmptyPasswords no

Genstart derefter SSH-tjenesten, for at ændringen skal gennemføres.

$ sudo systemctl restart sshd

3. Deaktiver SSH-rodlogins

Det er en no brainer, hvad der kan ske, hvis en hacker formår at tøve din rodadgangskode. Tilladelse af fjernrod-login er altid en dårlig idé, der kan bringe dit systems sikkerhed i fare.

Af denne grund anbefales det altid, at du deaktiverer SSH remote root-login og i stedet holder dig til en almindelig ikke-root-bruger. Gå igen til konfigurationsfilen og rediger denne linje som vist.

PermitRootLogin no

Når du er færdig, skal du genstarte SSH-tjenesten, før ændringen skal gennemføres.

$ sudo systemctl restart sshd

Fra nu af deaktiveres fjernrod-login.

4. Brug SSH-protokol 2

SSH findes i to versioner: SSH-protokol 1 og protokol 2. SSH-protokol 2 blev introduceret i 2006 og er mere sikker end protokol 1 takket være dens stærke kryptografiske kontrol, bulk-kryptering og robuste algoritmer.

Som standard bruger SSH protokol 1. For at ændre dette til den mere sikre protokol 2 skal du tilføje nedenstående linje til konfigurationsfilen:

Protocol 2

Genstart som altid SSH for at ændringerne skal træde i kraft.

$ sudo systemctl restart sshd

Fremover bruger SSH som standard protokol 2.

For at teste, om SSH-protokol 1 understøttes mere, skal du køre kommandoen:

$ ssh -1 [email 

Du får en fejl, der læser "SSH-protokol v.1 understøttes ikke længere".

I dette tilfælde var kommandoen:

$ ssh -1 [email 

Derudover kan du blot angive -2 -tagget bare for at være sikker på, at Protocol 2 er standardprotokollen, der er i brug.

$ ssh -2 [email 

5. Indstil inaktiv værdi for SSH-forbindelsestimeout

At lade din pc være uden opsyn i længere perioder med en inaktiv SSH-forbindelse kan udgøre en sikkerhedsrisiko. Nogen kan simpelthen passere forbi og overtage din SSH-session og gøre hvad de vil. For at løse problemet er det klogt at indstille en ledig timeout-grænse, som når SSH-sessionen overskrides, lukkes.

Åbn igen din SSH-konfigurationsfil og find direktivet "ClientAliveInterval". Tildel en rimelig værdi, for eksempel har jeg sat grænsen til 180 sekunder.

ClientAliveInterval 180

Dette indebærer, at SSH-sessionen slettes, hvis der ikke registreres nogen aktivitet efter 3 minutter, hvilket svarer til 180 sekunder.

Genstart derefter SSH-dæmonen for at foretage de foretagne ændringer.

$ sudo systemctl restart sshd

6. Begræns SSH-adgang til visse brugere

For et ekstra sikkerhedslag kan du definere de brugere, der har brug for SSH-protokol for at logge ind og udføre fjernopgaver på systemet. Dette forhindrer andre brugere, der kan prøve at få adgang til dit system uden din godkendelse.

Åbn som altid konfigurationsfilen og tilføj direktivet "AllowUsers" efterfulgt af navnene på de brugere, du vil tildele. I eksemplet nedenfor har jeg tilladt brugerne 'tecmint' og 'james' at få fjernadgang til systemet via SSH. Enhver anden bruger, der forsøger at få fjernadgang, blokeres.

AllowUsers tecmint james

Genstart derefter SSH, så ændringerne fortsætter.

$ sudo systemctl restart sshd

7. Konfigurer en grænse for adgangskodeforsøg

En anden måde, du kan tilføje et sikkerhedslag på, er ved at begrænse antallet af SSH-loginforsøg, så forbindelsen falder efter et antal mislykkede forsøg. Så gå igen til konfigurationsfilen og find "MaxAuthTries" -direktivet og definer en værdi for det maksimale antal forsøg.

I dette eksempel er grænsen sat til 3 forsøg som vist.

MaxAuthTries 3

Og endelig genstart SSH-tjenesten som i de foregående scenarier.

Du kan også finde disse følgende SSH-relaterede artikler nyttige:

  • Sådan installeres OpenSSH 8.0-server fra kilde i Linux
  • Sådan installeres Fail2Ban for at beskytte SSH på CentOS/RHEL 8
  • Sådan ændres SSH-port i Linux
  • Sådan oprettes SSH-tunnelering eller portvideresendelse i Linux
  • 4 måder at fremskynde SSH-forbindelser i Linux
  • Sådan finder du alle mislykkede SSH-loginforsøg i Linux
  • Sådan afbrydes inaktive eller inaktive SSH-forbindelser i Linux

Det var en sammenfatning af nogle af de foranstaltninger, du kan tage for at sikre dine SSH-fjernforbindelser. Det er vigtigt at tilføje, at du altid skal tildele stærke adgangskoder til brugere, der har fjernadgang for at forhindre brutale kraftangreb. Det er vores håb, at du fandt denne guide indsigtsfuld. Din feedback er meget velkommen.