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 korzysta z Google Authenticator i innych aplikacji 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 Linuxa.
Wcześniej pokazaliśmy, jak wymagać Google Authenticator do zdalnego dostępu przez SSH, a ten proces 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ł 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, aby ułatwić instalację - otwórz repozytorium oprogramowania dystrybucji Linuksa i przeprowadź jego 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 przechodzić 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, z 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 raz na 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. Zapewniło to, że 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ć. Biorąc to pod uwagę, 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 w celu graficznego logowania w systemie Ubuntu
Zawsze można włączyć uwierzytelnianie dwustopniowe tylko dla graficznych logowań, 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ć 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 kroki 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 informuje system, aby zezwolił użytkownikowi na zalogowanie się, 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 wypadku 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 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 na komputerze korzysta z 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 zależy domyślnie 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 na temat uniknięcia tego problemu, jeśli nadal używasz wycofanych opcji szyfrowania katalogu domowego.
Nowoczesne wersje Ubuntu oferują zamiast tego pełne szyfrowanie dysku, które będzie działać dobrze z powyższymi opcjami. Nie musisz robić nic specjalnego
Pomóż, to się złamało!
Ponieważ właśnie włączyliśmy to dla graficznych logowań, powinno być łatwo wyłączyć, jeśli powoduje problem. Naciśnij kombinację klawiszy, takich jak Ctrl + Alt + F2, aby uzyskać dostęp do terminala wirtualnego 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 także 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ę dotyczącą używania i konfiguracji tego modułu PAM można znaleźć w pliku README oprogramowania na GitHubie.