Klucz sprzętowy Yubikey w dystrybucjach Linux opartych na Debianie #1

W tym poście przedstawię, w jaki sposób zabezpieczyć wykonywanie komend sudo i proces logowania w dystrybucjach Linux opartych na Debianie. W pierwszej kolejności trzeba zaopatrzyć się w przynajmniej dwa klucze Yubikey z funkcją OTP. Pierwszy klucz będzie służył do codziennej pracy, a drugi stanowić zapas w przypadku utraty pierwszego. Trzeba pamiętać o tym, że jeżeli oba klucze zostaną utracone, zalogowanie się do systemu lub uruchomienie komendy sudo będzie niemożliwe. OTP jest rodzajem jednorazowego hasła, które generuje Yubikey po dotknięciu lub włożeniu do slotu USB. Więcej informacji o funkcji OTP można znaleźć na stronie Yubico OTP.

Zabezpieczenie komendy sudo

Otwórz terminal i zainstaluj pakiet libpam-u2f.

Linux console
sudo apt-get install libpam-u2f

Włóż do slotu USB pierwszy klucz Yubikey i uruchom poniższe komendy.

Linux console
# Folder jest już prawdopodobnie założony po instalacji libpam-u2f.
mkdir -p ~/.config/Yubico

# Dodawanie pierwszego klucza Yubikey.
pamu2fcfg > ~/.config/Yubico/u2f_keys

Włóż do slotu kolejny klucz Yubikey i dodaj go.

Linux console
pamu2fcfg -n >> ~/.config/Yubico/u2f_keys

Zmień ustawienia w pliku konfiguracyjnym sudo tak jak poniżej.

Linux console
# Modyfikacja pliku sudo.
nano /etc/pam.d/sudo

# Dodaj ten wpis po linii "@include common-auth".
auth    required    pam_u2f.so

To wszystko! Od teraz każda komenda sudo będzie musiała być zatwierdzona przez dotknięcie przycisku na kluczu Yubikey.

Wymaganie klucza Yubikey przy logowaniu.

Jeśli chciałbyś zabezpieczyć proces logowania za pomocą klucza Yubikey, to należy dodać go tak jak to opisano w poprzednio i zmodyfikować plik konfiguracyjny gdm-password.

Linux console
# Modyfikacja pliku gdm-password.
sudo nano /etc/pam.d/gdm-password

# Dodaj ten wpis po linii "@include common-auth".
auth required pam_u2f.so

Od tej pory każda próba logowania do systemu musi być potwierdzona przez dotknięcie przycisku Yubikey.

Leave a comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Go to top