Logowanie do pulpitu i uwierzytelnianie użytkowników systemu Linux¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
Wstęp¶
Ten przewodnik przeprowadzi Cię przez konfigurację Linuksa do korzystania z FIDO Universal 2nd Factor, czyli FIDO U2F z libpam-u2f i Nitrokey FIDO2 - Linux).
If you want to login to you computer using Nitrokey Pro 2, Nitrokey Storage 2 and Nitrokey Start you can visit the instructions available here.
Wymagania¶
Ubuntu 20.04 z Gnome Display Manager.
Nitrokey FIDO2 skonfigurowany według tych instrukcji.
Instrukcje¶
Metoda GUI¶
W lewym dolnym rogu kliknij przycisk
Show Applicationsi wpisz w pasku wyszukiwania następujące ustawienia:.
Przewiń w dół na prawym pasku do
Users.
w lewym rogu kliknij przycisk
Unlocki pojawi się monit o podanie hasła.
Wybierz
Administratori wprowadź wybraną nazwę użytkownika i hasło.
Po ukończeniu kroku 4 powinieneś być gotowy.
Metoda CLI¶
Utwórz użytkownika backupu i nadaj mu uprawnienia roota.
Można to zrobić za pomocą tych poleceń:
$ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user>
Jeśli wolisz skonfigurować U2F dla pojedynczego użytkownika i zostaniesz zablokowany w swojej sesji użytkownika, nadal będziesz mógł się zalogować za pomocą
<backup_user>i kontynuować konserwację.Ostrzeżenie
Poniższa instrukcja może potencjalnie zablokować dostęp do komputera. Należy być świadomym tego ryzyka, ponieważ zaleca się, aby najpierw skorzystać z poniższych instrukcji na komputerze pomocniczym lub po wykonaniu pełnej kopii zapasowej.
Możesz stracić dostęp do swoich danych po skonfigurowaniu ` modułów PAM <https://www.man7.org/linux/man-pages/man8/pam.8.html>`__.
Skonfiguruj
rulesdo rozpoznawania Nitrokey FIDO2.Under
/etc/udev/rules.ddownload41-nitrokey.rules$ cd /etc/udev/rules.d/ $ sudo wget https://raw.githubusercontent.com/Nitrokey/nitrokey-udev-rules/main/41-nitrokey.rules
I uruchom ponownie
udevusługę$ sudo systemctl restart udev
Instalacja
libpam-u2fNa Ubuntu 20.04 możliwe jest pobranie bezpośrednio
libpam-u2fz oficjalnych repozytoriów$ sudo apt install libpam-u2f
Informacja
Kliknij, aby zobaczyć więcej opcji
Alternatywnie możesz zbudować
libpam-u2fz Git.Aby sprawdzić, czy biblioteka została poprawnie zainstalowana, wpisz następujące polecenie:
$ file /lib/x86_64-linux-gnu/security/pam_u2f.so
Wyjście powinno wyglądać jak poniżej:
/lib/x86_64-linux-gnu/security/pam_u2f.so: \ ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),\ dynamically linked, BuildID[sha1]=1d55e1b11a97be2038c6a139579f6c0d91caedb1, stripped
Przygotowanie katalogu
Utwórz
.config/Nitrokey/w swoim katalogu domowym.$ mkdir ~/.config/Nitrokey
I podłącz swój Nitrokey FIDO2.
Po zakończeniu przygotowań, możemy rozpocząć konfigurację komputera, aby używać Nitrokey FIDO2 do uwierzytelniania 2-go czynnika przy logowaniu i
sudo.Generowanie pliku konfiguracyjnego U2F.
Do wygenerowania pliku konfiguracyjnego użyjemy narzędzia
pamu2fcfg, które jest dołączone dolibpam-u2f. Dla wygody, zapiszemy wyjście narzędzia bezpośrednio do plikuu2f_keyspod.config/Nitrokey. Najpierw podłącz swój Nitrokey FIDO2 (jeśli jeszcze tego nie zrobiłeś) i wprowadź następującą komendę:$ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
Once you run the command above, you will need to touch the device while it flashes. Once done,
pamu2fcfgwill append its output theu2f_keysin the following format:<username>:Zx...mw,04...0a
Uwaga, wyjście będzie znacznie dłuższe, ale wrażliwe części zostały tutaj usunięte. Dla lepszego bezpieczeństwa i po wygenerowaniu pliku konfiguracyjnego, przeniesiemy katalog
.config/Nitrokeypod katalogetc/za pomocą tej komendy:$ sudo mv ~/.config/Nitrokey /etc
Wskazówka
Plik pod
.config/Nitrokeymusi mieć nazwęu2f_keys.Zaleca się, aby najpierw przetestować instrukcje z pojedynczym użytkownikiem. W tym celu poprzednie polecenie przyjmuje opcję
-u, aby określić użytkownika, jak w poniższym przykładzie:$ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
Dla indywidualnej konfiguracji użytkownika należy w następnym kroku wskazać na katalog domowy, lub nie włączać opcji
authfilew konfiguracji PAM.
Backup
Ten krok jest opcjonalny, jednak zaleca się posiadanie zapasowego Nitrokey w przypadku utraty, kradzieży lub zniszczenia Twojego Nitrokey FIDO.
Aby skonfigurować klucz zapasowy, powtórz powyższą procedurę i użyj pola
pamu2fcfg -n. Spowoduje to pominięcie pola<username>, a dane wyjściowe można dołączyć do wiersza z twoim<username>w ten sposób:<username>:Zx...mw,04...0a:xB...fw,04...3f
Modyfikuj Pluggable Authentication Module
PAM.Ostatnim krokiem jest skonfigurowanie plików modułu PAM pod
/etc/pam.d/. W tym przewodniku zmodyfikujemy plikcommon-auth, ponieważ obsługuje on ustawienia uwierzytelniania, które są wspólne dla wszystkich usług, ale możliwe są też inne opcje. Możesz zmodyfikować ten plik za pomocą następującego polecenia:$ cd /etc/pam.d $ sudo $editor common-auth
I dodaj następujące linie na górze pliku:
#Nitrokey FIDO2 config auth sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue [cue_prompt=Please touch the device.] prompt nouserok
Wskazówka
Ponieważ używamy Central Authentication Mapping, musimy podać
pam_u2flokalizację pliku do użycia z opcjąauthfile.Jeśli często zapominasz włożyć klucz,
promptopcja sprawia, żepam_u2fdrukujeInsert your U2F device, then press ENTER.i daje Ci szansę włożyć Nitrokey.If you would like to be prompted to touch the Nitrokey,
cueoption will makepam_u2fprintPlease touch the device.message. You can change the message in[cue_prompt=Please touch the device.].nouserok zapewni, że nadal będziesz mógł się zalogować używając nazwy użytkownika i hasła, możesz chcieć to usunąć w pewnym momencie, gdy konfiguracja będzie działać i nie będziesz chciał regularnych logowań opartych na nazwie użytkownika i haśle.
Gdy już zmodyfikowaliśmy
common-auth, możemy zapisać i wyjść z pliku.Możesz przetestować konfigurację wpisując
sudo lsw terminalu. Powinieneś otrzymać komunikatPlease touch the device.i mieć podobne wyjście w terminalu:nitrouser@nitrouser:~$ sudo ls [sudo] password for nitrouser: Please touch the device.
Możesz również przetestować swoją konfigurację wylogowując się z sesji użytkownika i logując się ponownie. Podobny ekran powinien zostać wyświetlony po odłączeniu/ponownym podłączeniu Nitrokey FIDO2 i wpisaniu hasła:
Zastosowanie¶
Po modyfikacji modułu PAM, będziesz mógł od razu przetestować swoją konfigurację, ale zalecane jest ponowne uruchomienie komputera i odłączenie/wyłączenie Nitrokey FIDO2.
Po prawidłowym przetestowaniu instrukcji zawartych w tym przewodniku (i utworzeniu kopii zapasowej), zalecane jest użycie flagi kontrolnej required lub requisite zamiast sufficient.
Flagi required i requisite zapewniają ściślejszą kontrolę dostępu i sprawią, że Nitrokey FIDO2 będzie niezbędny do zalogowania się i/lub korzystania ze skonfigurowanej usługi.
Jeśli potrzebujesz więcej informacji o Control Flags w linii konfiguracyjnej PAM, możesz zobaczyć ostatnią sekcję tego przewodnika, aby zrozumieć różnicę i implikacje używania każdego z nich.
Moduły PAM¶
Istnieje kilka plików modułów PAM, które mogą być modyfikowane zgodnie z Twoimi potrzebami:
Modyfikując plik
/etc/pam.d/common-auth, będziesz mógł użyć Nitrokey FIDO do uwierzytelniania drugiego czynnika dla logowania graficznego isudo. Uwaga:common-authpowinien być zmodyfikowany przez dodanie dodatkowej linii konfiguracyjnej na końcu pliku.If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the
/etc/pam.d/gdm-passwordAlternatywnie możesz po prostu zmodyfikować plik
/etc/pam.d/sudo, jeśli chcesz używać FIDO U2F podczas korzystania z poleceniasudo.
Flagi kontrolne¶
W kroku 7 użyliśmy flagi kontrolnej sufficient aby określić zachowanie modułu PAM gdy Nitrokey jest podłączony lub nie. Jednakże możliwa jest zmiana tego zachowania poprzez użycie następujących flag kontrolnych:
required: To jest najbardziej krytyczna flaga. Wynik modułu musi być pomyślny, aby uwierzytelnianie mogło być kontynuowane. Ta flaga może zablokować Twój komputer, jeśli nie masz dostępu do Nitrokey.requisite: Podobne dorequired, jednak w przypadku, gdy określony moduł zwraca błąd, kontrola jest zwracana bezpośrednio do aplikacji, lub do nadrzędnego stosu PAM. Ta flaga może także zablokować Cię z Twojego komputera, jeśli nie masz dostępu do Nitrokey.sufficient: Wynik modułu jest ignorowany, jeśli się nie powiedzie. Flagasufficientuważana za bezpieczną do celów testowych.optional: Sukces lub porażka tego modułu jest ważna tylko wtedy, gdy jest to jedyny moduł w stosie związany z tym service+type. Flagaoptionaljest uważana za bezpieczną do użycia w celach testowych.
Ostrzeżenie
Jeśli ustawiono
requiredlubrequisite, niepowodzenie uwierzytelnienia U2F spowoduje niepowodzenie całego uwierzytelnienia. Niepowodzenie nastąpi, gdy skonfigurowany Nitrokey FIDO nie zostanie podłączony, zgubiony lub zniszczony.Stracisz dostęp do swojego komputera, jeśli źle skonfigurowałeś moduł PAM i użyłeś flag
requiredlubrequisite.Utracisz również możliwość używania
sudo, jeśli ustawiłeś Central Authentication Mapping i użyto flagrequiredlubrequisite.