5 beste OpenSSH Server beste sikkerhetspraksis


SSH (Secure Shell) er en åpen kildekode-nettverksprotokoll som brukes til å koble til lokale eller eksterne Linux-servere for å overføre filer, lage eksterne sikkerhetskopier, ekstern kommandokjøring og andre nettverksrelaterte oppgaver via sftp-kommando mellom to servere som kobles til en sikker kanal over nettverket.

I denne artikkelen vil jeg vise deg noen enkle verktøy og triks som vil hjelpe deg å stramme ssh-serversikkerheten din. Her finner du nyttig informasjon om hvordan du sikrer og forhindrer ssh-servere fra brute force og ordbokangrep.

1. DenyHosts

DenyHosts er et åpen kildekode-loggbasert sikkerhetsskript for beskyttelse mot inntrenging for SSH-servere som ble skrevet i et python-programmeringsspråk som er ment å kjøres av Linux-systemadministratorer og brukere for å overvåke og analysere SSH-servertilgangslogger for mislykkede påloggingsforsøk. ordbokbaserte angrep og brute force-angrep.

Skriptet fungerer ved å forby IP-adresser etter et bestemt antall mislykkede påloggingsforsøk og forhindrer også at slike angrep får tilgang til serveren.

  • Holder styr på /var/log/secure for å finne alle vellykkede og mislykkede påloggingsforsøk og filtrerer dem.
  • Holder øye med alle mislykkede påloggingsforsøk fra brukeren og den fornærmende verten.
  • Fortsett å se på hver eksisterende og ikke-eksisterende bruker (f.eks. xyz) når et mislykket påloggingsforsøk.
  • Holder oversikt over hver fornærmende bruker, vert og mistenkelige påloggingsforsøk (hvis en rekke påloggingsfeil) forbyr den verts-IP-adressen ved å legge til en oppføring i filen /etc/hosts.deny.
  • Sender eventuelt et e-postvarsel om nylig blokkerte verter og mistenkelige pålogginger.
  • Opprettholder også alle gyldige og ugyldige mislykkede brukerpåloggingsforsøk i separate filer, slik at det gjør det enkelt å identifisere hvilken gyldig eller ugyldig bruker som er under angrep. Slik at vi kan slette den kontoen eller endre passordet, eller deaktivere skallet for den brukeren.

[Du vil kanskje også like: Hvordan blokkere SSH Brute Force-angrep ved å bruke DenyHosts ]

2. Fail2Ban

Fail2ban er et av de mest populære rammeverkene for åpen kildekode for inntrengingsdeteksjon/forebygging skrevet i et python-programmeringsspråk. Den fungerer ved å skanne loggfiler som /var/log/secure, /var/log/auth.log, /var/log/pwdfail etc. for for mange mislykkede påloggingsforsøk.

Fail2ban brukes til å oppdatere Netfilter/iptables eller TCP Wrappers hosts.deny-fil, for å avvise en angripers IP-adresse i en bestemt tidsperiode. Den har også muligheten til å fjerne forbudet mot en blokkert IP-adresse i en viss tidsperiode angitt av administratorer. Et visst minutt med oppheving av forbud er imidlertid mer enn nok til å stoppe slike ondsinnede angrep.

  • Multi-thread og svært konfigurerbar.
  • Støtte for rotasjon av loggfiler og kan håndtere flere tjenester som (sshd, vsftpd, apache, osv.).
  • Overvåker loggfiler og ser etter kjente og ukjente mønstre.
  • Bruker Netfilter/Iptables og TCP Wrapper (/etc/hosts.deny)-tabellen for å forby angripere IP.
  • Kjører skript når et gitt mønster har blitt identifisert for samme IP-adresse mer enn X ganger.

[Du vil kanskje også like: Hvordan bruke Fail2ban for å sikre Linux-serveren din ]

3. Deaktiver rotpålogging

Som standard er Linux-systemer forhåndskonfigurert for å tillate ssh-fjernpålogging for alle inkludert root-brukeren selv, noe som lar alle logge på systemet direkte og få root-tilgang. Til tross for at ssh-serveren tillater en sikrere måte å deaktivere eller aktivere root-pålogginger, er det alltid en god idé å deaktivere root-tilgang, og holde serverne litt sikrere.

Det er så mange mennesker som prøver å brute force root-kontoer via SSH-angrep ved ganske enkelt å oppgi forskjellige kontonavn og passord, etter hverandre. Hvis du er systemadministrator kan du sjekke ssh-serverlogger, hvor du finner en rekke mislykkede påloggingsforsøk. Hovedårsaken bak en rekke mislykkede påloggingsforsøk er å ha svake nok passord, og det er fornuftig for hackere/angripere å prøve.

Hvis du har sterke passord, er du sannsynligvis trygg, men det er bedre å deaktivere root-pålogging og ha en vanlig separat konto å logge på, og deretter bruke sudo eller su for å få root-tilgang når det er nødvendig.

[Du kan også like: Slik deaktiverer du SSH-rootpålogging og begrenser SSH-tilgang i Linux ]

4. Vis SSH-banner

Dette er en av de eldste funksjonene som er tilgjengelige fra begynnelsen av ssh-prosjektet, men jeg har knapt sett at den brukes av noen. Uansett, jeg føler at det er en viktig og veldig nyttig funksjon som jeg har brukt for alle Linux-serverne mine.

Dette er ikke for noe sikkerhetsformål, men den største fordelen med dette banneret er at det brukes til å vise ssh-advarselsmeldinger til FN-autorisert tilgang og velkomstmeldinger til autoriserte brukere før passordforespørselen og etter at brukeren har logget på.

[Du vil kanskje også like: Hvordan beskytte SSH-pålogginger med SSH- og MOTD-bannermeldinger ]

5. SSH passordløs pålogging

En SSH-passordløs pålogging med SSH keygen vil etablere et tillitsforhold mellom to Linux-servere som gjør filoverføring og synkronisering mye enklere.

Dette er veldig nyttig hvis du har å gjøre med ekstern automatisert sikkerhetskopiering, ekstern kjøring av skript, filoverføring, ekstern skriptbehandling osv. uten å angi passordet hver gang.

[ Du vil kanskje også like: Hvordan sette opp SSH passordløs pålogging i Linux [3 enkle trinn] ]

For ytterligere å sikre SSH-serveren din, les artikkelen vår om Hvordan sikre og herde OpenSSH-serveren