SSH (Secure Socket Shell) er et kommandolinjegrensesnitt og protokoll for sikker tilgang til en ekstern Linux-server. Det gir en sikker og kryptert kommunikasjon over et nettverk og tillater data å bli utvekslet over en sikker kanal mellom to servere. Det er mye brukt av systemadministratorer for å styre Internett og andre typer servere eksternt. I denne artikkelen skal vi vise deg hvordan du kan sikre din SSH-server.

Merk : denne opplæringen antar at SSH-serveren kjører Ubuntu 14.04, og klientmaskinen er en Linux.

Komme i gang - installer SSH

Først må du oppdatere systemet og installere nødvendige pakker til systemet.

For å oppdatere systemet og installere SSH-serveren på servermaskinen, kjør følgende kommando:

 sudo apt-get oppdatering sudo apt-get install openssh-server 

For å installere SSH klient på klientmaskinen, kjør følgende kommando:

 sudo apt-get installer openssh-klient 

Konfigurer SSH for passord-mindre innlogging

Det er to forskjellige metoder for å logge inn på en SSH-server: den ene er passordbasert autentisering og den andre er nøkkelbasert godkjenning. Passordautentisering er en veldig enkel metode som er enkel å bruke og sprekk. Bruk av passordautentisering er svært usikkert, spesielt hvis brukeren bruker et svakt passord. På den annen side gir SSH-nøklene en enkel og sikker måte å logge på en ekstern server, og denne metoden anbefales for alle brukere.

På klientmaskinen din, generer SSH-nøkler med følgende kommando:

 cd ~ / .ssh ssh-keygen -t rsa 

Bare trykk Enter-tasten ved hver ledetekst. Dette produserer to filer: id_rsa.pub (offentlig nøkkel) og id_rsa (privat nøkkel).

Dette vil utgjøre noe som ser ut som følgende:

Opprett følgende mappe på serveren din (hvis den ikke eksisterer):

 mkdir -p ~ / .ssh / 

Tilbake til klientmaskinen, kopier "id_rsa.pub" -filen til serveren din ved hjelp av følgende kommando:

 scp -P "yourport" ~ / .ssh / id_rsa.pub brukernavn @ serverip: ~ / .ssh 

Endre "yourport" til portnummeret som SSH-serveren bruker (standard er 22) og "serverip" til serverens IP-adresse.

På servermaskinen må du endre filnavn og oppsettrettigheter.

 katt ~ / .ssh / id_rsa.pub >> ~ / .ssh / authorized_keys chmod 700 .ssh chmod 600.ssh / authorized_keys rm .ssh / id_rsa.pub 

For å teste om nøkkelbasert autentiseringsmetode fungerer, kan du prøve å koble til SSH-serveren din fra klientmaskinen:

 ssh -P "yourport" brukernavn @ serverip 

Hvis du er i stand til å koble til uten å skrive inn et passord, fungerer den nøkkelbaserte godkjenningsmetoden.

Sikker SSH konfigurasjonsfil

Filen "/ etc / ssh / sshd_config" er den systembaserte konfigurasjonsfilen for SSH som lar deg sette forskjellige alternativer for å forbedre sikkerheten til en SSH-server. Standardkonfigurasjonen i config-filen er veldig usikker, så du må redigere den først og angi riktige alternativer for å forbedre sikkerheten.

For å redigere filen "/ etc / ssh / sshd_config", kjør

 sudo nano / etc / ssh / sshd_config 

Endre SSH lytteport

Som standard lytter SSH på port 22. Angrepere bruker portskannere for å se om en SSH-tjeneste kjører eller ikke. Det anbefales å endre standardporten.

Hvis du vil endre standardporten til 2200, endrer du:

 Port 22 

til

 Port 2200 

Bruk bare protokoll 2

Versjon 1 i protokollen inneholder sikkerhetsproblemer. Protokoll 2 er standardoppføringen på Ubuntu.

Endre linjen som er vist nedenfor:

 Protokoll 2 

Begrens brukernes tilgang

Det er nødvendig å tillate bare bestemte brukere å logge inn på SSH. Det kan forbedre sikkerheten din. Som standard er dette alternativet ikke tilgjengelig i SSH-konfigurasjonsfilen.

For å tillate "user1" og "user2, " legg til følgende linje:

 Tillat brukere1 bruker2 

For å nekte "baduser1" og "baduser2, " legg til følgende linje:

 DenyUsers baduser1 baduser2 

Deaktiver root login

Det er ikke nødvendig å logge på som root via ssh over et nettverk. Normale brukere kan også bruke su eller sudo å få tilgang til root-nivå. De fleste angripere vil prøve å bruke root-brukeren til å logge inn. Dette er en stor sikkerhetsrisiko, så det anbefales å nekte root-logoen.

For å deaktivere root login, endre linjen

 PermitRootLogin uten passord 

til

 PermitRootLogin nr 

Skjul siste innlogging

Du kan skjule hvem som er logget inn sist når en bruker logger på.

For dette, endre linjen

 PrintLastLog ja 

til

 PrintLastLog nr 

Begrens grensesnittet for å logge inn

