Slik sikrer du en SSH-server i Ubuntu 14.04
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