ssh

Hvordan sikre SSH-serveren i Ubuntu 20.04 fra Basic til Advanced

Hvordan sikre SSH-serveren i Ubuntu 20.04 fra Basic til Advanced
På samme måte som alle andre servere, er også SSH-serveren utsatt for uautoriserte tilgangsforsøk. Derfor, hver gang du ønsker å bruke en SSH-server, må du ha vurdert å sikre den først for å redde dere fra uønskede situasjoner på lengre sikt. Generelt er begrepet "sikring av en server" også kjent som "herding av 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 god posisjon til å møte dem. Vi kan heller aldri si at et enkelt trinn vil sikre 100% sikkerhet, eller at et bestemt trinn er bedre enn det andre.

Alt avhenger av hvilken type sikkerhet vi faktisk trenger. Derfor har vi i dag tenkt å gi deg et veldig dypt innblikk 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 filen / etc / ssh / sshd_config. Denne filen anses som svært viktig for at SSH-serveren din skal fungere normalt. Før du gjør noen endringer i denne filen, anbefales det derfor at du lager en sikkerhetskopi av denne filen ved å kjøre følgende kommando i terminalen:

sudo cp / etc / ssh / sshd_config / etc / ssh / sshd_config.bak


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

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

sudo sshd -T


De aktive alternativene for SSH-konfigurasjonsfilen vises i 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 Server 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 nedenfor i terminalen:

sudo nano / etc / ssh / sshd_config


SSH-konfigurasjonsfilen vises i følgende bilde:

Trinn 2: Deaktivering av passordbasert godkjenning:

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

Trinn 3: Avvise / nekte tomme passord:

Noen ganger synes brukere det er veldig praktisk å lage tomme passord for å redde seg selv fra å huske komplekse passord. Denne praksisen kan vise seg å være skadelig for sikkerheten til SSH-serveren din. Derfor må du avvise alle autentiseringsforsøk med tomme passord. For det må du finne variabelen “PermitEmptyPasswords” og bare fjerne merkingen, siden verdien allerede er satt til “nei” som standard, som fremhevet i følgende bilde:

Trinn 4: Forby rotinnlogging:

Du bør strengt forbyr root-pålogginger for å beskytte en inntrenger mot å få tilgang på rotnivå til serveren din. Du kan gjøre dette ved å finne variabelen "PermitRootLogin", fjerne kommentarene og sette verdien til "nei", som fremhevet i bildet vist nedenfor:

Trinn 5: Bruke SSH Protocol 2:

SSH-server kan fungere på to forskjellige protokoller, dvs.e., Protokoll 1 og protokoll 2. Protokoll 2 implementerer mer avanserte sikkerhetsfunksjoner, og det er derfor den foretrekkes 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, så må du eksplisitt legge til linjen "protokoll 2" i SSH-konfigurasjonsfilen som fremhevet i følgende bilde:

Trinn 6: Angi en tidsavbrudd for økt:

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 det bryter sikkerheten. Det er her begrepet økt-tidsavbrudd spiller inn. Denne funksjonen brukes til å logge av en bruker hvis han forblir inaktiv i lang tid, slik at ingen andre brukere kan få tilgang til systemet sitt.

Denne tidsavbruddet kan innstilles ved å finne variabelen "ClientAliveInterval", fjerne kommentaren og tildele den hvilken som helst verdi (i sekunder) du ønsker. I vårt tilfelle har vi tildelt den verdien “300 sekunder” eller “5 minutter”. Det betyr at hvis brukeren holder seg borte fra SSH-serveren i "300 sekunder", blir han automatisk logget ut som markert i bildet vist nedenfor:

Trinn 7: Gi spesifikke brukere tilgang til SSH-serveren:

SSH-serveren er ikke en server hvis tilgang kreves av alle andre brukere. Derfor må tilgangen begrenses til de brukerne som faktisk trenger det. For å gi spesifikke brukere tilgang til SSH-serveren, må du legge til en variabel kalt "AllowUsers" i SSH-konfigurasjonsfilen og deretter skrive navnene på alle brukerne du vil gi 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 godkjenningsforsøk:

Hver gang en bruker prøver å få tilgang til en server, og han ikke klarer å godkjenne seg selv for første gang, prøver han å gjøre det igjen. Brukeren fortsetter å gjøre disse forsøkene til og med mindre han er i stand til å godkjenne seg selv og dermed få tilgang til SSH-serveren. Dette betraktes som en svært usikker praksis siden en hacker kan starte et Brute Force Attack (et angrep som gjentatte ganger prøver å gjette et passord til riktig match er funnet). Resultatet er at han vil kunne få tilgang til SSH-serveren din.

Derfor anbefales det på det sterkeste å begrense antall autentiseringsforsøk for å forhindre angrep av passord. Standardverdien for autentiseringsforsøk til SSH-serveren er satt til "6". Du kan imidlertid endre det avhengig av sikkerhetsnivået du trenger. For det må du finne “MaxAuthTries” -variablene, fjerne merkingen av dem og sette verdien til ønsket tall. Vi ønsket å begrense godkjenningsforsøkene til “3”, som fremhevet i bildet vist nedenfor:

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

Nå har vi tatt alle de grunnleggende trinnene for å sikre SSH-serveren vår på Ubuntu 20.04. Vi må imidlertid 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ører vellykket i testmodus, vil det antyde 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 din:

sudo sshd -t


