Hvordan sikre SSH -serveren i Ubuntu Topp 10.Topp 10 fra Basic to Advanced

Hvordan sikre SSH -serveren i Ubuntu Topp 10.Topp 10 fra Basic to Advanced
Akkurat som alle andre servere er SSH -serveren også utsatt for uautoriserte tilgangsforsøk. Derfor, når du ønsker å bruke en SSH -server, må du ha vurdert å sikre den først for å redde dere fra enhver uønsket situasjon på lengre sikt. Generelt er begrepet "sikring av en server" også kjent som "herding en server.”Dette kan gjøres ved å ta flere tiltak. Disse tiltakene avhenger av sikkerhetsnivået du trenger.

Tiltakene for å sikre SSH -serveren spenner fra grunnleggende til avansert, og som vi sa tidligere, kan du hente dem i henhold til sikkerhetsnivået du trenger. Du kan hoppe over noen av de foreskrevne tiltakene hvis du har tilstrekkelig kunnskap om konsekvensene, og hvis du er i en god posisjon til å møte dem. Vi kan også aldri si at et enkelt trinn vil sikre 100% sikkerhet, eller et visst trinn er bedre enn det andre.

Alt avhenger av hvilken type sikkerhet vi faktisk trenger. Derfor har vi i dag tenkt å gi deg en veldig dyp innsikt i de grunnleggende og avanserte trinnene for å sikre en SSH -server i Ubuntu 20.04. Bortsett fra disse metodene, vil vi også dele med deg noen flere tips for å sikre din SSH -server som en bonus. Så la oss komme i gang med dagens interessante diskusjon.

Metode for å sikre SSH -serveren i Ubuntu 20.04:

Alle SSH -konfigurasjonene er lagret i dens/etc/ssh/sshd_config -filen. Denne filen anses som veldig avgjørende for normal funksjon av SSH -serveren din. Før du gjør noen endringer i denne filen, anbefales det derfor at du oppretter en sikkerhetskopi av denne filen ved å kjøre følgende kommando i terminalen din:

sudo cp/etc/ssh/sshd_config/etc/ssh/sshd_config.Bak


Hvis denne kommandoen blir utført med hell, vil du ikke bli presentert med noen utdata, som vist på bildet nedenfor:

Etter å ha opprettet en sikkerhetskopi av denne filen, er dette trinnet valgfritt og utføres hvis du ønsker å sjekke alle alternativene som for øyeblikket er aktivert i denne konfigurasjonsfilen. Du kan sjekke det ut ved å kjøre følgende kommando i terminalen din:

sudo sshd -t


De for øyeblikket aktiverte alternativene til SSH -konfigurasjonsfilen vises på bildet nedenfor. Du kan bla nedover denne listen for å se alle alternativene.

Nå kan du begynne å sikre SSH -serveren din mens du går fra de grunnleggende trinnene til de avanserte trinnene i Ubuntu 20.04.

Grunnleggende trinn for å sikre SSH -serveren i Ubuntu 20.04:

De grunnleggende trinnene for å sikre en SSH -server i Ubuntu 20.04 er som følger:

Trinn 1: Åpne SSH -konfigurasjonsfilen:

Du kan åpne SSH -konfigurasjonsfilen ved å kjøre kommandoen angitt nedenfor i terminalen:

sudo nano/etc/ssh/sshd_config


SSH -konfigurasjonsfilen vises i følgende bilde:

Trinn 2: Deaktivering av passordbasert autentisering:

I stedet for å bruke passord for autentisering, anses SSH -nøkler som sikrere. Derfor, hvis du har generert SSH-nøklene for autentisering, må du deaktivere passordbasert autentisering. For det må du finne "PasswordAuthentication" -variabelen, ukommelige den og sette verdien til "Nei", som fremhevet i bildet som er vist nedenfor:

Trinn 3: Avvis/ nekte tomme passord:

Noen ganger synes brukere det er ekstremt praktisk å lage tomme passord for å lagre seg fra å huske komplekse passord. Denne praksisen kan vise seg å være skadelig for sikkerheten til SSH -serveren din. Derfor må du avvise alle autentiseringsforsøkene med tomme passord. For det må du finne variabelen “tillatemottypasswords” og bare ta ut den siden verdien allerede er satt til "Nei" som standard, som fremhevet i følgende bilde:

