Wéi Setup Zwee-Faktor Authentifikatioun (Google Authenticator) fir SSH Logins


Par défaut benotzt SSH schonn eng sécher Datekommunikatioun tëscht Fernmaschinnen, awer wann Dir eng extra Sécherheetsschicht op Är SSH Verbindunge wëllt addéieren, kënnt Dir e Google Authenticator (Zwee-Faktor Authentifikatioun) Modul addéieren, deen Iech erlaabt eng zoufälleg anzeginn. -Zäit Passwuert (TOTP) Verifizéierungscode wärend Dir mat SSH Server verbënnt. Dir musst de Verifizéierungscode vun Ärem Smartphone oder PC aginn wann Dir verbënnt.

De Google Authenticator ass en Open-Source Modul deen Implementatioune vun eemolege Passcodes (TOTP) Verifizéierungstoken enthält, entwéckelt vu Google. Et ënnerstëtzt verschidde mobil Plattformen, souwéi PAM (Pluggable Authentication Module). Dës eemoleg Passcodes ginn generéiert mat oppene Standarden erstallt vun der OATH Initiative for Open Authentication).

An dësem Artikel wäert ech Iech weisen wéi Dir SSH fir Zwee-Faktor Authentifikatioun ënner Red Hat, CentOS, Fedora an Ubuntu, Linux Mint an Debian konfiguréieren an konfiguréieren.

Installéiere vum Google Authenticator Modul

Öffnen d'Maschinn déi Dir zwee-Faktor Authentifikatioun opriichte wëllt an installéiere folgend PAM-Bibliothéiken zesumme mat Entwécklungsbibliothéiken déi gebraucht ginn fir datt de PAM-Modul korrekt mam Google Authentifizéierer-Modul funktionnéiert.

Op Red Hat, CentOS a Fedora Systemer installéieren de 'pam-devel' Package.

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

Op Ubuntu, Linux Mint an Debian Systemer installéieren 'libpam0g-dev' Package.

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

Elo klon an installéiert de Google Authentifizéierer Modul ënner Heemverzeechnes (unhuelen datt Dir schonn am Heemverzeichnis vun der Root ageloggt sidd) mam folgenden git Kommando.

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

Wann Dir de Kommando google-Authenticator ausféiert, freet et Iech eng sérieux Fro. Typ einfach y (Jo) als Äntwert an de meeschte Situatiounen. Wann eppes falsch geet, kënnt Dir nach eng Kéier 'google-authenticator' Kommando tippen fir d'Astellungen zréckzesetzen.

  1. Wëllt Dir datt d'Authentifikatiouns-Tokens Zäitbaséiert sinn (y/n) y

No dëser Fro kritt Dir Äre 'geheime Schlëssel'an 'Noutcoden'. Schreift dës Detailer iergendwou erof, mir brauchen de 'geheime Schlëssel' spéider fir d'Google Authenticator App opzestellen.

 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

Als nächst, befollegt de Setup-Assistent an an de meeschte Fäll gitt d'Äntwert als y (Jo) wéi hei ënnendrënner.

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éieren fir de Google Authenticator Module ze benotzen

Öffnen d'PAM Konfiguratiounsdatei '/etc/pam.d/sshd' a füügt déi folgend Zeil un der Spëtzt vun der Datei.

auth       required     pam_google_authenticator.so

Als nächst, öffnen d'SSH Konfiguratiounsdatei '/etc/ssh/sshd_config' a scrollt erof fir d'Linn ze fannen déi seet.

ChallengeResponseAuthentication no

Ännert et op Jo. Also, et gëtt esou.

ChallengeResponseAuthentication yes

Endlech, Restart SSH Service fir nei Ännerungen ze huelen.

# /etc/init.d/sshd restart

Google Authenticator App konfiguréieren

Lancéiere Google Authenticator App op Ärem Smartphone. Press Menu a wielt Kont opmaachen. Wann Dir dës App net hutt, kënnt Dir d'Google Authenticator App op Ärem Android/iPhone/Blackberry Apparater eroflueden an installéieren.

Press \Enter-Schlëssel geliwwert.

Füügt Äre Kont 'Numm' a gitt de 'geheime Schlëssel'virdru generéiert.

Et generéiert ee Kéier Passwuert (Verifikatiounscode) dat dauernd all 30 Sekonnen op Ärem Telefon ännert.

Elo probéiert Iech iwwer SSH anzeloggen, Dir wäert mat Google Authenticator Code (Verifikatiounscode) a Passwuert gefrot ginn wann Dir probéiert Iech iwwer SSH anzeloggen. Dir hutt nëmmen 30 Sekonnen fir dëse Verifizéierungscode anzeginn, wann Dir verpasst, gëtt en neie Verifikatiounscode regeneréiert.

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

Wann Dir kee Smartphone hutt, kënnt Dir och e Firefox Add-on mam Numm GAuth Authenticator benotzen fir Zwee-Faktor Authentifikatioun ze maachen.

Wichteg: D'Zwee-Faktor Authentifikatioun funktionnéiert mat Passwuert baséiert SSH Login. Wann Dir eng privat/ëffentlech Schlëssel SSH Sessioun benotzt, wäert et zwee-Faktor Authentifikatioun ignoréieren an Iech direkt aloggen.