Dviejų veiksnių SSH autentifikavimas

„Saugus apvalkalas“ SSH yra tinklo protokolas, skirtas saugiam ryšiui tarp kompiuterių užmegzti, paprastai per 22 prievadą (kurį geriau pakeisti). SSH klientai ir SSH serveriai yra prieinami daugumai operacinių sistemų. Beveik bet kuris kitas tinklo protokolas veikia SSH viduje, tai yra, galite dirbti nuotoliniu būdu kitame kompiuteryje, perduoti garso ar vaizdo srautą šifruotu kanalu ir pan. Be to, per SOCKS tarpinį serverį nuotoliniame pagrindiniame kompiuteryje galite prisijungti prie kitų kompiuterių šio nuotolinio kompiuterio vardu.

Autentifikavimas atliekamas naudojant slaptažodį, tačiau kūrėjai ir sistemos administratoriai tradiciškai naudoja SSH raktus. Problema ta, kad privatus raktas gali būti pavogtas. Slaptafrazės pridėjimas teoriškai apsaugo nuo privataus rakto vagystės, tačiau praktiškai persiunčiant ir talpinant raktus jie vis dar gali būti naudojamas be patvirtinimo. Dviejų veiksnių autentifikavimas išsprendžia šią problemą.

Kaip įdiegti dviejų veiksnių autentifikavimą

„Honeycomb“ kūrėjai neseniai paskelbė išsamias instrukcijas, kaip įdiegti tinkamą infrastruktūrą kliente ir serveryje.

Instrukcijose daroma prielaida, kad turite tam tikrą pagrindinį pagrindinį kompiuterį, atvirą internetui (bastioną). Norite prisijungti prie šio pagrindinio kompiuterio iš nešiojamųjų kompiuterių ar kompiuterių per internetą ir pasiekti visus kitus įrenginius, esančius už jo. 2FA užtikrina, kad užpuolikas negalėtų padaryti to paties, net jei jis gauna prieigą prie jūsų nešiojamojo kompiuterio, pavyzdžiui, įdiegdamas kenkėjišką programą.

Pirmasis variantas yra OTP

OTP – vienkartiniai skaitmeniniai slaptažodžiai, kurie šiuo atveju bus naudojami SSH autentifikavimui kartu su raktu. Kūrėjai rašo, kad tai nėra idealus variantas, nes užpuolikas gali iškelti netikrą bastioną, perimti jūsų OTP ir juo pasinaudoti. Bet tai geriau nei nieko.

Tokiu atveju serverio pusėje į Chef konfigūraciją įrašomos šios eilutės:

  • metadata.rb
  • attributes/default.rb (iš attributes.rb)
  • files/sshd
  • recipes/default.rb (kopijuoti iš recipe.rb)
  • templates/default/users.oath.erb

Bet kuri OTP programa yra įdiegta kliento pusėje: „Google Authenticator“, „Authy“, „Duo“, „Lastpass“, įdiegta brew install oath-toolkit arba apt install oathtool openssl, tada sugeneruojama atsitiktinė base16 eilutė (raktas). Jis konvertuojamas į „Base32“ formatą, kurį naudoja mobilieji autentifikatoriai, ir importuojamas tiesiai į programą.

Dėl to galite prisijungti prie „Bastion“ ir pamatyti, kad dabar reikia ne tik slaptafrazės, bet ir OTP kodo autentifikavimui:

➜ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

Antrasis variantas yra aparatinės įrangos autentifikavimas

Tokiu atveju vartotojas neprivalo kiekvieną kartą įvesti OTP kodo, nes antruoju veiksniu tampa aparatinė įranga arba biometriniai duomenys.

Čia Chef konfigūracija yra šiek tiek sudėtingesnė, o kliento konfigūracija priklauso nuo OS. Tačiau atlikę visus veiksmus, MacOS klientai gali patvirtinti autentifikavimą SSH naudodami slaptafrazę ir padėdami pirštą ant jutiklio (antrasis veiksnys).

iOS ir Android savininkai patvirtina prisijungimą paspausdami vieną išmaniojo telefono mygtuką. Tai speciali technologija iš Krypt.co, kuri yra dar saugesnė nei OTP.

„Linux“ / „ChromeOS“ sistemoje yra galimybė dirbti su „YubiKey“ USB prieigos raktais. Žinoma, užpuolikas gali pavogti jūsų žetoną, tačiau jis vis tiek nežino slaptafrazės.

Šaltinis: www.habr.com

Добавить комментарий