If-Koubou

Jak zalogować się na pulpit systemu Linux za pomocą Google Authenticator

Jak zalogować się na pulpit systemu Linux za pomocą Google Authenticator (Jak)

Aby uzyskać dodatkowe zabezpieczenia, możesz wymagać tokena uwierzytelniania na podstawie czasu, a także hasła, aby zalogować się na komputerze z systemem Linux. To rozwiązanie wykorzystuje Google Authenticator i inne aplikacje TOTP.

Proces ten przeprowadzono w systemie Ubuntu 14.04 przy użyciu standardowego menedżera logowania Unity i LightDM, ale zasady są takie same w przypadku większości dystrybucji i pulpitów Linux.

Wcześniej pokazaliśmy, jak wymagać Google Authenticator do zdalnego dostępu przez SSH, a proces ten jest podobny. Nie wymaga to aplikacji Google Authenticator, ale działa z każdą kompatybilną aplikacją, która implementuje schemat uwierzytelniania TOTP, w tym Authy.

Zainstaluj moduł PAM Google Authenticator

Podobnie jak przy konfigurowaniu dostępu do SSH, najpierw musimy zainstalować odpowiednie oprogramowanie PAM ("moduł wtyku do uwierzytelniania"). PAM to system, który pozwala nam podłączać różne typy metod uwierzytelniania do systemu Linux i wymagać ich.

W Ubuntu poniższe polecenie zainstaluje PAM Google Authenticator. Otwórz okno terminala, wpisz następujące polecenie, naciśnij klawisz Enter i podaj hasło. System pobierze PAM z repozytoriów oprogramowania dystrybucji Linuksa i zainstaluje go:

sudo apt-get install libpam-google-authenticator

Inne dystrybucje Linuksa powinny mieć nadzieję, że ten pakiet będzie również dostępny dla łatwej instalacji - otwórz repozytoria oprogramowania dystrybucji Linuksa i przeprowadź wyszukiwanie. W najgorszym przypadku można znaleźć kod źródłowy modułu PAM na GitHub i skompilować go samodzielnie.

Jak już wspomnieliśmy, rozwiązanie to nie zależy od "dzwonienia do domu" na serwerach Google. Implementuje standardowy algorytm TOTP i może być używany nawet wtedy, gdy twój komputer nie ma dostępu do Internetu.

Utwórz klucze uwierzytelniające

Musisz teraz utworzyć tajny klucz uwierzytelniający i wprowadzić go w aplikacji Google Authenticator (lub podobnej) na telefonie. Najpierw zaloguj się jako konto użytkownika w systemie Linux. Otwórz okno terminala i uruchom google-authenticator dowództwo. Rodzaj y i postępuj zgodnie z wyświetlanymi instrukcjami. Spowoduje to utworzenie specjalnego pliku w katalogu bieżącego konta użytkownika z informacjami Google Authenticator.

Będziesz także przejść przez proces uzyskiwania tego kodu weryfikacyjnego dwuetapowego do aplikacji Google Authenticator lub podobnej aplikacji TOTP na smartfonie. Twój system może wygenerować kod QR, który możesz zeskanować, lub możesz go wpisać ręcznie.

Pamiętaj, aby zanotować swoje awaryjne kody zdrapki, za pomocą których możesz się zalogować, jeśli zgubisz telefon.

Wykonaj ten proces dla każdego konta użytkownika korzystającego z komputera. Na przykład, jeśli jesteś jedyną osobą, która używa Twojego komputera, możesz zrobić to tylko raz na swoim zwykłym koncie użytkownika. Jeśli masz kogoś, kto używa Twojego komputera, będziesz chciał, aby zalogowali się na swoje własne konto i wygenerowali odpowiedni kod dwuskładnikowy dla swojego konta, aby mogli się zalogować.

Aktywuj uwierzytelnianie

Oto, gdzie sprawy stają się nieco dickie. Kiedy wyjaśniliśmy, jak włączyć dwuskładnikowe logowanie SSH, wymagaliśmy tego tylko dla logowań SSH. Dzięki temu nadal możesz logować się lokalnie, jeśli utracisz aplikację uwierzytelniającą lub coś poszło nie tak.

Ponieważ umożliwiamy uwierzytelnianie dwuskładnikowe dla lokalnych loginów, istnieją potencjalne problemy. Jeśli coś pójdzie nie tak, możesz nie być w stanie się zalogować. Mając to na uwadze, przeprowadzimy Cię przez włączanie tego tylko w przypadku logicznych loginów. To daje ci luk ratunkowy, jeśli tego potrzebujesz.

Włącz Google Authenticator do graficznego logowania w systemie Ubuntu

