W tym przewodniku opisano, jak zabezpieczyć lokalne logowanie do systemu Linux za pomocą funkcji U2F używając kluczy YubiKeys lub key-id.
1. Wstęp
Uwierzytelnianie dwuskładnikowe (2FA) dodaje dodatkową warstwę zabezpieczeń, praktycznie niemożliwą do złamania. Podczas logowania system wspierający sprzętowe klucze bezpieczeństwa poprosi o włożenie jednego z nich do portu USB oraz dotknięcia magicznego przycisku, który odpowiada za wymiany kluczy kryptograficznych podczas weryfikacji. Ta fizyczna obecność klucza sprzętowego jest wymogiem uwierzytelniania dwuskładnikowego z użyciem kluczy Yubikey.
2 Instalowanie wymaganego oprogramowania
- Aby upewnić się, że masz najnowsze wersje oprogramowania Yubico na Ubuntu (lub dystrybucji opartych na Ubuntu), musisz włączyć Yubico PPA. Aby to zrobić, wykonaj poniższe czynności. Jeśli używasz innej dystrybucji Linuksa, możesz sprawdzić repozytorium pakietów swojej dystrybucji dla oprogramowania Yubico lub skompilować oprogramowanie z kodu źródłowego.
- Otwórz Terminal
- Uruchom:
sudo add-apt-repository ppa:yubico/stable && sudo apt-get update
- Po wyświetleniu monitu naciśnij klawisz Enter, aby potwierdzić dodanie PPA.
- Otwórz Terminal. Teraz instalujemy niezbędne narzędzie.
- Uruchom:
sudo apt-get install libpam-u2f
3 Powiązanie kluczy U2F z kontem
- Otwórz Terminal .
- Włóż swój klucz U2F.
- Tworzymy katalog Yubico
mkdir -p ~/.config/Yubico
- Dodajemy 1 klucz sprzętowy:
pamu2fcfg > ~/.config/Yubico/u2f_keys
- Gdy urządzenie zacznie migać, dotknij przycisku, aby potwierdzić skojarzenie.
- Jeżeli masz więcej urządzeń wykonaj następującą czynność przy każdym z nich:
pamu2fcfg -n >> ~/.config/Yubico/u2f_keys
- Gdy urządzenie zacznie migać, dotknij przycisku, aby potwierdzić skojarzenie.
4 Konfiguracja systemu do korzystania z U2F
4.1 Konfiguracja testowa za pomocą polecenia Sudo
W tej sekcji opisano, jak wymagać YubiKey podczas korzystania z polecenia sudo.
- Otwórz Terminal .
- Uruchom:
sudo nano /etc/pam.d/sudo
- Dodaj poniższy wiersz po wierszu „@include common-auth”.
auth required pam_u2f.so
- Naciśnij Ctrl + O, a następnie Enter, aby zapisać plik. Upewnij się, że nie zamykasz okna Terminala, w przeciwnym razie nie będziesz w stanie cofnąć zmian.
- Usuń urządzenie (klucz) z komputera.
- Otwórz terminal w nowym oknie.
- W nowym terminalu uruchom:
sudo echo test
Po wyświetleniu monitu wprowadź hasło i naciśnij klawisz Enter .
Nawet z poprawnym hasłem uwierzytelnianie powinno się nie powieść,
ponieważ klucz U2F nie jest podłączony do portu USB. Jeśli uwierzytelnienie
powiedzie się bez klucza U2F, oznacza to, że moduł U2F PAM nie
został zainstalowany lub wpisano literówkę w zmianach wprowadzonych w /etc/pam.d/sudo - Włóż urządzenie.
- Otwórz nowy terminal i ponownie uruchom
sudo echo test
- Po wyświetleniu monitu wprowadź hasło i naciśnij klawisz Enter . Następnie dotknij przycisku na kluczu U2F, gdy zacznie migać.
Gratulacje! Jeśli tym razem hasło zostało zaakceptowane, skonfigurowałeś system poprawnie i możesz przejść do następnej sekcji dotyczącej wymagania klucza U2F do logowania. Uwaga: jeśli nie chcesz wymagać klucza U2F do uruchomienia polecenia sudo , usuń wiersz dodany do pliku:
/etc/pam.d/sudo
4.2 Konfiguracja systemu tak, aby wymagał klucza YubiKey do logowania
Otwórz Terminal.
Jeśli twój system to Ubuntu 17.10 lub nowszy, uruchom:
sudo nano /etc/pam.d/gdm-password
Jeśli twój system to Ubuntu 17.04 lub starszy, uruchom:
sudo nano /etc/pam.d/lightdm
Dodaj poniższy wiersz po wierszu „@include common-auth”.
auth required pam_u2f.so
Naciśnij Ctrl + X, a następnie Enter, aby zapisać i zamknąć plik.
Od tej chwili do zalogowania się na dowolne konto użytkownika w systemie będzie wymagany osobisty klucz sprzętowy U2F który przed chwilą skonfigurowałeś.
Możesz to sprawdzić logując się ponownie do systemu.
Uwaga: klucze U2F firmy key-id również działają na bibliotekach Yubico są tak samo bezpieczne a można je kupić dużo taniej w sklepie SmartCardFocus.
Jedynym mankamentem kluczy key-id jest brak możliwości logowania do systemu windows (przy próbie jego dodania do konta microsoft klucz nie zostaje rozpoznany).
Nie polecam kluczy U2F chińskich marek.