5 najboljših postopkov za zaščito in zaščito SSH strežnika


SSH (Secure Shell) je odprtokodni omrežni protokol, ki se uporablja za povezovanje lokalnih ali oddaljenih strežnikov Linux za prenos datotek, izdelavo oddaljenih varnostnih kopij, oddaljeno izvajanje ukazov in druge naloge, povezane z omrežjem, prek scp ali sftp med dvema strežnikoma, ki se prek varnega kanala poveže prek omrežje.

V tem članku vam bom predstavil nekaj preprostih orodij in trikov, s katerimi boste lahko poostrili varnost strežnika ssh. Tu boste našli nekaj koristnih informacij o tem, kako zaščititi in preprečiti ssh strežnik pred grobo silo in slovarskimi napadi.

1. DenyHosts

DenyHosts je odprtokodni varnostni skript za preprečevanje vdorov, ki temelji na dnevniku, za strežnike SSH je bil napisan v programskem jeziku python, ki naj bi ga izvajali sistemski skrbniki in uporabniki sistema Linux za spremljanje in analizo dnevnikov dostopa do strežnika SSH zaradi neuspelih poskusov prijave in napadov na podlagi slovarja. napadi sile. Skript deluje tako, da prepove naslove IP po določenem številu neuspešnih poskusov prijave in prepreči dostop takšnih napadov do strežnika.

  1. Spremlja/var/log/secure, da najde vse uspešne in neuspešne poskuse prijave in jih filtrira.
  2. Spremlja vse neuspešne poskuse prijave uporabnika in gostitelja, ki je kršil.
  3. Nadzoruje vsakega obstoječega in neobstoječega uporabnika (npr. xyz) ob neuspešnih poskusih prijave.
  4. Spremlja vsakršnega uporabnika, gostitelja in sumljive poskuse prijave (če število napak pri prijavi) prepove ta naslov IP z dodajanjem vnosa v datoteko /etc/hosts.deny.
  5. Neobvezno pošlje e-poštna obvestila o novo blokiranih gostiteljih in sumljivih prijavah.
  6. V ločenih datotekah vzdržuje tudi vse veljavne in neveljavne neuspele poskuse prijave uporabnika, tako da je lažje prepoznati, kateri veljaven ali neveljaven uporabnik je napaden. Torej, da lahko ta račun izbrišemo ali spremenimo geslo ali onemogočimo lupino za tega uporabnika.

Preberite več: Namestite DenyHosts za blokiranje napadov na strežnik SSH v RHEL/CentOS/Fedora

2. Fail2Ban

Fail2ban je eden izmed najbolj priljubljenih odprtokodnih okvirov za odkrivanje/preprečevanje vdorov, napisan v programskem jeziku python. Deluje tako, da skenira dnevniške datoteke, kot so/var/log/secure, /var/log/auth.log,/var/log/pwdfail itd., Za preveč neuspelih poskusov prijave. Fail2ban se uporablja za posodobitev Netfilter/iptables ali datoteke hosts.deny TCP Wrapperja, da določen čas zavrne IP-naslov napadalca. Prav tako ima možnost odpovedati blokirani naslov IP za določeno časovno obdobje, ki ga določijo skrbniki. Vendar pa je nekaj minut razveljavitve dovolj za zaustavitev takšnih zlonamernih napadov.

  1. Večnitni in zelo nastavljiv.
  2. Podpira vrtenje dnevniških datotek in omogoča obdelavo več storitev, kot so (sshd, vsftpd, apache itd.).
  3. Nadzira dnevniške datoteke in išče znane in neznane vzorce.
  4. Uporablja tabelo Netfilter/Iptables in TCP Wrapper (/etc/hosts.deny), da prepove IP napadalcem.
  5. Zažene skripte, ko je bil določen vzorec več kot X-krat identificiran za isti naslov IP.

Preberite več: Namestite Fail2ban za preprečevanje napadov na strežnik SSH v RHEL/CentOS/Fedora

3. Onemogočite root prijavo

Sistemi Linux so privzeto konfigurirani tako, da omogočajo oddaljene prijave ssh za vse, vključno s korenskim uporabnikom, kar omogoča vsem, da se neposredno prijavijo v sistem in pridobijo korenski dostop. Kljub temu, da strežnik ssh omogoča varnejši način onemogočenja ali omogočanja korenskih prijav, je vedno dobro onemogočiti korenski dostop, s čimer bodo strežniki nekoliko varnejši.

Toliko ljudi poskuša vsiliti korenske račune prek napadov SSH s preprostim dostavljanjem različnih imen računov in gesel, enega za drugim. Če ste skrbnik sistema, lahko preverite dnevnike strežnika ssh, kjer boste našli število neuspelih poskusov prijave. Glavni razlog za število neuspešnih poskusov prijave je dovolj šibka gesla, kar je smiselno za poskus hekerjev/napadalcev.

Če imate močna gesla, ste verjetno na varnem, vendar je bolje, da onemogočite root prijavo in imate reden ločen račun za prijavo, nato pa uporabite sudo ali su, da pridobite korenski dostop, kadar koli je to potrebno.

Preberite več: Kako onemogočiti root root prijavo in omejiti SSH dostop

4. Prikaži SSH pasico

To je ena najstarejših funkcij, ki je na voljo od začetka ssh projekta, vendar skorajda nisem videl, da bi jo kdo uporabljal. Vseeno se mi zdi njegova pomembna in zelo koristna funkcija, ki sem jo uporabil za vse svoje Linux strežnike.

To ni za noben varnostni namen, vendar je največja prednost te pasice ta, da se uporablja za prikaz opozorilnih sporočil ssh pooblaščenemu dostopu in sporočil dobrodošlice pooblaščenim uporabnikom pred pozivom za geslo in po prijavi uporabnika.

Preberite več: Kako prikazati pasica SSH in MOTD

5. SSH prijava brez gesla

Prijava SSH brez gesla s ključem SSH bo vzpostavila odnos zaupanja med dvema Linux strežnikoma, kar olajša prenos in sinhronizacijo datotek. To je zelo koristno, če imate opravka z oddaljenimi avtomatiziranimi varnostnimi kopijami, izvrševanjem skriptov na daljavo, prenosom datotek, oddaljenim upravljanjem skriptov itd.

Preberite več: Kako nastaviti SSH prijavo brez gesla