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.

  1. 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.