Trinn 4: Forbudende rotpålogging:

Du bør strengt forby rotlogginger for å beskytte enhver inntrenger mot å få tilgang til rotnivå til serveren din. Du kan gjøre dette ved å lokalisere "tillatelseslogin" -variabelen, ukomne den og sette verdien til "nei", som fremhevet i bildet vist nedenfor:

Trinn 5: Bruke SSH -protokoll 2:

SSH -server kan fungere på to forskjellige protokoller, i.e., Protokoll 1 og protokoll 2. Protokoll 2 implementerer mer avanserte sikkerhetsfunksjoner, og det er grunnen til at det er foretrukket fremfor protokoll 1. Protokoll 1 er imidlertid standardprotokollen til SSH, og den er ikke eksplisitt nevnt i SSH -konfigurasjonsfilen. Derfor, hvis du ønsker å jobbe med protokoll 2 i stedet for protokoll 1, må du eksplisitt legge til linjen “Protokoll 2” til SSH -konfigurasjonsfilen din som fremhevet i følgende bilde:

Trinn 6: Innstilling av en økt timeout:

Noen ganger lar brukerne datamaskinene være uten tilsyn i veldig lang tid. I mellomtiden kan enhver inntrenger komme over og få tilgang til systemet ditt mens du bryter sikkerheten. Det er her begrepet tidsavbrudd for økt spiller inn. Denne funksjonen brukes til å logge ut en bruker hvis han holder seg inaktiv i lang tid, slik at ingen annen bruker kan få tilgang til systemet sitt.

Denne tidsavbruddet kan settes ved å lokalisere variabelen “clientaliveInterval”, ukommentar den og tilordne den hvilken som helst verdi (i sekunder) du ønsker. I vårt tilfelle har vi tildelt det verdien av "300 sekunder" eller "5 minutter". Det betyr at hvis brukeren holder seg borte fra SSH -serveren i “300 sekunder”, så blir han automatisk logget ut som uthevet i bildet vist nedenfor:

Trinn 7: La spesifikke brukere få tilgang til SSH -serveren:

SSH -serveren er ikke en server hvis tilgang er påkrevd av alle andre brukerer. Derfor må tilgangen bare begrenses til de brukerne som faktisk trenger den. For å la spesifikke brukere få tilgang til SSH -serveren, må du legge til en variabel som heter "AllowUsers" i SSH -konfigurasjonsfilen og deretter skrive navnene til alle brukerne som du vil tillate tilgang til SSH -serveren atskilt med et mellomrom. I vårt tilfelle ønsket vi bare å la en bruker få tilgang til SSH -serveren. Derfor har vi bare lagt til navnet hans som fremhevet i følgende bilde:

Trinn 8: Begrensning av antall autentiseringsforsøk:

Hver gang en bruker prøver å få tilgang til en server, og han ikke klarer å autentisere seg for første gang, prøver han å gjøre det igjen. Brukeren fortsetter å gjøre disse forsøkene til, og med mindre han lykkes i stand til å autentisere seg selv, og derfor får du tilgang til SSH -serveren. Dette anses som en svært usikker praksis siden en hacker kan lansere et brute force -angrep (et angrep som gjentatte ganger prøver å gjette et passord til riktig kamp er funnet). Resultatet vil han kunne få tilgang til SSH -serveren din.

Det er derfor det anbefales på det sterkeste å begrense antall autentiseringsforsøk for å forhindre gjettangrep for passord. Standardverdien for godkjenningsforsøkene til SSH -serveren er satt til “6”. Du kan imidlertid endre det avhengig av sikkerhetsnivået du trenger. For det må du lokalisere "Maxauthries" -variablene, ukommsomme det og sette verdien til ethvert ønsket nummer. Vi ønsket å begrense autentiseringsforsøkene til "3", som fremhevet i bildet vist nedenfor:

Trinn 9: Kjører SSH -serveren i testmodus:

Nå har vi tatt alle de grunnleggende trinnene for å sikre SSH -serveren vår på Ubuntu 20.04. Imidlertid må vi fortsatt sørge for at alternativene vi nettopp har konfigurert fungerer som de skal. For det vil vi først lagre og lukke konfigurasjonsfilen vår. Etter å ha gjort det, vil vi prøve å kjøre SSH -serveren vår i testmodus. Hvis den kjøres vellykket i testmodus, vil det innebære at det ikke er noen feil i konfigurasjonsfilen din. Du kan kjøre SSH -serveren din i testmodus ved å kjøre følgende kommando i terminalen:

