Aby zapewnić dodatkowe bezpieczeństwo, możesz wymagać token uwierzytelniania na podstawie czasu a także hasło do logowania się do komputera z systemem Linux. To rozwiązanie wykorzystuje Google Authenticator i inne aplikacje TOTP.
Ten proces został przeprowadzony na Ubuntu 14.04 ze standardem Pulpit Unity i menedżer logowania LightDM, ale zasady są takie same w większości dystrybucji Linuksa i komputerów stacjonarnych.
Wcześniej ci 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ą zgodną aplikacją, która implementuje schemat uwierzytelniania TOTP, w tym Authy .
Zainstaluj PAM Google Authenticator
ZWIĄZANE Z: Jak zabezpieczyć SSH za pomocą uwierzytelniania dwuskładnikowego Google Authenticator
Tak jak podczas konfigurowania dostępu przez SSH, najpierw musimy zainstalować odpowiednie oprogramowanie PAM („moduł podłączanego uwierzytelniania”). PAM to system, który pozwala nam podłączyć różne typy metod uwierzytelniania do systemu Linux i wymagać ich.
W systemie Ubuntu następujące polecenie zainstaluje Google Authenticator PAM. 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
Miejmy nadzieję, że inne dystrybucje Linuksa również powinny mieć ten pakiet w celu ułatwienia instalacji - otwórz repozytoria oprogramowania swojej dystrybucji Linuksa i wyszukaj je. W najgorszym przypadku możesz znaleźć kod źródłowy modułu PAM w serwisie GitHub i skompiluj go samodzielnie.
Jak wskazaliśmy wcześniej, to rozwiązanie nie polega na „dzwonieniu do domu” na serwery Google. Implementuje standardowy algorytm TOTP i może być używany nawet wtedy, gdy komputer nie ma dostępu do Internetu.
Utwórz klucze uwierzytelniania
Musisz teraz utworzyć tajny klucz uwierzytelniania 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 plik Google-Authenticator Komenda. 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.
Zostaniesz również przeprowadzony przez proces pobierania tego dwuskładnikowego kodu weryfikacyjnego 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 wpisać go ręcznie.
Pamiętaj, aby zanotować swoje awaryjne kody zdrapki, których możesz użyć do zalogowania się, jeśli zgubisz telefon.
Przeprowadź ten proces dla każdego konta użytkownika, które korzysta z Twojego komputera. Na przykład, jeśli jesteś jedyną osobą, która korzysta z komputera, możesz to zrobić tylko raz na swoim zwykłym koncie użytkownika. Jeśli masz kogoś innego, kto korzysta z Twojego komputera, możesz poprosić go, aby zalogował się na swoje konto i wygenerował odpowiedni kod dwuskładnikowy dla swojego konta, aby umożliwić mu logowanie.
Aktywuj uwierzytelnianie
Tutaj sprawy stają się nieco niepewne. Kiedy wyjaśniliśmy, jak włączyć dwuskładnikowe logowanie SSH, wymagaliśmy tego tylko do logowania SSH. Dzięki temu możesz nadal logować się lokalnie, jeśli zgubisz aplikację uwierzytelniającą lub coś pójdzie nie tak.
Ponieważ będziemy włączać uwierzytelnianie dwuskładnikowe dla logowania lokalnego, mogą wystąpić tutaj 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 proces włączania tej opcji tylko dla logowania graficznego. To daje ci właz ewakuacyjny, jeśli go potrzebujesz.
Włącz aplikację Google Authenticator do logowania graficznego w systemie Ubuntu
Zawsze możesz włączyć uwierzytelnianie dwuetapowe tylko dla logowania graficznego, pomijając to wymaganie podczas logowania z poziomu monitu tekstowego. Oznacza to, że możesz łatwo przełączyć się na terminal wirtualny, zalogować się tam i cofnąć zmiany, dzięki czemu Gogole Authenciator nie byłby wymagany w przypadku wystąpienia problemu.
Jasne, otwiera to lukę w systemie uwierzytelniania, ale osoba atakująca z fizycznym dostępem do Twojego systemu i tak może go już wykorzystać . Dlatego uwierzytelnianie dwuskładnikowe jest szczególnie skuteczne w przypadku zdalnego logowania przez SSH.
Oto jak to zrobić w przypadku Ubuntu, który korzysta z menedżera logowania LightDM. Otwórz plik LightDM do edycji za pomocą polecenia podobnego do następującego:
sudo gedit /etc/pam.d/lightdm
(Pamiętaj, te konkretne kroki będą działać tylko wtedy, gdy dystrybucja Linuksa i komputer stacjonarny korzystają z menedżera logowania LightDM).
Dodaj następujący wiersz na końcu pliku, a następnie zapisz go:
wymagane uwierzytelnienie 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 w celu skonfigurowania uwierzytelniania dwuskładnikowego. Jeśli to skonfigurowali, będą musieli wprowadzić kod z dokładnością do czasu - w przeciwnym razie tego nie zrobią. Usuń „nullok” i konta użytkowników, którzy nie skonfigurowali kodu Google Authenticator, po prostu nie będą mogli logować się graficznie.
Następnym razem, gdy użytkownik zaloguje się graficznie, zostanie poproszony o podanie hasła, a następnie o aktualny kod weryfikacyjny wyświetlany na telefonie. Jeśli nie wprowadzą kodu weryfikacyjnego, nie będą mogli się zalogować.
Proces powinien być dość podobny dla innych dystrybucji Linuksa i komputerów stacjonarnych, ponieważ większość popularnych menedżerów sesji Linuksa używa PAM. Prawdopodobnie będziesz musiał po prostu edytować inny plik za pomocą czegoś podobnego, aby aktywować odpowiedni moduł PAM.
Jeśli używasz szyfrowania katalogu domowego
Starsze wersje Ubuntu oferowały łatwe Opcja „szyfrowanie folderu domowego” który zaszyfrował cały katalog domowy, dopóki nie wprowadzisz hasła. W szczególności używa to ecryptfs. Ponieważ jednak oprogramowanie PAM domyślnie korzysta z pliku Google Authenticator przechowywanego w Twoim katalogu domowym, szyfrowanie koliduje z odczytem pliku przez PAM, chyba że przed zalogowaniem upewnisz się, że jest on dostępny w systemie w formie niezaszyfrowanej. README aby uzyskać więcej informacji na temat unikania tego problemu, jeśli nadal używasz wycofanych opcji szyfrowania katalogu domowego.
Nowoczesne wersje oferty Ubuntu szyfrowanie całego dysku zamiast tego, co będzie działać dobrze z powyższymi opcjami. Nie musisz robić nic specjalnego
Pomocy, zepsuło się!
Ponieważ właśnie włączyliśmy to dla logowania graficznego, powinno być łatwe do wyłączenia, jeśli powoduje to problem. Naciśnij kombinację klawiszy, na przykład Ctrl + Alt + F2, aby uzyskać dostęp do wirtualnego terminala i zaloguj się tam za pomocą 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 edytorze tekstu terminala. Posługiwać się nasz przewodnik po Nano aby usunąć linię i zapisać plik, a będziesz mógł ponownie zalogować się normalnie.
Możesz również wymusić, aby aplikacja Google Authenticator była wymagana w przypadku innych typów logowania - potencjalnie nawet wszystkich loginów do systemu - dodając wiersz „auth required pam_google_authenticator.so” do innych plików konfiguracyjnych PAM. Uważaj, jeśli to zrobisz. I pamiętaj, możesz chcieć dodać „nullok”, aby użytkownicy, którzy nie przeszli przez proces konfiguracji, nadal mogli się zalogować.
Dalszą dokumentację dotyczącą używania i konfigurowania tego modułu PAM można znaleźć w plik README oprogramowania w serwisie GitHub .