Sådan sikres en SSH-server i Ubuntu 14.04
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