Som standard vil ssh lytte på alle nettverksgrensesnitt. Hvis du vil tillate at en SSH-forbindelse blir akseptert fra bestemte IP-adresser, kan du endre linjen

 #ListenAddress :: 

til

 ListenAddress 192.168.1.20 

Deaktiver passordutifisering

Bruk av passordautentisering er en stor sikkerhetsrisiko hvis brukeren bruker et svakt passord. Det anbefales å bruke "ssh keys". En "ssh-nøkkel" kan inneholde over 600 tilfeldige tegn og være vanskelig å bryte.

For dette, endre linjen

 # PasswordAuthentication ja 

til

 PasswordAuthentication nr 

Deaktiver .rhosts-filer

.hostene-filene angir hvilke brukere som har tilgang til r-kommandoene (rsh, rcp, rlogin, etc.) på den lokale maskinen uten et passord. Som standard er en .rhosts-fil deaktivert; Hvis ikke, endrer du linjene som vist nedenfor.

 IgnorerRhosts ja RhostsAuthentication no RSAAuthentication ja 

Deaktiver vertsbasert autentisering

SSHs vertsbaserte godkjenning er sikrere enn .hosts-godkjenning. Det anbefales imidlertid ikke at vertene stoler på hverandre. Som standard er dette alternativet deaktivert.

Hvis ikke, endrer du linjen som vises nedenfor.

 HostbasedAuthentication no 

Angi en timeout for innloggingstid

"LoginGraceTime" angir hvor lenge etter en tilkoblingsforespørsel serveren venter før du kobler fra. Det anbefales å redusere det til 60 sekunder.

For dette, endre linjen

 Logg innGraceTime 120 

til

 Logg innGraceTime 60 

Angi maksimale oppstartstilkoblinger

Å sette opp et riktig maksimalt antall samtidige tilkoblinger til SSH-demonen kan være nyttig mot et brutalt kraftangrep.

For dette, endre linjen

 #MaxStartups 10:30:60 

til

 MaxStartups 2 

Deaktiver videresending

Port forwarding teknikken brukes av angripere til tunnel nettverk nettverkstilkoblinger gjennom en SSH-økt for å logge inn på systemer. Det anbefales å deaktivere dette alternativet.

For dette, endre linjen

 X11Forwarding ja 

til

 X11Videresending nr 

Logg inn mer informasjon

Som standard logger SSH alt. Hvis du vil logge mer informasjon som mislykkede påloggingsforsøk. Du kan endre verdien av dette til "VERBOSE".

For dette, endre linjen

 LogLevel INFO 

til

 LogLevel VERBOSE 

Deaktiver tomme passord

Det er nødvendig å nekte brukere med tomme passord på serveren din. Som standard er PermitEmptyPasswords deaktivert i Ubuntu.

Hvis ikke, endrer du linjen som vises nedenfor.

 PermitEmptyPasswords no 

Still inn tomgangstidsintervall

Som standard er disse alternativene ikke tilgjengelige i SSH-standardkonfigurasjonsfilen. Det anbefales å angi en riktig tomgangstidsavbrudd for å unngå en uovervåket ssh-sesjon.

For dette legger du til følgende linjer.

 ClientAliveInterval 300 ClientAliveCountMax 0 

Strenge modus

Dette vil forhindre bruk av usikre hjemmekatalog og nøkkelfiltillatelser. Som standard er dette alternativet aktivert.

Hvis ikke, endrer du følgende linje.

 StrictModes ja 

Lagre og avslutt nå filen / etc / ssh / sshd_config og start SSH-serveren på nytt.

 sudo service ssh restart 

Sikre SSH ved hjelp av TCP wrappers

En TCP wrapper gir vertsbasert tilgangskontroll til nettverkstjenester som brukes til å filtrere nettverksadgang til Internett. Rediger "/etc/hosts.allow" -filen din for å tillate SSH bare fra 192.168.1.2 og 172.16.23.12.

 sudo nano /etc/hosts.allow 

Legg til følgende linje:

 sshd: 192.168.1.2 172.16.23.12 

Sikre SSH ved hjelp av iptables

Som standard må en SSH-server bare godta tilkoblinger fra ditt LAN eller andre eksterne nettsteder. Det anbefales å tillate bare bestemte IP-adresser å få tilgang til SSH og blokkere tilgang til SSH til uautoriserte IP-adresser.

For å tillate SSH-tilkoblinger bare fra 192.168.1.2 kjør følgende kommando:

 sudo iptables -A INPUT -p tcp -m state --Status NEW --Source 192.168.1.2 --port 2200 -j ACCEPT 

Deaktiver SSH-tilkobling fra alle andre verter ved å kjøre følgende kommando:

 sudo iptables -A INPUT -p tcp --port 2200 -j DROP 

Lagre dine nye regler nå ved å bruke følgende kommando:

 sudo iptables-save> /etc/iptables/rules.v4 

Konklusjon

Ovennevnte instruksjoner er svært kraftige teknikker for å sikre SSH-serveren. Dette innlegget dekker all informasjon de fleste brukere trenger for en SSH-server. Hvis du har noen spørsmål, gjerne kommentere nedenfor.

Referanse: SSH ubuntu