5 bedste fremgangsmåder til sikring og beskyttelse af SSH-server


SSH (Secure Shell) er en open source-netværksprotokol, der bruges til at forbinde lokale eller eksterne Linux-servere til at overføre filer, lave sikkerhedskopier, fjernkommandokørsel og andre netværksrelaterede opgaver via scp eller sftp mellem to servere, der forbinder på sikker kanal via netværket.

I denne artikel vil jeg vise dig nogle enkle værktøjer og tricks, der hjælper dig med at stramme din ssh-server sikkerhed. Her finder du nogle nyttige oplysninger om, hvordan du beskytter og forhindrer ssh-serveren fra brutale kraft og ordbogangreb.

1. DenyHosts

DenyHosts er et open source-log-baseret indtrængningsforebyggelsessikkerhedsskript til SSH-servere blev skrevet på et python-programmeringssprog, der var beregnet til at køre af Linux-systemadministratorer og brugere til at overvåge og analysere SSH-serveradgangslogfiler for mislykkede loginforsøg kender ordbogbaserede angreb og brutale kraftangreb. Scriptet fungerer ved at forbyde IP-adresser efter det indstillede antal mislykkede loginforsøg og forhindrer også sådanne angreb i at få adgang til serveren.

  1. Holder styr på/var/log/secure for at finde alle vellykkede og mislykkede loginforsøg og filtrere dem.
  2. Hold øje med alle mislykkede loginforsøg fra bruger og krænkende vært.
  3. Hold øje med hver eksisterende og ikke-eksisterende bruger (f.eks. xyz), når et mislykket login forsøger.
  4. Holder styr på hver krænkende bruger-, vært- og mistænkelig loginforsøg (hvis antallet af loginfejl) forbyder den værts IP-adresse ved at tilføje en post i /etc/hosts.deny-filen.
  5. Kan eventuelt sende en e-mail-underretning om nyligt blokerede værter og mistænkelige logins.
  6. Vedligeholder også alle gyldige og ugyldige mislykkede brugerloginforsøg i separate filer, så det er let at identificere, hvilken gyldig eller ugyldig bruger der er under angreb. Så vi kan slette den konto eller ændre adgangskoden eller deaktivere shell for den bruger.

Læs mere: Installer DenyHosts for at blokere SSH-serverangreb i RHEL/CentOS/Fedora

2. Fejl2Ban

Fail2ban er en af de mest populære rammer for open source indtrængen detektion/forebyggelse skrevet i python programmeringssprog. Det fungerer ved at scanne logfiler som/var/log/secure, /var/log/auth.log,/var/log/pwdfail osv. For for mange mislykkede loginforsøg. Fail2ban blev brugt til at opdatere Netfilter/iptables eller TCP Wrapper's hosts.deny-fil for at afvise en angribers IP-adresse i et bestemt tidsrum. Det har også en mulighed for at fjerne udelukkelse af en blokeret IP-adresse i en bestemt periode, der er indstillet af administratorer. Imidlertid er nogle minutter med unban mere nok til at stoppe sådanne ondsindede angreb.

  1. Multi-threaded og meget konfigurerbar.
  2. Understøtter rotation af logfiler og kan håndtere flere tjenester som (sshd, vsftpd, apache osv.).
  3. Overvåger logfiler og ser efter kendte og ukendte mønstre.
  4. Bruger Netfilter/Iptables og TCP Wrapper (/etc/hosts.deny) tabel til at forbyde angribers IP.
  5. Kører scripts, når et givet mønster er identificeret for den samme IP-adresse mere end X gange.

Læs mere: Installer Fail2ban for at forhindre SSH-serverangreb i RHEL/CentOS/Fedora

3. Deaktiver rodindlogning

Som standard er Linux-systemer konfigureret pr. Konfiguration til at tillade ssh-fjernlogins til alle inklusive root-brugerne selv, hvilket gør det muligt for alle direkte at logge ind på systemet og få rodadgang. På trods af at ssh-server muliggør en mere sikker måde at deaktivere eller aktivere rodlogins på, er det altid en god ide at deaktivere rodadgang, hvilket holder serverne lidt mere sikre.

Der er så mange mennesker, der prøver at råbe root-konti via SSH-angreb ved blot at angive forskellige kontonavne og adgangskoder, den ene efter den anden. Hvis du er systemadministrator, kan du kontrollere ssh-serverlogfiler, hvor du finder antallet af mislykkede loginforsøg. Hovedårsagen til antallet af mislykkede loginforsøg er at have svage nok adgangskoder, og det giver mening for hackere/angribere at prøve.

Hvis du har stærke adgangskoder, er du sandsynligvis sikker, men det er bedre at deaktivere root-login og have regelmæssig separat konto at logge ind på og derefter bruge sudo eller su til at få root-adgang, når det er nødvendigt.

Læs mere: Sådan deaktiveres SSH-rodindlogning og begrænser SSH-adgang

4. Vis SSH-banner

Dette er en af de ældste funktioner, der er tilgængelige fra starten af ssh-projektet, men jeg har næppe set det bruges af nogen. Alligevel føler jeg dens vigtige og meget nyttige funktion, som jeg har brugt til alle mine Linux-servere.

Dette er ikke til noget sikkerhedsformål, men den største fordel ved dette banner er, at det bruges til at vise ssh-advarselsmeddelelser til FN-autoriseret adgang og velkomstmeddelelser til autoriserede brugere før adgangskodeprompten og efter at brugeren er logget ind.

Læs mere: Sådan vises SSH & MOTD-bannermeddelelser

5. SSH adgangskodeløst login

Et SSH-adgangskodeløst login med SSH keygen vil skabe et tillidsforhold mellem to Linux-servere, hvilket gør filoverførsel og synkronisering meget lettere. Dette er meget nyttigt, hvis du har at gøre med fjernautomatiske sikkerhedskopier, fjern scripting-udførelse, filoverførsel, fjernstyring af script osv. Uden at indtaste passwrod hver gang.

Læs mere: Sådan indstilles SSH adgangskodeløst login