Kā iestatīt divfaktoru autentifikāciju (Google Authenticator) SSH pieteikšanās gadījumiem
Pēc noklusējuma SSH jau izmanto drošu datu sakarus starp attālajām mašīnām, bet, ja vēlaties SSH savienojumiem pievienot papildu drošības slāni, varat pievienot Google autentifikatora (divu faktoru autentifikācijas) moduli, kas ļauj ievadīt nejaušu moduli. -laika paroles (TOTP) verifikācijas kods, savienojot ar SSH serveriem. Kad izveidojat savienojumu, verifikācijas kods būs jāievada no viedtālruņa vai datora.
Google autentifikators ir atvērtā koda modulis, kas ietver Google izstrādātu vienreizēju piekļuves kodu (TOTP) verifikācijas marķiera ieviešanu. Tas atbalsta vairākas mobilās platformas, kā arī PAM (Pluggable Authentication Module). Šie vienreizējie piekļuves kodi tiek ģenerēti, izmantojot OATH atklātās autentifikācijas iniciatīvas izveidotos atvērtos standartus).
Šajā rakstā es parādīšu, kā iestatīt un konfigurēt SSH divu faktoru autentifikācijai zem Red Hat, CentOS, Fedora un Ubuntu, Linux Mint un Debian.
Instalē Google autentifikatora moduli
Atveriet mašīnu, kurā vēlaties iestatīt divfaktoru autentifikāciju, un instalējiet šādas PAM bibliotēkas kopā ar attīstības bibliotēkām, kas nepieciešamas, lai PAM modulis darbotos pareizi ar Google autentifikatora moduli.
Uz Red Hat CentOS un Fedora sistēmas instalē paketi “pam-devel”.
# yum install pam-devel make automake libtool gcc-c++ wget
Uz Ubuntu Linux Mint un Debian sistēmas instalē pakotni libpam0g-dev.
# apt-get install libpam0g-dev make automake libtool gcc-c++ wget
Tagad klonējiet un instalējiet Google autentifikatora moduli mājas direktorijā (pieņemsim, ka esat jau pieteicies saknes mājas direktorijā), izmantojot šādu git komandu.
# git clone https://github.com/google/google-authenticator-libpam.git # cd google-authenticator-libpam/ # ./bootstrap.sh # ./configure # make # make install # google-authenticator
Kad esat izpildījis komandu ‘google-authentator’, tas jums liks uzdot nopietnus jautājumus. Vienkārši ierakstiet “y” (jā) kā atbildi lielākajā daļā gadījumu. Ja kaut kas noiet greizi, varat vēlreiz ierakstīt komandu ‘google-authentator’, lai atiestatītu iestatījumus.
- Vai vēlaties, lai autentifikācijas marķieri būtu balstīti uz laiku (y/n) y
Pēc šī jautājuma jūs saņemsiet “slepeno atslēgu” un “avārijas kodus”. Kaut kur pierakstiet šo informāciju. Mums vēlāk būs nepieciešama slepenā atslēga, lai iestatītu lietotni Google Authenticator.
google-authenticator Do you want authentication tokens to be time-based (y/n) y https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/[email %3Fsecret%3DXEKITDTYCBA2TLPL Your new secret key is: XEKITDTYCBA2TLPL Your verification code is 461618 Your emergency scratch codes are: 65083399 10733609 47588351 71111643 92017550
Pēc tam izpildiet iestatīšanas vedni un vairumā gadījumu atbildi ierakstiet “y” (jā), kā parādīts zemāk.
Do you want me to update your "/root/.google_authenticator" file (y/n) y Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) y If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y
SSH konfigurēšana, lai izmantotu Google autentifikatora moduli
Atveriet PAM konfigurācijas failu ‘/etc/pam.d/sshd’ un faila augšdaļā pievienojiet šādu rindu.
auth required pam_google_authenticator.so
Pēc tam atveriet SSH konfigurācijas failu ‘/ etc/ssh/sshd_config’ un ritiniet uz leju, lai atrastu teikto.
ChallengeResponseAuthentication no
Mainiet to uz “jā”. Tātad, tas kļūst tāds.
ChallengeResponseAuthentication yes
Visbeidzot, restartējiet SSH pakalpojumu, lai veiktu jaunas izmaiņas.
# /etc/init.d/sshd restart
Google autentifikatora lietotnes konfigurēšana
Palaidiet lietotni Google Authenticator savā viedtālrunī. Nospiediet Izvēlne un izvēlieties “Konta iestatīšana”. Ja jums nav šīs lietotnes, varat lejupielādēt un instalēt lietotni Google Authenticator Android/iPhone/Blackberry ierīcēs.
Nospiediet “Ievadītais taustiņš”.
Pievienojiet sava konta nosaukumu un ievadiet agrāk ģenerēto slepeno atslēgu.
Tas ģenerēs vienreizēju paroli (verifikācijas kodu), kas nepārtraukti mainīsies ik pēc 30 sekundēm tālrunī.
Tagad mēģiniet pieteikties, izmantojot SSH. Kad mēģināt pieteikties, izmantojot SSH, jums tiks lūgts ievadīt Google autentifikatora kodu (verifikācijas kodu) un paroli. Jums ir tikai 30 sekundes, lai ievadītu šo verifikācijas kodu, ja to nokavēsiet, tas atjaunos jauno verifikācijas kodu.
login as: tecmint Access denied Using keyboard-interactive authentication. Verification code: Using keyboard-interactive authentication. Password: Last login: Tue Apr 23 13:58:29 2013 from 172.16.25.125
Ja jums nav viedtālruņa, divu faktoru autentifikācijai varat izmantot arī Firefox papildinājumu GAuth Authenticator.
Svarīgi: divfaktoru autentifikācija darbojas ar paroli balstītu SSH pieteikšanos. Ja izmantojat kādu privātas/publiskas atslēgas SSH sesiju, tā ignorēs divfaktoru autentifikāciju un pieteiksies tieši.