Kuidas seadistada SSH sisselogimiste jaoks kahefaktoriline autentimine (Google Authenticator)


Vaikimisi kasutab SSH juba kaugmasinate vahel turvalist andmesidet, kuid kui soovite oma SSH-ühendustele lisada täiendava turvakihi, võite lisada Google Authenticatori (kaheastmeline autentimine) mooduli, mis võimaldab teil sisestada juhusliku. -aja parooli (TOTP) kinnituskood SSH-serveritega ühenduse loomisel. Ühenduse loomisel peate sisestama kinnituskoodi nutitelefonist või arvutist.

Google Authenticator on avatud lähtekoodiga moodul, mis sisaldab Google'i välja töötatud ühekordsete pääsukoodide (TOTP) kinnitusmärgi juurutusi. See toetab mitut mobiilset platvormi, samuti PAM-i (Pluggable Authentication Module). Need ühekordsed pääsukoodid genereeritakse OATHi avatud autentimise algatuse loodud avatud standardite abil).

Selles artiklis näitan teile, kuidas seadistada ja konfigureerida SSH kahefaktorilise autentimise jaoks Red Hat, CentOS, Fedora ja Ubuntu, Linux Mint ja Debian all.

Google Authenticatori mooduli installimine

Avage masin, millele soovite seadistada kaheastmelise autentimise, ja installige järgmised PAM-i teegid koos arendusteekidega, mis on vajalikud PAM-mooduli õigeks töötamiseks Google'i autentimismooduliga.

Red Hatile installivad CentOS ja Fedora süsteem paketi pam-devel.

# yum install pam-devel make automake libtool gcc-c++ wget

Ubuntu installivad Linux Mint ja Debian süsteemid paketi libpam0g-dev.

# apt-get install libpam0g-dev make automake libtool gcc-c++ wget

Kloonige ja installige Google'i autentimismoodul kodukataloogi (oletame, et olete juba juurkoja kataloogi sisse loginud), kasutades järgmist git-käsku.

# git clone https://github.com/google/google-authenticator-libpam.git
# cd google-authenticator-libpam/
# ./bootstrap.sh
# ./configure
# make
# make install
# google-authenticator

Kui olete käivitanud käsu google-authentator, küsib see teile tõsise küsimusega. Sisestage enamikus olukordades vastuseks lihtsalt "y" (jah). Kui midagi läheb valesti, võite seadete lähtestamiseks sisestada uuesti käsu ‘google-authentator’.

  1. Kas soovite, et autentimismärgid oleksid ajapõhised (jah/n) y

Selle küsimuse järel saate oma salajase võtme ja hädaabikoodid. Kirjutage need üksikasjad kuhugi üles, vajame hiljem Google Authenticatori rakenduse seadistamiseks salajast võtit.

 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

Järgmisena järgige häälestusviisardit ja sisestage vastus enamasti „y” (jah), nagu allpool näidatud.

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 konfigureerimine Google Authenticatori mooduli kasutamiseks

Avage PAM-i konfiguratsioonifail ‘/etc/pam.d/sshd’ ja lisage järgmine rida faili ülaossa.

auth       required     pam_google_authenticator.so

Järgmisena avage SSH-i konfiguratsioonifail '/ etc/ssh/sshd_config' ja kerige alltoodud rea leidmiseks.

ChallengeResponseAuthentication no

Muutke see väärtuseks „jah“. Nii saab sellest selline.

ChallengeResponseAuthentication yes

Lõpuks taaskäivitage SSH-teenus uute muudatuste tegemiseks.

# /etc/init.d/sshd restart

Google Authenticatori rakenduse konfigureerimine

Käivitage nutitelefonis rakendus Google Authenticator. Vajutage Menüü ja valige „Konto seadistamine“. Kui teil seda rakendust pole, saate rakenduse Google Authenticator alla laadida ja installida oma Androidi/iPhone'i/Blackberry seadmetesse.

Vajutage nuppu "Sisestage klahv".

Lisage oma konto nimi ja sisestage varem loodud salajane võti.

See genereerib ühekordse parooli (kinnituskoodi), mis muutub teie telefonis pidevalt iga 30 sekundi järel.

Proovige nüüd SSH kaudu sisse logida. Teil palutakse alati, kui proovite SSH kaudu sisse logida, Google Authenticatori koodi (kinnituskood) ja parooli. Selle kinnituskoodi sisestamiseks on teil aega vaid 30 sekundit, kui te seda vahele jätate, uuendab see uue kinnituskoodi.

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

Kui teil pole nutitelefoni, võite kahefaktorilise autentimise kasutamiseks kasutada ka Firefoxi lisandmoodulit, mille nimi on GAuth Authenticator.

Tähtis: Kaheastmeline autentimine töötab paroolipõhise SSH sisselogimisega. Kui kasutate mõnda privaatse/avaliku võtme SSH-seanssi, ignoreerib see kaheastmelist autentimist ja logib teid otse sisse.