Dvofaktorska autentifikacija za SSH

«Sigurna ljuska» SSH je mrežni protokol za uspostavljanje zaštićene veze između hostova, obično na portu 22 (koji je bolje promijeniti). SSH klijenti i SSH poslužitelji dostupni su za većinu operativnih sustava. Unutar SSH-a radi praktično svaki drugi mrežni protokol, što znači da se može raditi na drugom računalu, prenositi zvučne ili video tokove preko šifriranog kanala itd. Osim toga, preko SOCKS proxyja na udaljenom hostu možete se povezati s drugim hostovima u ime tog udaljenog hosta.

Autentifikacija se događa putem lozinke, ali programeri i sustavni administratori tradicionalno koriste SSH ključeve. Problem je u tome što tajni ključ može biti ukraden. Dodavanje fraze provale teoretski štiti od krađe tajnog ključa, ali u praksi tijekom prosljeđivanja i keširanja ključeva oni mogu se i dalje koristiti bez potvrde. Dvofaktorska autentifikacija rješava ovaj problem.

Kako implementirati dvofaktorsku autentifikaciju

Programeri iz tvrtke Honeycomb nedavno su objavili detaljne upute, kako implementirati odgovarajuću infrastrukturu na klijentu i poslužitelju.

Upute pretpostavljaju da imate neki osnovni host otvoren na internetu (bastion). Želite se povezati s ovim hostom s prijenosnih računala ili računala putem interneta i dobiti pristup svim ostalim uređajima koji se nalaze iza njega. 2FA jamči da napadač ne može učiniti isto, čak i ako dobije pristup vašem prijenosnom računalu, na primjer, instalirajući zloćudni softver.

Prva opcija — OTP

OTP su jednokratne digitalne lozinke, koje će se u ovom slučaju koristiti za SSH autentifikaciju zajedno s ključem. Programeri navode da to nije idealna opcija, jer napadač može postaviti lažni bastion, presresti vaš OTP i koristiti ga. Ali to je bolje od ničega.

U ovom slučaju na poslužiteljskoj strani u konfiguraciji Chef upisuju se sljedeće linije:

  • metadata.rb
  • attributes/default.rb (iz attributes.rb)
  • files/sshd
  • recipes/default.rb (kopija iz recipe.rb)
  • templates/default/users.oath.erb

Na klijentskoj strani instalira se bilo koja OTP aplikacija: Google Authenticator, Authy, Duo, Lastpass, instalira se brew install oath-toolkit ili apt install oathtool openssl, a zatim se generira nasumični niz base16 (ključ). On se konvertira u format Base32, koji koriste mobilni autentifikatori, i izravno se uvozi u aplikaciju.

Na kraju se možete povezati s bastionom i uvjeriti se da sada zahtijeva ne samo lozinku, već i OTP kod za autentifikaciju:

➜ ssh -A bastion
Unesite lozinku za ključ '[snip]': 
Jednokratna lozinka (OATH) za '[user]': 
Dobrodošli u Ubuntu 18.04.1 LTS...

Druga opcija — hardverska autentifikacija

U ovom slučaju korisniku nije potrebno svaki put unositi OTP kod, budući da drugi faktor postaje hardverski uređaj ili biometrika.

Ovdje je konfiguracija Chefa malo složenija, a konfiguracija klijenata ovisi o operativnom sustavu. No, nakon svih ovih koraka, klijenti na MacOS-u mogu potvrditi autentifikaciju u SSH-u pomoću lozinke i stavljanjem prsta na senzor (drugi faktor).

Vlasnici iOS-a i Androida potvrđuju prijavu jednim pritiskom gumba na pametnom telefonu. Ovo je posebna tehnologija od Krypt.co, koja je čak sigurnija od OTP-a.

Na Linuxu/ChromeOS-u postoji opcija rada s USB tokenima YubiKey. Naravno, napadač može ukrasti vaš token, ali i dalje ne zna lozinku.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster