Logując się do aplikacji Google możemy skorzystać z dwustopniowego uwierzytelnienia. Poza standardowym pytaniem o hasło, Google prosi o jednorazowy kod, który może zostać do nas wysłany SMSem, odczytany z aplikacji Google Authenticator na telefonie komórkowym lub odsłuchany z wiadomości głosowej. Metodę dwuskładnikowego uwierzytelnienie możemy również wykorzystać do logowania się po SSH do serwera. Google przygotowało specjalny moduł – libpam-google-authenticator.

Do skorzystania z tej metody potrzebna będzie aplikacja Google Authenticator dla telefonów komórkowych. Kolejnym krokiem będzie zainstalowanie modułu PAM.

Pobieramy plik libpam-google-authenticator-1.0-source.tar.bz2, wypakowujemy go i kompilujemy.

[thecamels@release ~]$ make
[root@release ~]$ make install

Na systemach RHEL oraz CentOS do poprawnej kompilacji wymagana jest paczka pam-devel. Następnie do pliku /etc/pam.d/sshd należy dodać na samym początku wpis:

auth       required     pam_google_authenticator.so

Ostatnim krokiem jest konfiguracja SSH, która zazwyczaj znajduje się w pliku: /etc/ssh/sshd_config, w której należy zaktualizować lub dodać opcję:

ChallengeResponseAuthentication yes

Kolejnym krokiem jest wygenerowanie sekretnego klucza. Odpowiada za to polecenie google-authenticator. Uruchamiamy je z konta użytkownika, który będzie korzystał z tej metody uwierzytelnienia.

Google Authenticator - QRCode

[thecamels@release ~]$ 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/thecamels@release%3Fsecret%3DOIMEINBS3QIX6WZH
Your new secret key is: BWWEABGTYSJNKLQL
Your verification code is 375093
Your emergency scratch codes are:
  42025097
  15985152
  53691877
  15562664
  39541888

Do you want me to update your "/home/thecamels/.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
[thecamels@release ~]$

Wygenerowany został URL z obrazkiem, który pozwoli nam na szybką konfigurację aplikacji na telefonie komórkowym. Google wygenerowało również jednorazowe kody, które pozwolą nam na zalogowanie do serwera w przypadku kiedy nie mamy dostępu do telefonu komórkowego.

Po skonfigurowaniu serwera, należy zrestartować usługę SSH oraz skonfigurować telefon.

Google Authenticator Android

Czas na testy:

[thecamels@muszelka~]$ ssh release
Verification code:
Password:
[thecamels@release~]$

Aby zalogować się na serwer, należy podać token wygenerowany przez aplikację na telefonie oraz poprawne hasło. Jeżeli nie mamy dostępu do telefonu, możemy skorzystać z wygenerowanych wcześniej kodów.

Podobne artykuły

OpenSSH

przez -
0 287
OpenSSH

przez -
1 315
  • Greg

    Super ;) Wygląda niesamowicie :) Widze, ża za mądry artykuł bo nikt nie komentuje :P

  • Brakuje mi wersji tokena na JAVE, jest ciągle spora grupa userów z Symbianami, choć to martwa platforma bez przyszłości, klient na JAVE powinien być.

  • Widzę, że Google się popisało i na prawdę odwaliło kawał dobrej roboty – widać tutaj ich wsparcie dla Linuksa, starają się, a nie tak jak NVIDIA ;-)

  • marcinp

    Szczerze mowiac to zadna nowosc. Od lat uzywam do tego celu uTokena. Dziala na identycznej zasadzie i jest bardzo konfigurowalny (moze nawet za bardzo :P). Tyle, ze generator jest jedynie na javame :( Ale da sie na Androidzie odpalic.

    Pozdr.

    Marcin.

    • mwozniak00

      Ale niestety ostatnia wersja utokena wyszla chyba w 2009r, czyli dosc dawno :/

  • TomJ

    Wygląda super :) A jak się skończy lista kodów jednorazowych i nie masz telefonu to co? I czy da się logować za pomocą kilku komórek i kilku kont?

  • Greg

    Dodałem sobie właśnie do mojej domowej Fedorki. Działa świetnie i prosto się instaluje. Polecam każdemu bo to zwiększy bezpieczeństwo twojego systemu.

  • Atom78

    Ale jak to działa? Skąd Linux wie jaki masz kod na komórce? :?

    • John

      Kod generowany na podstawie sekretu i czasu które są znane po obu stronach.

    • TomJ

      A jak jest różnica czasu to co?