5 geriausios praktikos pavyzdžiai, kaip apsaugoti ir apsaugoti SSH serverį


SSH („Secure Shell“) yra atviro kodo tinklo protokolas, naudojamas prisijungti prie vietinių ar nuotolinių „Linux“ serverių, norint perkelti failus, kurti nuotolines atsargines kopijas, nuotolines komandų vykdymo ir kitas su tinklu susijusias užduotis per „scp“ arba „sftp“ tarp dviejų serverių, kuris jungiasi saugiu kanalu per tinklas.

Šiame straipsnyje aš jums parodysiu keletą paprastų įrankių ir gudrybių, kurie padės sugriežtinti jūsų ssh serverio saugumą. Čia rasite naudingos informacijos, kaip apsaugoti ssh serverį nuo žiaurios jėgos ir žodynų atakų.

1. „DenyHosts“

„DenyHosts“ yra atvirojo kodo žurnalas pagrįstas įsibrovimų prevencijos saugos scenarijus SSH serveriams, parašytas python programavimo kalba, kurį ketino paleisti „Linux“ sistemos administratoriai ir vartotojai, norėdami stebėti ir analizuoti SSH serverio prieigos žurnalus dėl nepavykusių prisijungimo bandymų. jėgos išpuoliai. Scenarijus veikia uždraudus IP adresus po nustatyto nesėkmingų prisijungimo bandymų skaičiaus ir taip užkertant kelią tokiems išpuoliams patekti į serverį.

  1. Stebi/var/log/secure, kad surastų visus sėkmingus ir nepavykusius prisijungimo bandymus, ir juos filtruoja.
  2. Stebi visus nesėkmingus vartotojo ir įžeidžiančio kompiuterio bandymus prisijungti.
  3. Stebi kiekvieną esamą ir neegzistuojantį vartotoją (pvz., xyz), kai bandoma prisijungti nepavykus.
  4. Stebi kiekvieną įžeidžiantį vartotoją, pagrindinį kompiuterį ir įtartinus prisijungimo bandymus (jei prisijungimo klaidų skaičius) draudžia prieglobos IP adresą pridedant įrašą faile /etc/hosts.deny.
  5. Pasirinktinai siunčia el. pašto pranešimus apie naujai užblokuotus pagrindinius kompiuterius ir įtartinus prisijungimus.
  6. Taip pat saugomi visi galiojantys ir netinkami nepavykę prisijungimo bandymai atskiruose failuose, kad būtų lengviau nustatyti, kuris galiojantis ar netinkamas vartotojas yra užpultas. Taigi, mes galime ištrinti tą paskyrą, pakeisti slaptažodį arba išjungti to vartotojo apvalkalą.

Skaityti daugiau: Įdiekite „DenyHosts“, kad užblokuotumėte SSH serverio atakas sistemoje RHEL/CentOS/Fedora

2. Fail2Ban

Fail2ban yra viena populiariausių atvirojo kodo įsibrovimo aptikimo/prevencijos sistema, parašyta pitono programavimo kalba. Jis veikia nuskaitydamas žurnalo failus, tokius kaip/var/log/secure, /var/log/auth.log,/var/log/pwdfail ir kt., Per daug nepavykusių prisijungimo bandymų. „Fail2ban“ atnaujino „Netfilter/iptables“ arba „TCP Wrapper's hosts.deny“ failą, norėdamas atmesti užpuoliko IP adresą nustatytam laikui. Ji taip pat turi galimybę panaikinti užblokuotą IP adresą tam tikrą administratorių nustatytą laiką. Tačiau norint sustabdyti tokias piktybines atakas, pakanka tam tikros minutės „unban“.

  1. Daugialypis ir labai konfigūruojamas.
  2. Žurnalo failų kaitaliojimo palaikymas ir gali tvarkyti kelias paslaugas, tokias kaip (sshd, vsftpd, apache ir kt.).
  3. Stebi žurnalo failus ir ieško žinomų ir nežinomų šablonų.
  4. Naudoja „Netfilter/Iptables“ ir „TCP Wrapper“ (/etc/hosts.deny) lentelę, kad užblokuotų užpuolikų IP.
  5. Vykdo scenarijus, kai tam tikram IP adresui tam tikras šablonas buvo identifikuotas daugiau nei X kartus.

Skaityti daugiau: įdiekite „Fail2ban“, kad išvengtumėte SSH serverio atakų RHEL/CentOS/Fedora

3. Išjunkite šakninį prisijungimą

Pagal numatytuosius nustatymus „Linux“ sistemos yra sukonfigūruotos taip, kad visiems, įskaitant patį root vartotoją, būtų leidžiama prisijungti prie ssh nuotolinio prisijungimo, o tai leidžia visiems tiesiogiai prisijungti prie sistemos ir gauti root prieigą. Nepaisant to, kad ssh serveris leidžia saugiau išjungti arba įjungti šakninius prisijungimus, visada verta išjungti prieigą prie šaknų, išlaikant serverius šiek tiek saugesnius.

Yra tiek daug žmonių, kurie bando sugadinti šaknines paskyras per SSH atakas, tiesiog pateikdami skirtingus paskyrų pavadinimus ir slaptažodžius vienas po kito. Jei esate sistemos administratorius, galite patikrinti ssh serverio žurnalus, kur rasite nesėkmingų bandymų prisijungti skaičių. Pagrindinė nesėkmingų bandymų prisijungti priežastis yra pakankamai silpnų slaptažodžių turėjimas, todėl prasminga bandyti įsilaužėliams/užpuolikams.

Jei turite tvirtus slaptažodžius, tikriausiai esate saugūs, tačiau geriau išjungti root prisijungimą ir turėti įprastą atskirą paskyrą, kad galėtumėte prisijungti, tada naudokite sudo arba su, kad gautumėte root prieigą, kai to reikia.

Skaityti daugiau: Kaip išjungti SSH šaknų prisijungimą ir „Limite SSH“ prieigą

4. Rodyti SSH reklamjuostę

Tai yra viena seniausių funkcijų, prieinamų nuo ssh projekto pradžios, tačiau beveik nemačiau, kad ji būtų naudojama kas nors. Bet kokiu atveju jaučiu svarbią ir labai naudingą funkciją, kurią naudojau visuose savo „Linux“ serveriuose.

Tai nėra skirta jokiems saugumo tikslams, tačiau didžiausias šios reklamjuostės pranašumas yra tas, kad ji naudojama rodyti ssh įspėjimo pranešimus JT įgaliotai prieigai ir sveikinimo pranešimus įgaliotiems vartotojams prieš slaptažodžio raginimą ir vartotojui prisijungus.

Skaityti daugiau: Kaip rodyti SSH ir MOTD reklamjuostės pranešimus

5. SSH prisijungimas be slaptažodžio

Prisijungus be SSH slaptažodžio, naudojant SSH raktą, bus sukurti patikimi santykiai tarp dviejų „Linux“ serverių, o tai žymiai palengvins failų perdavimą ir sinchronizavimą. Tai labai naudinga, jei turite reikalų su nuotolinėmis automatinėmis atsarginėmis kopijomis, nuotoliniu scenarijų vykdymu, failų perdavimu, nuotoliniu scenarijų valdymu ir pan., Kiekvieną kartą neįvedę slaptažodžio.

Skaityti daugiau: Kaip nustatyti prisijungimą be SSH