Når denne kommandoen er utført vellykket, vil den ikke vise noen utgang på terminalen, som vist på bildet nedenfor. Imidlertid, hvis det vil være feil i konfigurasjonsfilen din, vil kjøring av denne kommandoen gjengi disse feilene på terminalen. Du vil da være ment å 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 vi har gjort i SSH-konfigurasjonsfilen i trinnene vist ovenfor. For å laste SSH-serveren med nye konfigurasjoner, må du kjøre følgende kommando i terminalen din:

sudo service sshd laste inn på nytt


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

Avanserte trinn for å sikre SSH Server i Ubuntu 20.04:

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

Trinn 1: Åpne ~ /.ssh / autoriserte_taster Fil:

De grunnleggende trinnene for å sikre SSH-serveren er implementert i SSH-konfigurasjonsfilen. Det betyr at disse retningslinjene holder godt for alle brukerne som vil prøve å få tilgang til SSH-serveren. Det innebærer også at de grunnleggende trinnene representerer en generell metode for å sikre SSH-serveren. Men 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 er lagret i ~ /.ssh / autoriserte_keys-fil, så vi får først tilgang til denne filen for å endre sikkerhetsparametrene. Vi kjører følgende kommando i terminalen for å få tilgang til ~ /.ssh / autoriserte_keys fil:

sudo nano ~ /.ssh / autoriserte_taster

Å kjøre denne kommandoen åpner den spesifiserte filen med nano-editoren. Du kan imidlertid også bruke hvilken som helst annen tekstredigerer du ønsker å åpne denne filen. Denne filen inneholder alle SSH-nøklene du har generert så langt.

Trinn 2: Definere spesifikke konfigurasjoner for bestemte taster:

Følgende fem alternativer er tilgjengelige for å oppnå et avansert sikkerhetsnivå:

Disse alternativene kan skrives før en hvilken som helst SSH-nøkkel du ønsker, for å gjøre dem tilgjengelige for den aktuelle nøkkelen. Selv mer enn ett alternativ kan også konfigureres for en enkelt SSH-nøkkel. For eksempel vil du deaktivere videresending av port for en bestemt nøkkel, eller med andre ord, du vil implementere videresending av port for en bestemt nøkkel, så vil syntaksen være som følger:

no-port-forwarding DesiredSSHKey

Her, i stedet for DesiredSSHKey, vil du ha en faktisk SSH-nøkkel i ~ /.ssh / autoriserte_keys-fil. Etter at du har brukt disse alternativene for de ønskede SSH-nøklene, må du lagre ~ /.ssh / autoriserte_keys-filen og lukk den. Godt om denne avanserte metoden er at den ikke krever at du laster inn SSH-serveren din etter at du har gjort disse endringene. Disse endringene vil heller bli lest av SSH-serveren din automatisk.

På denne måten vil du kunne sikre hver SSH-nøkkel 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 ekstra tipsene har blitt diskutert nedenfor:

Hold dataene dine kryptert:

Dataene som ligger på SSH-serveren din, så vel som den som forblir under transport, 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 din 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 forblir uten tilsyn. Snarere bør de lappes i god tid. Dette vil spare deg for potensielle skader i det lange løp, 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 grunnlaget for sikkerheten i Linux-baserte systemer. Det fungerer ved å implementere den obligatoriske tilgangskontrollen (MAC). Den implementerer denne tilgangskontrollmodellen ved å definere tilgangsregler i sikkerhetspolitikken. Denne mekanismen er aktivert som standard. Brukerne har imidlertid lov til å endre denne innstillingen når som helst. Det betyr at de kan deaktivere SELinux når de vil. Det anbefales imidlertid sterkt at du alltid holder SELinux aktivert slik at det kan forhindre SSH-serveren din fra alle potensielle skader.

Bruk strenge passordregler:

Hvis du har beskyttet SSH-serveren din med passord, må du opprette sterke passordregler. Ideelt sett bør passordene være mer enn åtte tegn. De bør endres etter en spesifisert tid, for eksempel hver annen måned. De skal ikke inneholde ordbokord; heller bør de være en kombinasjon av alfabeter, tall og spesialtegn. På samme måte kan du definere noen andre ekstra strenge tiltak for passordpolicyene dine for å sikre at de er sterke nok.

Overvåke og vedlikeholde revisjonsloggene til SSH-serveren din:

Hvis noe går galt med SSH-serveren din, kan din første hjelper være revisjonsloggene. Derfor må du fortsette å vedlikeholde loggene slik at du kan spore årsaken til problemet. Videre, hvis du fortsetter å overvåke helsen og arbeidet til SSH-serveren din kontinuerlig, vil dette også forhindre at store problemer oppstår i utgangspunktet.

Opprettholde regelmessige sikkerhetskopier av dataene dine:

Sist men ikke minst, bør du alltid ta en sikkerhetskopi av hele SSH-serveren. Å gjøre dette vil ikke bare lagre dataene dine fra å bli ødelagt eller helt tapt; I stedet kan du også bruke denne reserveserveren når hovedserveren går ned. Dette vil også begrense serverens nedetid 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. Men hvis du er fra 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 innsatsløftet, og den beste innsatsen vil bare være sikker til den tiden den også blir brutt. Det er grunnen til at selv etter å ha tatt alle disse tiltakene, kan du ikke si at SSH-serveren din er 100% sikker. heller kan det fremdeles ha slike sårbarheter at du aldri engang kunne ha tenkt på det. 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 nødvendig.

Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...
OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...
OpenTTD Tutorial
OpenTTD er et av de mest populære forretningssimuleringsspillene der ute. I dette spillet må du lage en fantastisk transportvirksomhet. Du begynner im...