31Aug

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

Aby uzyskać dodatkowe zabezpieczenia, możesz wymagać tokenu uwierzytelniania opartego na czasie, 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 menedżera logowania 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 program Google Authenticator PAM

Podobnie jak podczas konfigurowania dostępu SSH, najpierw musimy zainstalować odpowiednie oprogramowanie PAM( "moduł do uwierzytelniania wtykowego").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ć również dostęp do tego pakietu dla łatwej instalacji - otwórz repozytoria oprogramowania dystrybucji Linuksa iszukaj go. 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

Teraz musisz 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 polecenie google-authenticator .Wpisz 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.

Przejdziesz również 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 gdzierzeczy 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 graficznych logowań 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 fizycznie mający dostęp 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ć dla 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 określone czynności będą działać tylko wtedy, gdy twoja dystrybucja Linuksa i komputer używają menedżera logowania LightDM.)

Dodaj następującą linię na końcuplik, a następnie zapisz:

auth required pam_google_authenticator.so nullok

Bit "nullok" na końcu mówi systemowi, aby pozwolił użytkownikowi zalogować się, nawet jeśli nie uruchomił polecenia google-authenticator, aby skonfigurować dwieuwierzytelnianie czynnikowe. 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 zostanie poproszony o podanie aktualnego kodu weryfikacyjnego wyświetlanego na jego telefonie. Jeśli nie wprowadzą kodu weryfikacyjnego, nie będą mogli się zalogować.

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

Jeśli używasz szyfrowania katalogu domowego

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 pełne szyfrowanie dysku, które będzie działało dobrze z powyższymi opcjami. Nie musisz robić nic specjalnego

Help, It Broke!

Ponieważ właśnie włączyliśmy to dla graficznych logowań, powinno być łatwo wyłączyć, jeśli powoduje to 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żna 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żna również wymusić Google Authenticator, aby był wymagany dla innych typów loginów - potencjalnie nawet wszystkich logowań systemowych - poprzez dodanie wiersza "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ę na temat używania i konfiguracji tego modułu PAM można znaleźć w pliku README oprogramowania na GitHubie.