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

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

active

inactive

inactive

active

inactive

inactive

active

Въведение

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.