sudo sshd -t


Når denne kommandoen blir utført med hell, vil den ikke vise noen utgang på terminalen, som vist på bildet nedenfor. Imidlertid, hvis det vil være noen feil i konfigurasjonsfilen din, vil det å kjøre denne kommandoen gjøre disse feilene på terminalen. Du skal da fikse disse feilene. Først da vil du kunne fortsette videre.

Trinn 10: Last inn SSH -serveren med nye konfigurasjoner:

Nå når SSH -serveren kjørte vellykket i testmodus, må vi laste den på nytt slik at den kan lese den nye konfigurasjonsfilen, i.e., Endringene som vi har gjort i SSH -konfigurasjonsfilen i trinnene som er vist ovenfor. For å laste inn SSH -serveren med nye konfigurasjoner, må du kjøre følgende kommando i terminalen:

Sudo Service SSHD Reload


Hvis SSH -serveren din blir startet på nytt, vil terminalen ikke vise noen utdata, som vist på bildet nedenfor:

Avanserte trinn for å sikre SSH -serveren i Ubuntu 20.04:

Etter å ha utført alle de grunnleggende trinnene for å sikre SSH -serveren i Ubuntu 20.04, kan du endelig ta turen til de avanserte trinnene. Dette er bare et skritt fremover for å sikre SSH -serveren din. Imidlertid, hvis du bare har tenkt å oppnå et moderat sikkerhetsnivå, vil trinnene beskrevet ovenfor være tilstrekkelig. Men hvis du vil gå litt lenger, kan du følge trinnene som er forklart nedenfor:

Trinn 1: Åpne ~/.ssh/autorisert_keys -fil:

De grunnleggende trinnene for å sikre SSH -serveren implementeres i SSH -konfigurasjonsfilen. Det betyr at disse retningslinjene vil ha bra for alle brukerne som vil prøve å få tilgang til SSH -serveren. Det innebærer også at de grunnleggende trinnene representerer en generisk metode for å sikre SSH -serveren. Imidlertid, hvis vi prøver å vurdere prinsippet om "forsvar i dybden", vil vi innse at vi trenger å sikre hver enkelt SSH -nøkkel separat. Dette kan gjøres ved å definere eksplisitte sikkerhetsparametere for hver enkelt nøkkel. SSH -tastene lagres i ~/.ssh/autorisert_keys -fil, så vi får først tilgang til denne filen for å endre sikkerhetsparametrene. Vi vil kjøre følgende kommando i terminalen for å få tilgang til ~/.ssh/autorisert_keys -fil:

sudo nano ~/.SSH/Authorised_Keys

Å kjøre denne kommandoen vil åpne den spesifiserte filen med Nano -redigereren. Du kan imidlertid bruke hvilken som helst annen tekstredigerer etter eget valg for å åpne denne filen. Denne filen vil inneholde alle SSH -nøklene du har generert så langt.

Trinn 2: Definere spesifikke konfigurasjoner for bestemte nøkler:

For å oppnå et avansert sikkerhetsnivå, er følgende fem alternativer tilgjengelige:

  • No-Agent-Forwarding
  • No-port-fremover
  • NO-PTY
  • No-User-RC
  • NO-X11-spiss

Disse alternativene kan skrives før noen SSH -nøkkel etter ditt valg for å gjøre dem tilgjengelige for den aktuelle nøkkelen. Enda mer enn ett alternativ kan også konfigureres for en enkelt SSH -tast. For eksempel vil du deaktivere port-videresending for en bestemt nøkkel, eller med andre ord, du vil implementere ikke-port-videresending for en bestemt nøkkel, så vil syntaks være som følger:

No-port-videresending Desiredsshkey

Her, i stedet for Desiredsshkey, vil du ha en faktisk SSH -nøkkel innen ~//.ssh/autorisert_keys -fil. Etter å ha brukt disse alternativene for ønsket SSH -nøkler, må du lagre ~//.ssh/autorisert_keys -filen og lukk den. En god dette med denne avanserte metoden er at den ikke vil kreve at du laster inn SSH -serveren din på nytt etter å ha gjort disse modifikasjonene. Snarere vil disse endringene bli lest av SSH -serveren din automatisk.

