Prisijungimas be slaptažodžio

Intro

Paradoksas, tačiau prisijungimas be slaptažodžio gali, ir dažniausiai yra, saugesnis nei su juo. Kodėl taip yra? Nes tokiu atveju jungiamės su raktu kurį turi tik kompiuterio šeimininkas.

Taigi, jeigu paprastuoju atveju užtenka paleisti Bruteforce ataką žinant serverio adresą, tai esant raktui mums pirma reikia žinoti savininko kompiuterio adresą ir jį nulaužti. Teoriškai tai atlikti gali būti paprasčiau, tačiau zombiams šmirinėjantiems po internetą ir bandantiems nulaužti serverius - neįmanoma užduotis.

Rakto generavimas

(Žemiau pateikti žingsniai skirti Unix sistemoms, pvz. Linux arba Mac OSX, Windowsų vartotojams vertėtų įsidiegti CygWin, kažką panašaus, arba ieškoti žingsnių internete)

Mano mėgiama pamoka tam atlikti: Github SSH key generation

Arba suspaprastintai:

ssh-keygen -t rsa (Sutinkam su standartinėm reikšmėm, nededam jokio passphrase)

eval "$(ssh-agent -s)" (Šis žingsnis paleidžia ssh agentą) ssh-add ~/.ssh/id_rsa (Užregistruojam savo raktą pas ssh agentą)

Serverio paruošimas

  1. Sukuriame naują vartotoją (Saugumo sumetimais nepatartina naudoti root), jeigu tokį turite - galite ignoruoti. Pvz. Centos sistemoje: useradd dev
  2. Užtikriname, jog egzistuoja direktorija ~/.ssh. Tai galite padaryti ls ~/.ssh. Jeigu neegzistuoja - mkdir ~/.ssh ir duokite jai tinkamas privilegijas chmod 700 ~/.ssh (Be tinkamų privilegijų neveiks!)
  3. Užtikriname, jog egzistuoja authorized_keys failas. Jeigu ne - touch ~/.ssh/authorized_keys bei duodame tinkamas privilegijas chmod 600 ~/.ssh/authorized_keys (Be tinkamų privilegijų neveiks!)
  4. Įkeliame savo raktą: scp ~/.ssh/id_rsa.pub dev@serverio.adresas.com:~/.ssh/
  5. Prisijungiame į serverį ir pridedame raktą prie sąrašo: cd ~/.ssh cat id_rsa.pub >> authorized_keys

Nuo šiol, prie serverio galėsite prisijungti be slaptažodžio.

Komentarai dėl passphrase

Passphrase yra skirtas užpildyti saugumo spragą, kurią sukelia faktas, jog iš savo kompiuterio galite pasijungti be slaptažodžio. Gal būt nulaužti kompiuterį ir nebūtų tokia lengva užduotis, tačiau fiziškai priėjęs kitas žmogus galėtų tiesiog pasijungti į serverį.

Prisijungimas be slaptažodžio dažniausiai naudojamas automatizavimo įrankiams. Slaptažodžio įvedimas gali suardyti procesą, arba įvelti daugiau saugumo spragų (slaptažodį galiausiai vis tiek kažkur laikysite, nelaimės atveju netgi paviešinsite savo slaptažodį). "Nykščio taisyklė" būtų nedėti passphrase automatizavimo atvejais, tačiau vartotojui prie kurio jis prisijungia, duoti kuo mažiau teisių (Akivaizdžiai tai turi būti ne root). Tokiu atveju net jeigu ir pavyktų įsilaužti - žalos padarymui neužtektų privilegijų.

Atveju kai naudosite šį prisijungimą tik savo reikmėms - dėti passphrase rekomenduotina.

pradmenys apsauga unix

Šarūnas Navickas

http://griaustinis.lt

Ilgalaikis programavimo entuziastas. Šiuo metu Python/Scala developeris Adform Kaunas. Domiuosi įvairiais apsimokančiais, metaeuristiniais algoritmais, bei apskritai viskuo, kas leidžia kompiuterį paversti bent šiek tiek protingu

blog comments powered by Disqus