SSH (Secure Socket Shell) er en kommandolinje grænseflade og protokol for sikkert at få adgang til en fjern Linux-server. Det giver en sikker og krypteret kommunikation over et netværk og muliggør udveksling af data via en sikker kanal mellem to servere. Det bruges i vid udstrækning af systemadministratorer til at styre internettet og andre typer servere eksternt. I denne artikel vil vi vise dig, hvordan du kan sikre din SSH-server.

Bemærk : Denne vejledning forudsætter, at SSH-serveren kører Ubuntu 14.04, og klientmaskinen er en Linux.

Kom godt i gang - installer SSH

For det første skal du opdatere dit system og installere nødvendige pakker til dit system.

For at opdatere systemet og installere SSH-serveren på servermaskinen, kør følgende kommando:

 sudo apt-get opdatering sudo apt-get install openssh-server 

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

 sudo apt-get install opensh-client 

Konfigurer SSH for adgangskode-mindre login

Der findes to forskellige metoder til logning på en SSH-server: den ene er adgangskodebaseret godkendelse, og den anden er nøglebaseret godkendelse. Adgangskodeautentificering er en meget grundlæggende metode, der er nem at bruge og revne. Brug af adgangskodeautentificering er meget usikker, især hvis din bruger bruger en svag adgangskode. På den anden side giver SSH nøgler en nem og sikker måde at logge på en fjernserver, og denne metode anbefales til alle brugere.

På din klient maskine generere SSH nøgler med følgende kommando:

 cd ~ / .ssh ssh-keygen -t rsa 

Tryk blot på Enter-tasten ved hver prompning. Dette producerer to filer: id_rsa.pub (offentlig nøgle) og id_rsa (privat nøgle).

Dette vil udgive noget, der ligner følgende:

Opret følgende mappe på din server (hvis den ikke findes):

 mkdir -p ~ / .ssh / 

Tilbage til din klientmaskine skal du kopiere filen "id_rsa.pub" til din server ved hjælp af følgende kommando:

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

Skift "yourport" til portnummeret, som din SSH-server bruger (standard er 22) og "serverip" til serverens IP-adresse.

På servermaskinen skal du ændre filnavn og opsætningsrettigheder.

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

For at teste, om den nøglebaserede godkendelsesmetode fungerer, skal du prøve at oprette forbindelse til din SSH-server fra klientmaskinen:

 ssh -P "yourport" brugernavn @ serverip 

Hvis du er i stand til at oprette forbindelse uden at indtaste et kodeord, fungerer den nøglebaserede godkendelsesmetode.

Sikker SSH-konfigurationsfil

Filen "/ etc / ssh / sshd_config" er den systembaserede konfigurationsfil til SSH, som giver dig mulighed for at indstille forskellige muligheder for at forbedre sikkerheden for en SSH-server. Standardkonfigurationen i config-filen er meget usikker, så du skal først redigere den og indstille passende indstillinger for at forbedre sikkerheden.

For at redigere filen "/ etc / ssh / sshd_config" skal du køre

 sudo nano / etc / ssh / sshd_config 

Skift SSH lytteport

Som standard lytter SSH på port 22. Attackere bruger portscannere til at se om en SSH-tjeneste kører eller ej. Det anbefales at ændre standardporten.

Hvis du vil ændre standardporten til 2200, skal du ændre:

 Port 22 

til

 Port 2200 

Brug kun protokol 2

Protokolens version 1 indeholder sikkerhedsproblemer. Protokol 2 er standardindgangen på Ubuntu.

Ændre linjen vist nedenfor:

 Protokol 2 

Begræns brugeradgang

Det er nødvendigt at tillade kun bestemte brugere at logge ind på SSH. Det kan forbedre din sikkerhed. Denne indstilling er som standard ikke tilgængelig i SSH-konfigurationsfilen.

For at tillade "user1" og "user2, " tilføj følgende linje:

 AllowUsers user1 user2 

For at nægte "baduser1" og "baduser2, " tilføj følgende linje:

 DenyUsers baduser1 baduser2 

Deaktiver root login

Det er ikke nødvendigt at logge ind som root via ssh over et netværk. Normale brugere kan også bruge su eller sudo til at få adgang til root-niveau. De fleste angribere vil forsøge at bruge root-bruger til at logge ind. Dette er en stor sikkerhedsrisiko, så det anbefales at nægte root login.

For at deaktivere root login skal du ændre linjen

 PermitRootLogin uden adgangskode 

til

 PermitRootLogin nr 

Skjul sidste login

Du kan skjule hvem logget ind sidst, når en bruger logger ind.

For dette ændrer du linjen

 PrintLastLog ja 

til

 PrintLastLog nr 

Begræns grænsefladen til at logge ind

Som standard vil ssh lytte på alle netværksgrænseflader. Hvis du vil tillade en SSH-forbindelse accepteres fra bestemte IP-adresser, kan du ændre linjen

 #ListenAddress :: 

