Prisijungimas prie darbalaukio ir „Linux“ naudotojo autentiškumo nustatymas

Įvadas

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.

Jei norite prisijungti prie kompiuterio naudodami „Nitrokey Pro 2“, Nitrokey Storage 2 ir Nitrokey Pradėti galite apsilankę instrukcijose, kurias rasite čia.

Reikalavimai

  • Ubuntu 20.04 su „Gnome Display Manager“.

  • Nitrokey FIDO2 sukonfigūruotas pagal šias instrukcijas.

Instrukcijos

GUI metodas

  1. Kairiajame apatiniame kampe spustelėkite Show Applications ir paieškos juostoje įveskite šiuos nustatymus:.

    vaizdas1
  2. Pereikite dešinėje juostoje žemyn iki Users

    vaizdas2
  3. Kairiajame kampe spustelėkite Unlock ir tuomet bus paprašyta nurodyti slaptažodį.

    vaizdas3
  4. Pasirinkite Administrator ir įveskite pasirinktą naudotojo vardą ir slaptažodį

    vaizdas4
  5. Kai baigsite 4 žingsnį, turėtumėte būti baigę

    vaizdas5

CLI metodas

  1. Sukurkite atsarginės kopijos naudotoją ir suteikite jam root teises

    Tai galite padaryti naudodami šias komandas:

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

    Jei pageidaujate nustatyti U2F vienam naudotojui ir esate užblokuotas iš naudotojo seanso, vis tiek galėsite prisijungti naudodami <backup_user> ir tęsti techninę priežiūrą.

    Įspėjimas

    Šis vadovas gali užblokuoti jūsų kompiuterį. Turėtumėte žinoti apie šią riziką, nes rekomenduojama toliau pateiktus nurodymus pirmiausia naudoti antriniame kompiuteryje arba atlikus visą atsarginę kopiją.

    Sukonfigūravę PAM modulius galite prarasti prieigą prie savo duomenų.

  2. Nustatykite ``rules``**, kad atpažintų „Nitrokey FIDO2“**.

    Pagal /etc/udev/rules.d atsisiųsti 41-nitrokey.rules

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

    Ir iš naujo paleiskite udev paslaugą

    $ sudo systemctl restart udev
    
  3. Įdiegimas libpam-u2f

    Ubuntu 20.04 galima atsisiųsti tiesiogiai libpam-u2f iš oficialių saugyklų

    $ sudo apt install libpam-u2f
    

    Pastaba

    Spustelėkite, jei norite daugiau parinkčių

    • Arba galite sukurti libpam-u2fGit.

    • Norėdami patikrinti, ar biblioteka tinkamai įdiegta, įveskite šią komandą:

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

    Išvestis turėtų būti tokia:

    /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. Parengti katalogą

    Sukurkite .config/Nitrokey/ savo namų kataloge

    $ mkdir ~/.config/Nitrokey
    

    Ir prijunkite „Nitrokey FIDO2“.

    Baigę paruošiamuosius darbus, galime pradėti konfigūruoti kompiuterį, kad jis naudotų „Nitrokey FIDO2“ 2-ojo veiksnio autentifikavimui prisijungiant ir sudo.

  5. Generuoti U2F konfigūracijos failą

    Konfigūracijos failui sukurti naudosime pamu2fcfg įrankį, kuris pateikiamas kartu su libpam-u2f. Patogumo dėlei šios programos išvestį tiesiogiai įrašysime į ``u2f_keys failą, esantį .config/Nitrokey. Pirmiausia prijunkite „Nitrokey FIDO2“ (jei dar neprijungėte) ir įveskite šią komandą:

    $ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
    

    Paleidę pirmiau pateiktą komandą, turėsite paliesti klavišą, kol jis mirksi. Tai atlikus, pamu2fcfg pridės savo išvestį u2f_keys tokiu formatu:

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

    Atkreipkite dėmesį, kad išvestis bus daug ilgesnė, tačiau čia pašalintos jautrios dalys. Dėl didesnio saugumo ir sugeneravę konfigūracijos failą, šia komanda perkelsime .config/Nitrokey katalogą į </x id="199"></x> katalogą:

    $ sudo mv ~/.config/Nitrokey /etc
    

    Patarimas

    • Failas po .config/Nitrokey turi būti pavadintas </x id="52"></x>.

    • Pirmiausia rekomenduojama instrukcijas išbandyti su vienu naudotoju. Šiuo tikslu ankstesnėje komandoje naudojama -u parinktis naudotojui nurodyti, kaip toliau pateiktame pavyzdyje:

      $ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
      
    • Atskiro naudotojo konfigūravimui kitame žingsnyje turėtumėte nurodyti namų katalogą arba neįtraukti authfile parinkties į PAM konfigūraciją.

  6. Atsarginė kopija

    Šis veiksmas neprivalomas, tačiau rekomenduojama turėti atsarginę „Nitrokey“ kopiją, jei prarastumėte, pavogtumėte ar sunaikintumėte savo „Nitrokey“ FIDO.

    Norėdami nustatyti atsarginį raktą, pakartokite pirmiau aprašytą procedūrą ir naudokite pamu2fcfg -n. Taip bus praleistas laukas <username>, o išvestį galima pridėti prie eilutės su jūsų <username> taip:

    <username>:Zx...mw,04...0a:xB...fw,04...3f
    
  7. Pakeisti prijungiamą autentifikavimo modulį PAM

    Paskutinis žingsnis - sukonfigūruoti PAM modulio failus /etc/pam.d/. Šiame vadove modifikuosime common-auth failą, nes jame tvarkomi visoms paslaugoms bendri autentifikavimo nustatymai, tačiau galimi ir kiti variantai. Šį failą galite keisti naudodami šią komandą:

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

    Failo viršuje įrašykite šias eilutes:

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

    Patarimas

    • Kadangi naudojame centrinį autentifikavimo atvaizdavimą, reikia nurodyti pam_u2f failo vietą, kurią reikia naudoti naudojant authfile parinktį.

    • Jei dažnai pamirštate įkišti raktą, prompt parinktis pam_u2f spausdina Insert your U2F device, then press ENTER. ir suteikia jums galimybę įdėti „Nitrokey“ raktą.

    • 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 užtikrins, kad vis dar galėsite prisijungti naudodami vartotojo vardą ir slaptažodį; galbūt norėsite tai pašalinti, kai sąranka pradės veikti ir nenorėsite įprastų prisijungimų, pagrįstų vartotojo vardu ir slaptažodžiu.

    Pakeitę common-auth, galime išsaugoti ir išeiti iš failo.

    Konfigūraciją galite išbandyti terminale įvesdami sudo ls. Turėtumėte gauti pranešimą Please touch the device. ir gauti panašią išvestį terminale:

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

    Konfigūraciją taip pat galite išbandyti išeidami iš naudotojo seanso ir vėl prisijungdami. Panašus ekranas turėtų būti rodomas, kai atjungsite / vėl prijunkite „Nitrokey FIDO2“ ir įvesite slaptažodį:

    vaizdas6

