5 najboljših najboljših varnostnih praks strežnika OpenSSH


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 drugih opravil, povezanih z omrežjem, prek ukaza sftp med dvema strežnikoma, ki se povezujeta na varen kanal prek omrežja.

V tem članku vam bom pokazal nekaj preprostih orodij in trikov, ki vam bodo pomagali poostriti varnost strežnika ssh. Tukaj boste našli nekaj koristnih informacij o tem, kako zavarovati in preprečiti strežnike ssh pred brutalno silo in slovarskimi napadi.

1. DenyHosts

DenyHosts je odprtokodni varnostni skript za preprečevanje vdorov, ki temelji na dnevniku za strežnike SSH, ki je bil napisan v programskem jeziku python, ki naj bi ga izvajali sistemski skrbniki in uporabniki Linux za spremljanje in analiziranje dnevnikov dostopa do strežnika SSH za neuspešne poskuse prijave. napadi na podlagi slovarja in napadi s surovo silo.

Skript deluje tako, da prepove naslove IP po določenem številu neuspešnih poskusov prijave in tudi prepreči, da bi takšni napadi pridobili dostop do strežnika.

  • Spremlja /var/log/secure za iskanje vseh uspešnih in neuspešnih poskusov prijave in jih filtrira.
  • Spremlja vse neuspele poskuse prijave s strani uporabnika in gostitelja, ki je kršil.
  • Še naprej spremlja vsakega obstoječega in neobstoječega uporabnika (npr. xyz), ko se poskusi neuspešne prijave.
  • Spremlja vsakega kršitelja, gostitelja in sumljive poskuse prijave (če je prijava več neuspešnih) prepove ta naslov IP gostitelja z dodajanjem vnosa v datoteko /etc/hosts.deny.
  • Po želji pošlje e-poštno obvestilo o novo blokiranih gostiteljih in sumljivih prijavah.
  • Prav tako ohranja vse veljavne in neveljavne neuspešne poskuse prijave uporabnikov v ločenih datotekah, tako da je lažje prepoznati, kateri veljavni ali neveljavni uporabnik je napaden. Torej, da lahko izbrišemo ta račun ali spremenimo geslo ali onemogočimo lupino za tega uporabnika.

[ Morda vam bo všeč tudi: Kako blokirati napade s surovo silo SSH z uporabo DenyHosts ]

2. Fail2Ban

Fail2ban je eden izmed najbolj priljubljenih odprtokodnih okvirov za odkrivanje/preprečevanje vdorov, napisanih v programskem jeziku python. Deluje tako, da skenira datoteke dnevnika, kot so /var/log/secure, /var/log/auth.log, /var/log/pwdfail itd., za preveč neuspešnih poskusov prijave.

Fail2ban se uporablja za posodobitev datoteke hosts.deny Netfilter/iptables ali TCP Wrapperja, da zavrne IP naslov napadalca za določen čas. Ima tudi možnost, da blokira blokiran naslov IP za določeno časovno obdobje, ki ga določijo skrbniki. Vendar pa je določena minuta prepovedi več kot dovolj, da preprečimo takšne zlonamerne napade.

  • Več-nitna in zelo nastavljiva.
  • Podpora za rotacijo dnevniških datotek in lahko upravlja več storitev, kot so (sshd, vsftpd, apache itd.).
  • Spremlja datoteke dnevnika in išče znane in neznane vzorce.
  • Uporablja tabelo Netfilter/Iptables in TCP Wrapper (/etc/hosts.deny) za prepoved IP napadalcev.
  • Zažene skripte, ko je bil dani vzorec identificiran za isti naslov IP več kot X-krat.

[ Morda vam bo všeč tudi: Kako uporabiti Fail2ban za zaščito vašega strežnika Linux ]

3. Onemogočite root prijavo

Sistemi Linux so privzeto vnaprej konfigurirani tako, da omogočajo oddaljene prijave ssh za vse, vključno s samim uporabnikom root, kar vsem omogoča neposredno prijavo v sistem in pridobitev root dostopa. Kljub dejstvu, da strežnik ssh omogoča bolj varen način za onemogočanje ali omogočanje korenskih prijav, je vedno dobro onemogočiti korenski dostop in tako ohraniti strežnike nekoliko bolj varne.

Toliko je ljudi, ki poskušajo nasilno uporabiti korenske račune prek napadov SSH, tako da preprosto navedejo različna imena računov in gesla, enega za drugim. Če ste skrbnik sistema, lahko preverite dnevnike strežnika ssh, kjer boste našli številne neuspešne poskuse prijave. Glavni razlog za številne neuspešne poskuse prijave je dovolj šibka gesla in to je smiselno, da poskusijo hekerji/napadalci.

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

[ Morda vam bo všeč tudi: Kako onemogočiti SSH Root prijavo in omejiti SSH dostop v Linuxu ]

4. Prikaži pasico SSH

To je ena najstarejših funkcij, ki so na voljo od začetka projekta ssh, vendar skoraj nisem videl, da bi jo kdo uporabljal. Kakorkoli že, menim, da je to pomembna in zelo uporabna funkcija, ki sem jo uporabil za vse svoje strežnike Linux.

To ni za noben varnostni namen, vendar je največja prednost te pasice ta, da se uporablja za prikaz opozorilnih sporočil ssh za pooblaščen dostop ZN in pozdravnih sporočil pooblaščenim uporabnikom pred pozivom za geslo in potem, ko se uporabnik prijavi.

[ Morda vam bo všeč tudi: Kako zaščititi prijave SSH s sporočili pasic SSH & MOTD ]

5. Prijava brez gesla SSH

Prijava brez gesla s SSH s ključem SSH bo vzpostavila odnos zaupanja med dvema strežnikoma Linux, kar olajša prenos in sinhronizacijo datotek.

To je zelo uporabno, če imate opravka z oddaljenim avtomatskim varnostnim kopiranjem, izvajanjem skriptov na daljavo, prenosom datotek, oddaljenim upravljanjem skriptov itd., ne da bi vsakič vnesli geslo.

[ Morda vam bo všeč tudi: Kako nastaviti SSH prijavo brez gesla v Linuxu [3 preprosti koraki] ]

Če želite dodatno zaščititi svoj strežnik SSH, preberite naš članek o zaščiti in utrditvi strežnika OpenSSH