Zawsze można włączyć uwierzytelnianie dwustopniowe tylko dla logicznych loginów, pomijając wymagania po zalogowaniu się z wiersza tekstowego. Oznacza to, że możesz łatwo przełączyć się do wirtualnego terminala, zalogować się do niego i przywrócić zmiany, aby Gogole Authenciator nie był wymagany, jeśli wystąpi problem.

Oczywiście, to otwiera dziurę w twoim systemie uwierzytelniania, ale atakujący z fizycznym dostępem do twojego systemu może i tak ją wykorzystać. Dlatego uwierzytelnianie dwuskładnikowe jest szczególnie skuteczne w przypadku zdalnych logowań przez SSH.

Oto jak to zrobić w Ubuntu, który używa menedżera logowania LightDM. Otwórz plik LightDM do edycji za pomocą następującego polecenia:

sudo gedit /etc/pam.d/lightdm

(Pamiętaj, że te konkretne czynności będą działać tylko wtedy, gdy twoja dystrybucja Linuksa i komputer używają menedżera logowania LightDM).

Dodaj następujący wiersz na końcu pliku, a następnie zapisz go:

auth wymagany pam_google_authenticator.so nullok

Bit "nullok" na końcu mówi systemowi, aby zezwolił użytkownikowi na logowanie, nawet jeśli nie uruchomił polecenia google-authenticator, aby skonfigurować uwierzytelnianie dwuskładnikowe. Jeśli go skonfigurują, będą musieli wprowadzić kod czasowy - w przeciwnym razie nie będą. Usuń "nullok", a konta użytkowników, które nie skonfigurowały kodu Google Authenticator, nie będą mogły logować się graficznie.

Następnym razem, gdy użytkownik zaloguje się graficznie, zostanie poproszony o podanie hasła, a następnie poprosi o podanie aktualnego kodu weryfikacyjnego wyświetlanego na telefonie. Jeśli nie wprowadzą kodu weryfikacyjnego, nie będą mogli się zalogować.

Proces powinien być dość podobny w przypadku innych dystrybucji i pulpitów Linuxa, ponieważ większość popularnych menedżerów sesji w systemie Linux używa PAM. Najprawdopodobniej będziesz musiał edytować inny plik z czymś podobnym do aktywacji odpowiedniego modułu PAM.

Jeśli korzystasz z szyfrowania katalogów domowych

Starsze wersje Ubuntu oferowały łatwą opcję "szyfrowania folderu domowego", która szyfrowała cały katalog domowy, dopóki nie wprowadzisz swojego hasła. W szczególności używa to ecryptfs.Ponieważ jednak oprogramowanie PAM jest domyślnie zależne od pliku Google Authenticator przechowywanego w katalogu domowym, szyfrowanie zakłóca działanie PAM czytającego plik, chyba że przed zalogowaniem się upewnisz się, że jest on dostępny w postaci niezaszyfrowanej. Aby uzyskać więcej informacji, zapoznaj się z plikiem README. informacje o unikaniu tego problemu, jeśli nadal używasz nieaktualnych opcji szyfrowania katalogu domowego.

Nowoczesne wersje Ubuntu oferują zamiast tego szyfrowanie na pełnym dysku, które będzie działało dobrze z powyższymi opcjami. Nie musisz robić nic specjalnego

Pomoc, to się złamało!

Ponieważ właśnie włączyliśmy to dla logicznych loginów, powinno być łatwo wyłączyć, jeśli powoduje problem. Naciśnij kombinację klawiszy, takich jak Ctrl + Alt + F2, aby uzyskać dostęp do wirtualnego terminala i zaloguj się przy użyciu swojej nazwy użytkownika i hasła. Następnie możesz użyć polecenia takiego jak sudo nano /etc/pam.d/lightdm, aby otworzyć plik do edycji w terminalowym edytorze tekstu. Skorzystaj z naszego przewodnika po narzędziu Nano, aby usunąć linię i zapisać plik, a będziesz mógł normalnie zalogować się ponownie.

Możesz również wymusić Google Authenticator, aby był wymagany dla innych typów loginów - potencjalnie nawet wszystkich logowań systemowych - dodając wiersz "auth required pam_google_authenticator.so" do innych plików konfiguracyjnych PAM. Zachowaj ostrożność, jeśli to zrobisz. Pamiętaj, że możesz chcieć dodać "nullok", aby użytkownicy, którzy nie przeszli procesu instalacji, mogli się zalogować.

Dalszą dokumentację dotyczącą użytkowania i konfiguracji tego modułu PAM można znaleźć w pliku README oprogramowania na GitHub.