La Dvofaktorska autentifikacija (2FA) nije nešto jedinstveno što se može koristiti na društvenim mrežama ili na bilo kojoj drugoj web stranici. Pa, ova se sigurnosna mjera može primijeniti i unutar operativnog sustava.
Zbog toga Danas ćemo vidjeti kako implementirati dvofaktorsku provjeru autentičnosti u SSH u Ubuntuu i derivati koji koriste dobro poznati Google Authenticator koji će znatno povećati sigurnost vašeg OpenSSH poslužitelja.
Obično trebate unijeti lozinku ili upotrijebiti SSH ključ za daljinsku prijavu u svoj sustav.
Dvofaktorska autentifikacija (2FA) zahtijeva unos dvaju podataka za prijavu.
Stoga ćete također morati unijeti vremensku jednokratnu lozinku za prijavu na svoj SSH poslužitelj.
Ova jednokratna lozinka izračunava se pomoću algoritma TOTP, koji je IETF standard.
Instalacija i konfiguracija Google Autentifikatora u Ubuntuu i izvedenicama
Prvi korak koji ćemo poduzeti je instalacija Google Autentifikatora u naš sustav, tako da ćemo otvoriti terminal u sustavu (to se može učiniti kombinacijom tipki “Ctrl + Alt + T) i u njega ćemo upisati sljedeću naredbu:
sudo apt install libpam-google-authenticator
Instalacija gotova pokrenut ć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 temelju vremena, što ćemo odgovoriti da.
Nakon ovoga, 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 za skeniranje cijelog QR koda.
QR kôd predstavlja tajni ključ, koji je poznat samo njegovom SSH poslužitelju i aplikaciji Google Authenticator.
Nakon što se QR kod skenira, na svom telefonu mogu vidjeti jedinstveni šestoznamenkasti token. Prema zadanim postavkama ovaj token traje 30 sekundi i mora se unijeti za prijavu na Ubuntu putem SSH-a.
U terminalu ćete moći vidjeti i tajni kôd, kao i kontrolni kôd i kôd za hitni start.
Iz čega vam preporučujemo da ove podatke čuvate na sigurnom mjestu za kasniju upotrebu. Na ostala pitanja koja ćemo postaviti jednostavno ćemo odgovoriti da davanjem slova y.
SSH konfiguracija 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 sustavu s Google Authenticatorom.
U terminalu vUpisat ćemo sljedeću naredbu
sudo nano /etc/ssh/sshd_config
Unutar datoteke potražit ćemo sljedeće redove i promijenit ćemo ih u "da", kako slijedi:
UsePAM yes ChallengeResponseAuthentication yes
Nakon što su promjene napravljene, spremite promjene načinjene Ctrl + O i zatvorite datoteku Ctrl + X.
U istom terminalu ponovno ćemo pokrenuti SSH sa:
sudo systemctl restart ssh
Prema zadanim postavkama provjera autentičnosti zahtijeva unos korisničke lozinke 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ćuje 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š sustav putem SSH veze, od njih će se tražiti da unesu korisničku lozinku i kontrolni kôd (jednokratnu lozinku koju generira Google Authenticator).
Pozdrav, prilično jednostavan vodič, međutim, nakon što napravim sve korake u koje više ne mogu ući putem ssh-a, izbacuje mi pogrešku u pogrešci lozinke, ne mogu tražiti ni 2FA.
Imam Ubuntu Server 20.04