Kétlépcsős azonosítás használata a Google-authentikátor segítségével azaz ssh belépés telefonnal debian/ubuntu -n

Cvk/ július 21, 2011/ Debian, linux, Szerver, ubuntu

Az alábbiakban bemutatom hogyan lehet használni a kétlépcsős azonosítást távoli ssh hozzáféréshez elsősorban debian/ubuntu szervernél.

De mi is ez a kétlépcsős azonosítás?

A Google Authenticator, hitelesítő a sima jelszó használatát kiegészíti egy plusz azonosító lépcsővel ami a telefonon keresztül érkezik.

A kétlépcsős azonosítás révén megakadályozhatja, hogy idegenek csupán a jelszó megszerzésével használni tudják fiókját. Ha kétlépcsős azonosítást használ a bejelentkezésnél, személyazonosságát mind jelszó, mind a telefonjára kapott kód segítségével igazolnia kell.

Mire lesz szükségünk?

Először is egy Iphone/Android/Blackberry telefonra, amire telepíthetjük a Google Hitelesítő szoftverét ami egy 30 másodperces  Time-based One-time Password (TOTP) algoritmust használva segíti a bejutást.

Valamint szükségünk van egy debian/ubuntu szerverre, amelyre az ssh jelszaván kívül egy egyszer használatos kódot is megadva szeretnénk elérni.

Állítsuk be a szervert a kétlépcsős azonosításhoz.

Telepítsük a szükséges programokat a szerverre:

apt-get install build-essential mercurial libpam0g-dev subversion

Ezután töltsük le a google-authenticator forrását:

hg clone https://google-authenticator.googlecode.com/hg/ google-authenticator

Fordítsuk le a Pluggable authentication modules – Csatlakoztatható Azonosítási Modulok, azaz PAM felhasználói azonosításhoz szükséges modulját:

cd google-authenticator/libpam/
make install

A make install parancs lefordítja és a lefordított modult és binárist bemásolja a helyükre:

cp pam_google_authenticator.so /lib/security
cp google-authenticator /usr/local/bin

Itt most két lehetőségünk van az azonosítás megadására.

Amennyiben általánosan engedélyezni akarjuk a google hitelesítést, úgy az /etc/pam.d/common-auth fájlhoz, amennyiben csak az ssh belépéshez szeretnénk engedélyezni, úgy az /etc/pam.d/sshd fájl elejére vegyük fel a következő sort:

auth    required                        pam_google_authenticator.so

Ezután az /etc/ssh/sshd_confing fájlban engedélyezzük, azaz állítsuk YES re az alábbi paramétert utána indítsuk újra az SSH szervert:

ChallengeResponseAuthentication yes
/etc/init.d/ssh restart

Futtassuk le a felhasználó nevében a hitelesítőt, ami legenerálja a .google_authenticator fájlt ami tartalmazza az alábbi kiírt adatokat amelyek lehetővé teszik a két lépcsős azonosítást:

$ google-authenticator
https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/cvk@mail2%3Fsecret%3AAAAAAAAAAAAAAAA
Your new secret key is: AAAAAAAAAAAAA
Your verification code is 123456
Your emergency scratch codes are:
12345678
12345678
12345678
12345678
12345678
Do you want me to update your "~/.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

Ezután állítsuk be a telefonunkon a fent kapott nevet és kulcsot hogy a készülék generáljon nekünk egyszer használatos ellenőrző kódot:

A fióknév az a szerveren lévő felhasználó és a szerver nevéből áll össze azaz felhasznalo@gepnev,  a kulcs pedig a fentebb generált Your new secret key is: után következik.

Nincs más hátra, mint hogy csatlakozzunk a beállított szerverünkhöz az új egyszeri belépésre lehetőséget adó ellenőrző kóddal valamint az ssh felhasználóhoz tartozó jelszóval.

$ ssh mail2
Verification code:
Password:
Linux mail2 2.6.32-4 #1 SMP Mon May 9 12:59:57 CEST 2011 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

cvk@mail2:~$

.

Share this Post