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.
sudo apt-get install libpam-u2f
Włóż do slotu USB pierwszy klucz Yubikey i uruchom poniższe komendy.
# 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.
pamu2fcfg -n >> ~/.config/Yubico/u2f_keys
Zmień ustawienia w pliku konfiguracyjnym sudo tak jak poniżej.
# 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.
# 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.