til

 ListenAddress 192.168.1.20 

Deaktiver adgangskodeautentificering

Brug af adgangskodeautentificering er en stor sikkerhedsrisiko, hvis din bruger bruger en svag adgangskode. Det anbefales at bruge "ssh-nøgler". En "ssh-nøgle" kan indeholde over 600 tilfældige tegn og være svære at bryde.

For dette ændrer du linjen

 # PasswordAuthentication ja 

til

 PasswordAuthentication nr 

Deaktiver .rhosts filer

.hosts-filerne angiver, hvilke brugere der kan få adgang til r-kommandoerne (rsh, rcp, rlogin osv.) På den lokale maskine uden et kodeord. Som standard er en .rhosts-fil deaktiveret Hvis ikke, ændrer du linjerne som vist nedenfor.

 IgnorerRhosts ja RhostsAuthentication no RSAAuthentication ja 

Deaktiver værtsbaseret godkendelse

SSH's værtsbaserede godkendelse er mere sikker end .hosts-godkendelse. Det anbefales dog ikke, at værter stoler på hinanden. Denne indstilling er som standard deaktiveret.

Hvis ikke, skal du ændre linjen vist nedenfor.

 HostbasedAuthentication no 

Indstil en time-out for login grace

"LoginGraceTime" angiver, hvor lang tid efter en forbindelsesforespørgsel serveren venter, før du afbryder forbindelsen. Det anbefales at reducere det til 60 sekunder.

For dette ændrer du linjen

 LoginGraceTime 120 

til

 LoginGraceTime 60 

Indstil maksimale opstartsforbindelser

Opsætning af et ordentligt maksimalt antal samtidige forbindelser til SSH-dæmonen kan være nyttigt mod et brutalt kraftangreb.

For dette ændrer du linjen

 #MaxStartups 10:30:60 

til

 MaxStartups 2 

Deaktiver videresendelse

Port forwarding teknik bruges af angribere til tunnel netværk forbindelser via en SSH session for at logge ind på systemer. Det anbefales at deaktivere denne indstilling.

For dette ændrer du linjen

 X11Forwarding ja 

til

 X11Forwarding nr 

Log mere information

Som standard logger SSH alt. Hvis du vil logge mere information som mislykkede login forsøg. du kan ændre værdien af ​​denne til "VERBOSE".

For dette ændrer du linjen

 LogLevel INFO 

til

 LogLevel VERBOSE 

Deaktiver tomme adgangskoder

Det er nødvendigt at nægte brugere med tomme adgangskoder på din server. Som standard er PermitEmptyPasswords deaktiveret i Ubuntu.

Hvis ikke, skal du ændre linjen vist nedenfor.

 PermitEmptyPasswords nr 

Indstil idle timeout interval

Disse indstillinger er som standard ikke tilgængelige i SSH-standardkonfigurationsfilen. Det anbefales at indstille en korrekt idle timeout for at undgå en uovervåget ssh-session.

Til dette tilføj følgende linjer.

 ClientAliveInterval 300 ClientAliveCountMax 0 

Strenge tilstand

Dette forhindrer brugen af ​​usikre hjemmekatalog og nøglefiltilladelser. Denne indstilling er som standard aktiveret.

Hvis ikke, skal du ændre følgende linje.

 StrictModes ja 

Gem og afslut nu filen / etc / ssh / sshd_config og genstart SSH-serveren.

 sudo service ssh genstart 

Sikre SSH ved hjælp af TCP wrappers

En TCP wrapper giver værtsbaseret adgangskontrol til netværkstjenester, der bruges til at filtrere netværksadgang til internettet. Rediger din "/etc/hosts.allow" -fil for at tillade SSH kun fra 192.168.1.2 og 172.16.23.12.

 sudo nano /etc/hosts.allow 

Tilføj følgende linje:

 sshd: 192.168.1.2 172.16.23.12 

Sikre SSH ved hjælp af iptables

Som standard skal en SSH-server kun acceptere forbindelser fra dit LAN eller andre eksterne websteder. Det anbefales at tillade kun bestemte IP-adresser at få adgang til SSH og blokere adgang til SSH til uautoriserede IP-adresser.

For at tillade SSH-forbindelser kun fra 192.168.1.2 Kør følgende kommando:

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

Deaktiver SSH-forbindelse fra alle andre værter ved at køre følgende kommando:

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

Gem nu dine nye regler ved hjælp af følgende kommando:

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

Konklusion

Ovennævnte instruktioner er meget kraftfulde teknikker til sikring af din SSH-server. Dette indlæg dækker alle de oplysninger, som de fleste brugere skal bruge til en SSH-server. Hvis du har spørgsmål, er du velkommen til at kommentere nedenfor.

Reference: SSH ubuntu