På denne måten vil du kunne sikre hver SSH -tast i dybden ved å bruke de avanserte sikkerhetsmekanismene.

Noen ekstra tips for å sikre SSH -serveren i Ubuntu 20.04:

Bortsett fra alle de grunnleggende og avanserte trinnene vi har tatt ovenfor, er det også noen ekstra tips som kan vise seg å være veldig bra for å sikre SSH -serveren i Ubuntu 20.04. Disse tilleggstipsene har blitt diskutert nedenfor:

Hold dataene dine kryptert:

Dataene som ligger på SSH -serveren din, så vel som den som forblir i transitt, må krypteres og det også, med en sterk krypteringsalgoritme. Dette vil ikke bare beskytte integriteten og konfidensialiteten til dataene dine, men vil også forhindre at sikkerheten til hele SSH -serveren blir kompromittert.

Hold programvaren oppdatert:

Programvaren som kjører på SSH -serveren din må være oppdatert. Dette gjøres for å sikre at ingen sikkerhetsfeil i programvaren din forblir uten tilsyn. Snarere bør de lappes i god tid. Dette vil spare deg fra potensielle skader på lang sikt og vil også forhindre at serveren din går ned eller er utilgjengelig på grunn av sikkerhetsproblemer.

Forsikre deg om at Selinux er aktivert:

Selinux er mekanismen som legger grunnsteinen til sikkerheten i Linux -baserte systemer. Det fungerer ved å implementere den obligatoriske tilgangskontrollen (Mac). Den implementerer denne tilgangskontrollmodellen ved å definere tilgangsregler i sin sikkerhetspolitikk. Denne mekanismen er aktivert som standard. Imidlertid har brukerne lov til å endre denne innstillingen når som helst. Det betyr at de kan deaktivere Selinux når de vil. Imidlertid anbefales det på det sterkeste at du alltid holder Selinux aktivert slik at den kan forhindre at SSH -serveren din har alle potensielle skader.

Bruk strenge passordpolicyer:

Hvis du har beskyttet SSH -serveren din med passord, må du opprette sterke passordpolicyer. Ideelt sett bør passordene være mer enn 8 tegn lange. De bør endres etter en spesifisert tid, si etter hver 2. måned. De skal ikke inneholde noen ordboksord; Snarere bør de være en kombinasjon av alfabet, tall og spesialtegn. Tilsvarende kan du definere noen andre ekstra strenge tiltak for passordreglene dine for å sikre at de er sterke nok.

Overvåk og vedlikehold revisjonsloggene til SSH -serveren din:

Hvis noe går galt med SSH -serveren din, kan den første hjelperen din være revisjonsloggene. Derfor må du fortsette å opprettholde disse tømmerstokkene slik at du kan spore tilbake årsaken til problemet. Hvis du fortsetter å overvåke helsen og arbeidet til SSH -serveren kontinuerlig, vil dette også forhindre at noen store problemer oppstår i utgangspunktet.

Oppretthold regelmessige sikkerhetskopier av dataene dine:

Sist, men ikke minst, bør du alltid holde en sikkerhetskopi av hele SSH -serveren. Å gjøre dette vil ikke bare lagre dataene dine fra å bli ødelagt eller helt tapt; Snarere kan du også bruke denne backup -serveren når hovedserveren går ned. Dette vil også begrense serverens driftsstans og sikre tilgjengeligheten.

Konklusjon:

Ved å ta vare på alle tiltakene som er foreskrevet i denne artikkelen, kan du enkelt sikre eller herde SSH -serveren din i Ubuntu 20.04. Imidlertid, hvis du er fra en informasjonssikkerhetsbakgrunn, må du være godt klar over dette faktum at det ikke er noe som 100% sikkerhet. Alt vi kan få er det beste anstrengelsesløftet, og den beste innsatsen vil bare være sikker til den tid det også vil bli brutt. Det er grunnen til at selv etter å ha tatt alle disse tiltakene, kan du ikke si at SSH -serveren din er 100% sikker; snarere kan det fortsatt ha slike sårbarheter som du aldri en gang kunne ha tenkt på. Slike sårbarheter kan bare tas vare på hvis vi holder øye med SSH -serveren vår og fortsetter å oppdatere den når det er påkrevd.