Naudojimas

Po PAM modulio modifikavimo galėsite iš karto išbandyti konfigūraciją, tačiau rekomenduojama perkrauti kompiuterį ir atjungti / prijungti „Nitrokey FIDO2“.

Tinkamai išbandę šiame vadove pateiktus nurodymus (ir sukūrę atsarginę kopiją), rekomenduojama naudoti required arba </x>`requisite valdymo vėliavą vietoj sufficient.

Žymos </x id="12"></x> ir </x id="29"></x> užtikrina griežtesnę prieigos kontrolę, todėl norint prisijungti ir (arba) naudotis sukonfigūruota paslauga, būtina naudoti „Nitrokey FIDO2“.

Jei reikia daugiau informacijos apie valdymo žymes PAM konfigūracijos eilutėje, galite peržiūrėti paskutinį šio vadovo skyrių, kad suprastumėte skirtumus ir kiekvienos iš jų naudojimo pasekmes.

PAM moduliai

Yra keli PAM modulių failai, kuriuos galima keisti pagal savo poreikius:

  • Pakeitę </x id="15"></x> failą, galėsite naudoti „Nitrokey FIDO“ 2-ojo faktoriaus autentifikavimui grafiniam prisijungimui ir sudo. Pastaba: common-auth reikėtų pakeisti pridedant papildomą konfigūracijos eilutę failo pabaigoje.

  • 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

  • Arba galite tiesiog pakeisti /etc/pam.d/sudo failą, jei norite naudoti FIDO U2F, kai naudojate sudo komandą.

Valdymo vėliavos

7 žingsnyje naudojome sufficient kontrolinę vėliavėlę, kad nustatytume PAM modulio elgseną, kai „Nitrokey“ yra prijungtas arba ne. Tačiau šią elgseną galima pakeisti naudojant šias valdymo vėliavėles:

  • required: Tai svarbiausia vėliava. Modulio rezultatas turi būti sėkmingas, kad autentifikavimas būtų tęsiamas. Ši vėliava gali užblokuoti jūsų kompiuterį, jei neturite prieigos prie „Nitrokey“.

  • requisite: Panašiai kaip required, tačiau tuo atveju, kai konkretus modulis grąžina nesėkmę, valdymas tiesiogiai grąžinamas programai arba aukštesniajam PAM kaminui. Ši vėliava taip pat gali užblokuoti kompiuterį, jei neturite prieigos prie „Nitrokey“.

  • sufficient: Modulio rezultatas ignoruojamas, jei jis nepavyksta. sufficient vėliava laikoma saugia testavimo tikslais.

  • optional: Šio modulio sėkmė ar nesėkmė svarbi tik tuo atveju, jei jis yra vienintelis kamino modulis, susijęs su šiuo paslaugos+tipu. optional vėliava laikoma saugia naudoti testavimo tikslais.

Įspėjimas

  • Jei nustatyta required arba requisite, nepavykus U2F autentifikavimui, nepavyksta atlikti viso autentifikavimo. Nesėkmė įvyks, kai sukonfigūruotas „Nitrokey FIDO“ nebus prijungtas, prarastas arba sunaikintas.

  • Jei neteisingai sukonfigūravote PAM modulį ir naudojote required arba requisite vėliavėles, neteksite prieigos prie kompiuterio.

  • Taip pat neteksite galimybės naudoti sudo, jei nustatysite centrinį autentifikavimo atvaizdavimą. ir naudojote required arba </x>`requisite vėliavėles.