Linux jest powszechnie postrzegany jako system operacyjny wymagający hasła do wykonywania wielu podstawowych operacji. Dlatego wielu użytkowników uważa go za bardziej bezpieczny w porównaniu do innych systemów operacyjnych, chociaż nie jest to rozwiązanie doskonałe. Posiadanie mocnego hasła oraz właściwej polityki sudoer to dobre kroki, ale nie zawsze zapewniają pełną ochronę. W odpowiedzi na to, coraz więcej profesjonalistów z dziedziny bezpieczeństwa zaczęło implementować uwierzytelnianie dwuskładnikowe w systemach Linux.
W niniejszym artykule przyjrzymy się, jak aktywować uwierzytelnianie dwuskładnikowe w systemie Linux za pomocą Google Authenticator.
Instalacja
Aby korzystać z Google Authenticator, należy zainstalować odpowiednią wtyczkę pam. Używa się jej z GDM oraz innymi menedżerami logowania, które obsługują tę funkcjonalność. Oto kroki, które należy wykonać, aby zainstalować Google Authenticator na systemie Linux.
Przed rozpoczęciem konfiguracji wtyczki upewnij się, że masz zainstalowaną aplikację Google Authenticator na swoim urządzeniu mobilnym. Możesz ją pobrać z Sklepu Google Play lub Apple App Store.
Ubuntu
sudo apt install libpam-google-authenticator
Debian
sudo apt-get install libpam-google-authenticator
Arch Linux
W Arch Linux nie ma domyślnej obsługi modułu uwierzytelniania pam Google. Użytkownicy muszą pobrać i skompilować moduł z pakietu AUR. Możesz pobrać najnowszą wersję PKGBUILD lub skorzystać z ulubionego pomocnika AUR.
Fedora
sudo dnf install google-authenticator
OpenSUSE
sudo zypper install google-authenticator-libpam
Inne dystrybucje Linuxa
Dostępny jest również kod źródłowy Google Authenticator dla systemów Linux oraz wtyczka libpam, która została użyta w tym poradniku. Jeśli korzystasz z mniej popularnej dystrybucji, sprawdź tę stronę i postępuj zgodnie z zamieszczonymi tam instrukcjami, aby skompilować go ze źródła.
Konfiguracja Google Authenticator w systemie Linux
Aby wtyczka pam mogła współpracować z Google Authenticator, konieczne jest wprowadzenie zmian w pliku konfiguracyjnym. Aby to zrobić, uruchom terminal i wpisz:
sudo nano /etc/pam.d/common-auth
W pliku common-auth znajdziesz wiele komentarzy oraz wskazówek dotyczących ustawień uwierzytelniania. Zignoruj je i przewiń do sekcji „# tutaj są moduły na pakiet (blok „Podstawowy”)”. Przesuń kursor poniżej tego fragmentu i naciśnij Enter, aby utworzyć nowy wiersz. Następnie dodaj następującą linię:
auth required pam_google_authenticator.so
Po wprowadzeniu tej zmiany naciśnij CTRL + O, aby zapisać plik, a następnie CTRL + X, aby zamknąć edytor Nano.
Później wróć do terminala i wpisz „google-authenticator”. Otrzymasz zestaw pytań do odpowiedzi.
Pierwsze pytanie brzmi: „Czy chcesz, aby tokeny uwierzytelniania były oparte na czasie?”. Odpowiedz „tak”, naciskając y.
Po udzieleniu odpowiedzi na to pytanie narzędzie wyświetli nowy tajny klucz oraz kilka kodów awaryjnych. Zapisz je, ponieważ będą one niezbędne w przyszłości.
Odpowiedz na następne trzy pytania „tak”, „nie” i „nie”.
Ostatnie pytanie dotyczy ograniczenia szybkości, które, jeśli zostanie włączone, pozwoli na maksymalnie 3 próby logowania co 30 sekund. Z powodów bezpieczeństwa zaleca się odpowiedź „tak”, chociaż możesz odpowiedzieć „nie”, jeśli to ograniczenie nie jest dla Ciebie istotne.
Konfiguracja aplikacji Google Authenticator
Teraz, gdy strona Linuxa jest już skonfigurowana, czas na dostosowanie aplikacji Google Authenticator. Otwórz aplikację i wybierz opcję „wprowadź dostarczony klucz”. Pojawi się formularz, w którym należy wpisać dane konta.
Wypełnij pola: nazwę komputera, z którego korzystasz, oraz tajny klucz, który zapisałeś wcześniej. Po uzupełnieniu obu pól aplikacja Google Authenticator będzie gotowa do użycia.
Logowanie
Po skonfigurowaniu Google Authenticator na systemie Linux oraz na urządzeniu mobilnym, proces logowania powinien działać bez problemów. Wybierz użytkownika w GDM (lub LightDM). Po dokonaniu wyboru system poprosi o podanie kodu uwierzytelniającego. Otwórz aplikację Google Authenticator na swoim telefonie i wprowadź wyświetlony kod w menedżerze logowania.
Jeśli wprowadzony kod jest prawidłowy, system poprosi Cię o hasło użytkownika.
Warto zauważyć, że konfiguracja Google Authenticator w systemie Linux wpływa nie tylko na menedżera logowania. Teraz za każdym razem, gdy użytkownik próbuje uzyskać dostęp do uprawnień roota, sudo lub innych czynności wymagających hasła, konieczne będzie podanie kodu uwierzytelniającego.
Podsumowanie
Implementacja uwierzytelniania dwuskładnikowego na systemie Linux wprowadza dodatkową warstwę ochrony, która powinna być standardem. Po aktywowaniu tej opcji znacznie trudniej jest nieautoryzowanym osobom uzyskać dostęp do systemu.
Choć czasami dwa czynniki mogą być niewystarczające (na przykład w sytuacjach, gdy wystawca uwierzytelnienia działa z opóźnieniem), ogólnie rzecz biorąc, jest to bardzo korzystne uzupełnienie dla każdego menedżera pulpitu w systemie Linux.