“Secure shell” SSH je mrežni protokol za uspostavljanje sigurne veze između hostova, standardno preko porta 22 (koji je bolje promijeniti). SSH klijenti i SSH poslužitelji dostupni su za većinu operativnih sustava. Gotovo svaki drugi mrežni protokol radi unutar SSH-a, to jest, možete raditi na daljinu na drugom računalu, prenositi audio ili video stream preko šifriranog kanala itd. Osim,
Autentifikacija se odvija pomoću lozinke, ali programeri i administratori sustava tradicionalno koriste SSH ključeve. Problem je što se privatni ključ može ukrasti. Dodavanje zaporke teoretski štiti od krađe privatnog ključa, ali u praksi, prilikom prosljeđivanja i predmemoriranja ključeva,
Kako implementirati dvofaktornu autentifikaciju
Programeri iz Honeycomba nedavno su objavili
Upute pretpostavljaju da imate određeni osnovni host otvoren za Internet (bastion). Želite se spojiti na ovaj host s laptopa ili računala putem interneta, te pristupiti svim drugim uređajima koji se nalaze iza njega. 2FA osigurava da napadač ne može učiniti isto čak i ako dobije pristup vašem prijenosnom računalu, primjerice instaliranjem zlonamjernog softvera.
Prva opcija je OTP
OTP - jednokratne digitalne lozinke, koje će se u ovom slučaju zajedno s ključem koristiti za SSH autentifikaciju. Programeri pišu da ovo nije idealna opcija, jer bi napadač mogao podignuti lažni bastion, presresti vaš OTP i upotrijebiti ga. Ali bolje i to nego ništa.
U ovom slučaju, na strani poslužitelja, sljedeći redovi su upisani u Chef konfiguraciju:
metadata.rb
attributes/default.rb
(izattributes.rb
)files/sshd
recipes/default.rb
(kopiraj izrecipe.rb
)templates/default/users.oath.erb
Bilo koja OTP aplikacija instalirana je na strani klijenta: Google Authenticator, Authy, Duo, Lastpass, instaliran brew install oath-toolkit
ili apt install oathtool openssl
, tada se generira nasumični base16 niz (ključ). Pretvara se u format Base32 koji koriste mobilni autentifikatori i uvozi izravno u aplikaciju.
Kao rezultat toga, možete se povezati s Bastionom i vidjeti da sada zahtijeva ne samo zaporku, već i OTP kod za provjeru autentičnosti:
➜ ssh -A bastion
Enter passphrase for key '[snip]':
One-time password (OATH) for '[user]':
Welcome to Ubuntu 18.04.1 LTS...
Druga opcija je hardverska autentifikacija
U ovom slučaju korisnik ne mora svaki put unijeti OTP kod, jer drugi faktor postaje hardverski uređaj ili biometrija.
Ovdje je konfiguracija Chefa malo kompliciranija, a konfiguracija klijenta ovisi o OS-u. Ali nakon dovršetka svih koraka, klijenti na MacOS-u mogu potvrditi autentifikaciju u SSH-u pomoću zaporke i stavljanjem prsta na senzor (drugi faktor).
Vlasnici iOS-a i Androida potvrđuju prijavu
Na Linux/ChromeOS postoji opcija rada s YubiKey USB tokenima. Naravno, napadač može ukrasti vaš token, ali još uvijek ne zna šifru.
Izvor: www.habr.com