Влизане в работния плот и удостоверяване на потребителя на Linux

Въведение

This guide will walk you through the configuration of Linux to use FIDO Universal 2nd Factor, i.e. FIDO U2F with libpam-u2f and Nitrokey FIDO2.

Ако искате да влезете в компютъра си с помощта на Nitrokey Pro 2, Nitrokey Storage 2 и Nitrokey Старт можете да посетите наличните инструкции тук.

Изисквания

Инструкции

Метод на графичния интерфейс

  1. В долния ляв ъгъл кликнете върху Show Applications и въведете настройки в лентата за търсене, както следва:

    Изображение 1
  2. Превъртете надолу в дясната лента до Users

    Изображение2
  3. В левия ъгъл кликнете върху Unlock и това ще ви подкани да въведете паролата си

    Изображение3
  4. Изберете Administrator и въведете избраните от вас потребителско име и парола

    Изображение4
  5. След като завършите стъпка 4, трябва да сте готови

    Изображение5

Метод CLI

  1. Създайте потребител за архивиране и му дайте привилегии на root

    Можете да го направите с помощта на тези команди:

    $ sudo adduser <backup_user>
    $ sudo usermod -aG sudo <backup_user>
    

    В случай че предпочитате да настроите U2F за един потребител и сте блокирани от потребителската си сесия, все пак ще можете да влезете с <backup_user> и да продължите с поддръжката.

    Warning

    Следното ръководство може да ви блокира достъпа до компютъра. Трябва да сте наясно с тези рискове, тъй като се препоръчва инструкциите по-долу да се използват първо на вторичен компютър или след пълно архивиране.

    Възможно е да загубите достъп до данните си след конфигуриране на PAM модули.

  2. Настройте rules за разпознаване на Nitrokey FIDO2.

    Под /etc/udev/rules.d изтегляне 41-nitrokey.rules

    $ cd /etc/udev/rules.d/
    $ sudo wget https://raw.githubusercontent.com/Nitrokey/libnitrokey/master/data/41-nitrokey.rules
    

    И рестартирайте udev услугата

    $ sudo systemctl restart udev
    
  3. Инсталиране libpam-u2f

    В Ubuntu 20.04 е възможно да изтеглите директно libpam-u2f от официалните хранилища

    $ sudo apt install libpam-u2f
    

    Note

    Щракнете за повече опции

    • Като алтернатива можете да изградите libpam-u2f от Git.

    • За да проверите дали библиотеката е правилно инсталирана, въведете следната команда:

    $ file /lib/x86_64-linux-gnu/security/pam_u2f.so
    

    Изходът трябва да бъде нещо подобно на следното:

    /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
    
  4. Приготвяне на указателя

    Създаване на .config/Nitrokey/ в домашната директория

    $ mkdir ~/.config/Nitrokey
    

    И включете своя Nitrokey FIDO2.

    След като приключим с подготовката, можем да започнем да конфигурираме компютъра да използва Nitrokey FIDO2 за удостоверяване на втори фактор при влизане и sudo.

  5. Генериране на конфигурационния файл на U2F

    За да генерираме конфигурационния файл, ще използваме pamu2fcfg помощната програма, която се доставя с libpam-u2f. За удобство ще запишем директно изхода на полезната програма във файла u2f_keys под .config/Nitrokey. Първо включете своя Nitrokey FIDO2 (ако вече не сте го направили) и въведете следната команда:

    $ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
    

    След като изпълните горната команда, трябва да докоснете клавиша, докато той мига. След като го направите, pamu2fcfg ще добави към изхода си u2f_keys в следния формат:

    <username>:Zx...mw,04...0a
    

    Обърнете внимание, че изходът ще бъде много по-дълъг, но тук са премахнати чувствителните части. За по-добра сигурност и след като генерираме файла с конфигурацията, ще преместим директорията .config/Nitrokey под директорията etc/ с тази команда:

    $ sudo mv ~/.config/Nitrokey /etc
    

    Tip

    • Файлът под .config/Nitrokey трябва да бъде с име u2f_keys

    • Препоръчително е инструкциите да се тестват първо с един потребител. За тази цел предишната команда приема опцията -u, за да посочи потребител, както в примера по-долу:

      $ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
      
    • За конфигурация на отделни потребители трябва да посочите домашната директория в следващата стъпка или да не включвате опцията authfile в конфигурацията на PAM.

  6. Бекъп

    Тази стъпка не е задължителна, но е препоръчително да имате резервен ключ Nitrokey в случай на загуба, кражба или унищожаване на вашия FIDO ключ Nitrokey.

    За да настроите резервен ключ, повторете процедурата по-горе и използвайте pamu2fcfg -n. Това ще пропусне полето <username> и изходът може да бъде добавен към реда с вашия <username> по следния начин:

    <username>:Zx...mw,04...0a:xB...fw,04...3f
    
  7. Модифициране на Pluggable Authentication Module PAM

    Последната стъпка е конфигурирането на файловете на модула PAM в /etc/pam.d/. В това ръководство ще модифицираме файла common-auth, тъй като той обработва настройките за удостоверяване, които са общи за всички услуги, но са възможни и други варианти. Можете да промените файла със следната команда:

    $ cd /etc/pam.d
    $ sudo $editor common-auth
    

    И добавете следните редове в горната част на файла:

    #Nitrokey FIDO2 config
    auth    sufficient pam_u2f.so authfile=/etc/Nitrokey/u2f_keys cue [cue_prompt=Please touch the device.] prompt nouserok
    

    Tip

    • Тъй като използваме Централно картографиране за удостоверяване, трябва да посочим pam_u2f местоположението на файла, който да се използва с опцията authfile.

    • Ако често забравяте да поставите ключа, prompt опцията прави pam_u2f да отпечатва Insert your U2F device, then press ENTER. и ви дава възможност да поставите ключа Nitro.

    • If you would like to be prompted to touch the Nitrokey, cue option will make pam_u2f print Please touch the device. message. You can change the message in [cue_prompt=Please touch the device.].

    • nouserok ще гарантира, че все още можете да влизате в системата, като използвате потребителското име и паролата, но може да искате да премахнете това в даден момент, след като настройката заработи и не искате редовни влизания, базирани на потребителско име и парола.

    След като сме модифицирали common-auth, можем да запишем и да излезем от файла.

    Можете да тествате конфигурацията, като въведете sudo ls в терминала. Трябва да ви бъде изведено съобщението Please touch the device. и да имате подобен изход на терминала:

    nitrouser@nitrouser:~$ sudo ls
    [sudo] password for nitrouser:  Please touch the device.
    

    Можете също така да тествате конфигурацията си, като излезете от потребителската сесия и влезете отново. Подобен екран трябва да се покаже, след като изключите/включите отново Nitrokey FIDO2 и въведете паролата си:

    Изображение6

