Влизане в работния плот и удостоверяване на потребителя на 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 Старт можете да посетите наличните инструкции тук.
Изисквания#
Ubuntu 20.04 с Gnome Display Manager.
Nitrokey FIDO2 е конфигуриран, като следвате тези инструкции.
Инструкции#
Метод на графичния интерфейс#
В долния ляв ъгъл кликнете върху
Show Applications
и въведете настройки в лентата за търсене, както следва:Превъртете надолу в дясната лента до
Users
В левия ъгъл кликнете върху
Unlock
и това ще ви подкани да въведете паролата сиИзберете
Administrator
и въведете избраните от вас потребителско име и паролаСлед като завършите стъпка 4, трябва да сте готови
Метод CLI#
Създайте потребител за архивиране и му дайте привилегии на root
Можете да го направите с помощта на тези команди:
$ sudo adduser <backup_user> $ sudo usermod -aG sudo <backup_user>
В случай че предпочитате да настроите U2F за един потребител и сте блокирани от потребителската си сесия, все пак ще можете да влезете с
<backup_user>
и да продължите с поддръжката.Warning
Следното ръководство може да ви блокира достъпа до компютъра. Трябва да сте наясно с тези рискове, тъй като се препоръчва инструкциите по-долу да се използват първо на вторичен компютър или след пълно архивиране.
Възможно е да загубите достъп до данните си след конфигуриране на PAM модули.
Настройте
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
Инсталиране
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
Приготвяне на указателя
Създаване на
.config/Nitrokey/
в домашната директория$ mkdir ~/.config/Nitrokey
И включете своя Nitrokey FIDO2.
След като приключим с подготовката, можем да започнем да конфигурираме компютъра да използва Nitrokey FIDO2 за удостоверяване на втори фактор при влизане и
sudo
.Генериране на конфигурационния файл на 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.
Бекъп
Тази стъпка не е задължителна, но е препоръчително да имате резервен ключ Nitrokey в случай на загуба, кражба или унищожаване на вашия FIDO ключ Nitrokey.
За да настроите резервен ключ, повторете процедурата по-горе и използвайте
pamu2fcfg -n
. Това ще пропусне полето<username>
и изходът може да бъде добавен към реда с вашия<username>
по следния начин:<username>:Zx...mw,04...0a:xB...fw,04...3f
Модифициране на 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 и въведете паролата си:
Употреба#
След модификацията на модула 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
.