La Dvofaktorska autentifikacija (2FA) nije nešto jedinstveno što se može koristiti na društvenim mrežama ili na bilo kojoj drugoj web lokaciji. Pa, ova sigurnosna mjera se također može primijeniti u okviru operativnog sistema.
Zbog toga Danas ćemo vidjeti kako implementirati dvofaktorsku autentifikaciju u SSH u Ubuntuu i derivati koji koriste dobro poznati Google Authenticator koji će znatno povećati sigurnost vašeg OpenSSH servera.
Obično trebate unijeti lozinku ili upotrijebiti SSH ključ za daljinsku prijavu u sistem.
Dvofaktorska autentifikacija (2FA) zahtijeva unos dvaju podataka za prijavu.
Stoga ćete također morati unijeti vremensku jednokratnu lozinku da biste se prijavili na svoj SSH server.
Ova jednokratna lozinka izračunava se pomoću TOTP algoritma, koji je IETF standard.
Instalacija i konfiguracija Google Autentifikatora u Ubuntuu i izvedenicama
Prvi korak koji ćemo poduzeti je instalacija Google Authenticator-a u naš sistem, tako da ćemo otvoriti terminal u sistemu (to se može učiniti kombinacijom tastera „Ctrl + Alt + T) i u njega ćemo otkucati sljedeću naredbu:
sudo apt install libpam-google-authenticator
Instalacija završena pokrenuti ćemo novoinstaliranu aplikaciju sa sljedećom naredbom:
google-authenticator
Kada izvršavamo ovu naredbu, ono što ćemo učiniti je dodijeliti tajni ključ i to će nas pitati želimo li koristiti žetone na osnovu vremena, što ćemo odgovoriti potvrdno.
Nakon ovog, vidjet će QR kod koji mogu skenirati pomoću aplikacije TOTP na svom telefonu.
ovdje Preporučujemo upotrebu aplikacije Google Authenticator na svom mobilnom telefonu.tako da aplikaciju možete instalirati putem Google Playa ili Apple App Storea na svoj mobilni telefon.
Već imate aplikaciju na telefonu, morate skenirati QR kôd s njom. Imajte na umu da morate povećati prozor terminala da biste skenirali cijeli QR kod.
QR kôd predstavlja tajni ključ, koji je poznat samo njegovom SSH serveru i aplikaciji Google Authenticator.
Nakon što se QR kod skenira, na svom telefonu mogu vidjeti jedinstveni šestocifreni token. Po defaultu ovaj token traje 30 sekundi i mora se unijeti za prijavu na Ubuntu putem SSH-a.
Na terminalu ćete također moći vidjeti tajni kôd, kao i verifikacijski kôd i kôd za hitni start.
Iz čega preporučujemo da ove podatke čuvate na sigurnom mjestu za kasniju upotrebu. Na ostala pitanja koja ćemo postaviti, jednostavno ćemo odgovoriti da ako utipkavanjem slova y.
Postavljanje SSH-a za upotrebu s Google Autentifikatorom
Već računajući na gore navedeno, Sada ćemo napraviti potrebnu konfiguraciju kako bismo mogli koristiti SSH vezu u našem sistemu s Google Authenticatorom.
U terminalu vUtipkat ćemo sljedeću naredbu
sudo nano /etc/ssh/sshd_config
Unutar datoteke potražit ćemo sljedeće redove i promijenit ćemo ih u "da", budući da su sljedeći:
UsePAM yes ChallengeResponseAuthentication yes
Nakon što su promjene napravljene, sačuvajte promjene napravljene sa Ctrl + O i zatvorite datoteku sa Ctrl + X.
U istom terminalu ćemo ponovo pokrenuti SSH sa:
sudo systemctl restart ssh
Po defaultu, autentifikacija zahtijeva da uđu korisničku lozinku za prijavu.
Tako da uredimo datoteku PAM pravila za SSH demon.
sudo nano /etc/pam.d/sshd
Na početku ove datoteke možete vidjeti sljedeći redak koji omogućava provjeru autentičnosti lozinke
ChallengeResponseAuthentication
Što moramo postaviti na da.
Da biste također omogućili jednokratnu provjeru autentičnosti lozinke, dodajte sljedeća dva retka.
@include common-auth #One-time password authentication via Google Authenticator auth required pam_google_authenticator.so
Spremite i zatvorite datoteku.
Od sada, svaki put kad se prijave u vaš sistem putem SSH veze, od njih će se tražiti da unesu korisničku lozinku i kontrolni kod (jednokratnu lozinku koju generira Google Authenticator).
Pozdrav, prilično jednostavan vodič, međutim, nakon što napravim sve korake koje više ne mogu unijeti ssh, izbaciće mi pogrešnu grešku lozinke, ne mogu tražiti ni 2FA.
Imam Ubuntu Server 20.04