Употреба

След модификацията на модула PAM ще можете да тествате конфигурацията си веднага, но е препоръчително да рестартирате компютъра си и да изключите/завържете Nitrokey FIDO2.

След като сте тествали правилно инструкциите в това ръководство (и сте създали резервно копие), се препоръчва да използвате или required, или requisite контролен флаг вместо sufficient.

Флаговете required и requisite осигуряват по-строг контрол на достъпа и правят Nitrokey FIDO2 необходим за влизане и/или използване на конфигурираната услуга.

Ако имате нужда от повече информация за контролните флагове в конфигурационния ред PAM, можете да видите последния раздел на това ръководство, за да разберете разликата и последиците от използването на всеки от тях.

Модули PAM

Съществуват няколко файла с модули на PAM, които могат да бъдат модифицирани според вашите нужди:

  • Чрез модифициране на файла /etc/pam.d/common-auth ще можете да използвате Nitrokey FIDO за втори фактор на удостоверяване за графично влизане и sudo. Забележка: common-auth трябва да се модифицира, като се добави допълнителният конфигурационен ред в края на файла.

  • If you wish to use FIDO U2F authentication solely for Gnome’s graphic login, you might prefer to modify the/etc/pam.d/gdm-password

  • Алтернативно можете просто да промените файла /etc/pam.d/sudo, ако желаете да използвате FIDO U2F, когато използвате командата sudo.

Контролни флагове

В стъпка 7 използвахме контролния флаг sufficient, за да определим поведението на модула PAM, когато ключът Nitrokey е включен или не. Възможно е обаче да промените това поведение, като използвате следните контролни флагове:

  • required: Това е най-критичният флаг. Резултатът от модула трябва да е успешен, за да продължи удостоверяването. Този флаг може да ви блокира компютъра, ако нямате достъп до Nitrokey.

  • requisite: Подобно на required, но в случай че конкретен модул върне отказ, контролът се връща директно към приложението или към по-горния стек на PAM. Този флаг може също така да ви блокира компютъра, ако нямате достъп до Nitrokey.

  • sufficient: Резултатът от модула се пренебрегва, ако е неуспешен. Флагът sufficient се счита за безопасен за целите на тестването.

  • optional: Успехът или неуспехът на този модул е важен само ако той е единственият модул в стека, свързан с този тип услуга+. Флагът optional се счита за безопасен за използване с цел тестване.

Warning

  • Ако е зададено required или requisite, неуспехът на U2F удостоверяването ще доведе до неуспех на цялостното удостоверяване. Неуспехът ще настъпи, когато конфигурираният Nitrokey FIDO не е включен, изгубен или унищожен.

  • Ще загубите достъп до компютъра си, ако сте конфигурирали неправилно модула PAM и сте използвали флаговете required или requisite.

  • Ще загубите и възможността да използвате sudo, ако настроите Централно картографиране на удостоверяването и сте използвали флаговете required или requisite.