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

(Nitrokey FIDO U2F - Linux)

Въведение#

Това ръководство ще ви запознае с конфигурацията на Linux за използване на FIDO Universal 2nd Factor, т.е. FIDO U2F с libpam-u2f и Nitrokey FIDO2.

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

Изисквания#

Инструкции#

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

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

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

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

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

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

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

Метод CLI#

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

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

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

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

Warning

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

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

  1. Настройте 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
  1. Инсталиране 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
  1. Приготвяне на указателя

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

$ mkdir ~/.config/Nitrokey

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

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

  1. Генериране на конфигурационния файл на 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.

  1. Бекъп

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

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

<username>:Zx...mw,04...0a:xB...fw,04...3f
  1. Модифициране на 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 prompt nouserok

Tip

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

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

  • Ако искате да бъдете подканени да докоснете ключа Nitrokey, cue опцията ще направи pam_u2f печат на 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 трябва да се модифицира, като се добави допълнителният конфигурационен ред в края на файла.

  • Ако желаете да използвате удостоверяването FIDO U2F само за графичното влизане в Gnome, може да предпочетете да промените/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.