Asztali bejelentkezés és Linux felhasználói hitelesítés

Bevezetés

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.

Ha a Nitrokey Pro 2 segítségével szeretne bejelentkezni a számítógépére, Nitrokey Storage 2 és Nitrokey Indítás a itt elérhető útmutatót tekintheti meg.

Követelmények

Utasítások

GUI módszer

  1. A bal alsó sarokban kattintson a Show Applications és írja be a következő beállításokat a keresősávba:

    img1
  2. Görgessen lefelé a jobb oldali sávban Users

    img2
  3. A bal sarokban kattintson a Unlock és ez kéri a jelszavát.

    img3
  4. Válassza ki Administrator és adja meg az Ön által választott felhasználónevet és jelszót.

    img4
  5. Ha befejezted a 4. lépést, akkor kész is vagy

    img5

CLI módszer

  1. Hozzon létre egy biztonsági mentési felhasználót, és adjon neki root jogosultságokat

    Ezt a következő parancsok segítségével teheti meg:

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

    Abban az esetben, ha az U2F-et inkább egyetlen felhasználó számára szeretné beállítani, és ki van zárva a felhasználói munkamenetből, akkor is be tud jelentkezni a <backup_user> segítségével, és folytathatja a karbantartást.

    Figyelem

    Az alábbi útmutató potenciálisan kizárhatja Önt a számítógépéből. Tisztában kell lennie ezekkel a kockázatokkal, mivel ajánlott először egy másodlagos számítógépen, vagy egy teljes biztonsági mentés után használni az alábbi utasításokat.

    A PAM modulok konfigurálása után elveszítheti az adataihoz való hozzáférést.

  2. Elhelyezze a rules a Nitrokey FIDO2 felismerésére.

    Under /etc/udev/rules.d letöltés 41-nitrokey.rules

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

    És indítsa újra a udev szolgáltatást.

    $ sudo systemctl restart udev
    
  3. Telepítés libpam-u2f

    Az Ubuntu 20.04-en közvetlenül letölthető libpam-u2f a hivatalos repos-ból.

    $ sudo apt install libpam-u2f
    

    Megjegyzés

    Kattintson a további lehetőségekért

    • Alternatívaként a libpam-u2f-t a Git-ből is építheted.

    • A könyvtár megfelelő telepítésének ellenőrzéséhez adja meg a következő parancsot:

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

    A kimenetnek a következőképp kell kinéznie:

    /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. Készítse elő a könyvtárat

    Hozzon létre .config/Nitrokey/<x> a home könyvtárában.

    $ mkdir ~/.config/Nitrokey
    

    És csatlakoztassa a Nitrokey FIDO2-t.

    Ha végeztünk az előkészületekkel, elkezdhetjük konfigurálni a számítógépet a Nitrokey FIDO2 használatára a 2. faktoros hitelesítéshez a bejelentkezéskor és sudo.

  5. Generálja az U2F konfigurációs fájlt

    A konfigurációs fájl létrehozásához a pamu2fcfg segédprogramot fogjuk használni, amely a libpam-u2f csomagban található. Az egyszerűség kedvéért a segédprogram kimenetét közvetlenül a u2f_keys fájlba írjuk a .config/Nitrokey alá. Először csatlakoztassa a Nitrokey FIDO2-t (ha még nem tette meg), és írja be a következő parancsot:

    $ pamu2fcfg > ~/.config/Nitrokey/u2f_keys
    

    Miután futtatta a fenti parancsot, meg kell érintenie a billentyűt, miközben az villog. Ha ez megtörtént, a pamu2fcfg a kimenetét a u2f_keys<x> kimenetéhez csatolja a következő formátumban:

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

    Figyelem, a kimenet sokkal hosszabb lesz, de az érzékeny részeket itt eltávolítottuk. A nagyobb biztonság érdekében, és miután a config fájl generálódott, a .config/Nitrokey könyvtárat a etc/ könyvtár alá fogjuk áthelyezni ezzel a paranccsal:

    $ sudo mv ~/.config/Nitrokey /etc
    

    Javaslat

    • A .config/Nitrokey alatti fájl neve u2f_keys kell legyen.

    • Javasoljuk, hogy először egyetlen felhasználóval tesztelje az utasításokat. Ehhez az előző parancs a -u opciót veszi fel egy felhasználó megadására, mint az alábbi példában:

      $ pamu2fcfg -u <username> > ~/.config/Nitrokey/u2f_keys
      
    • Egyéni felhasználói konfiguráció esetén a következő lépésben a home könyvtárra kell mutatni, vagy nem kell a PAM konfigurációban az authfile opciót megadni.

  6. Backup

    Ez a lépés nem kötelező, azonban ajánlatos, hogy legyen egy tartalék Nitrokey-je arra az esetre, ha a Nitrokey FIDO elvesztése, ellopása vagy megsemmisülése esetén.

    A tartalékkulcs beállításához ismételje meg a fenti eljárást, és használja a pamu2fcfg -n parancsot. Ezáltal a <username> mező kimarad, és a kimenet a <username> sorhoz csatolható, így:

    <username>:Zx...mw,04...0a:xB...fw,04...3f
    
  7. Módosítsa a csatlakoztatható hitelesítési modult PAM

    Az utolsó lépés a PAM modul fájlok konfigurálása a /etc/pam.d/ alatt. Ebben az útmutatóban a common-auth fájlt fogjuk módosítani, mivel ez kezeli a minden szolgáltatásnál közös hitelesítési beállításokat, de más lehetőségek is lehetségesek. A fájlt a következő paranccsal módosíthatja:

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

    A fájl tetejére pedig írja be a következő sorokat:

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

    Javaslat

    • Mivel a központi hitelesítési leképezést használjuk, meg kell adnunk a pam_u2f opcióval a authfile fájl helyét.

    • Ha gyakran elfelejti behelyezni a kulcsot, prompt opcióval a pam_u2f kiírja a Insert your U2F device, then press ENTER. és lehetőséget ad a Nitrokey behelyezésére.

    • 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.].

    • A nouserok biztosítja, hogy továbbra is be tudjon jelentkezni a felhasználónév és jelszó használatával, lehet, hogy ezt egy bizonyos ponton el akarja távolítani, ha a beállítás működik, és nem akar rendszeres felhasználónév & jelszó alapú bejelentkezést.

    Miután módosítottuk a common-auth, menthetjük és kiléphetünk a fájlból.

    A konfigurációt a sudo ls beírásával tesztelheti a terminálban. A Please touch the device.<x> üzenetet kell kapnia, és hasonló kimenetet kell kapnia a terminálon:

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

    A konfigurációt úgy is tesztelheti, hogy kijelentkezik a felhasználói munkamenetből, majd visszalép. Egy hasonló képernyőnek kell megjelennie, miután kihúzta/visszadugta a Nitrokey FIDO2-t és beírta a jelszavát:

    img6

Használat

A PAM modul módosítása után azonnal tesztelheti a konfigurációt, de ajánlott újraindítani a számítógépet, és kihúzni/visszadugni a Nitrokey FIDO2-t.

Miután megfelelően tesztelte az ebben az útmutatóban található utasításokat (és biztonsági mentést készített), ajánlott a required vagy a requisite vezérlőzászlót használni a sufficient helyett.

A required és requisite szigorúbb hozzáférés-ellenőrzést biztosít, és a Nitrokey FIDO2 szükséges a bejelentkezéshez és/vagy a konfigurált szolgáltatás használatához.

Ha további információra van szüksége a PAM konfigurációs sorban található vezérlőjelzőkről, akkor az útmutató utolsó részében megismerheti a különbséget, és az egyes jelzők használatának következményeit.

PAM modulok

Számos PAM modul fájl létezik, amelyeket az Ön igényei szerint módosíthat:

  • A /etc/pam.d/common-auth fájl módosításával a Nitrokey FIDO-t használhatja a 2. faktoros hitelesítéshez a grafikus bejelentkezéshez és sudo. Megjegyzés: common-auth a fájl végén található további konfigurációs sor hozzáadásával kell módosítani.

  • 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

  • Alternatívaként egyszerűen módosíthatja a /etc/pam.d/sudo fájlt, ha a sudo parancs használatakor a FIDO U2F-et kívánja használni.

Vezérlő zászlók

A 7. lépésben a sufficient vezérlőjelzőt használtuk, hogy meghatározzuk a PAM modul viselkedését, ha a Nitrokey be van dugva vagy sem. Lehetőség van azonban ennek a viselkedésnek a megváltoztatására a következő vezérlőzászlók használatával:

  • required: Ez a legkritikusabb jelző. A modul eredményének sikeresnek kell lennie a hitelesítés folytatásához. Ez a flag kizárhatja Önt a számítógépéből, ha nincs hozzáférése a Nitrokey-hez.

  • requisite: Hasonlóan a required-hoz, azonban abban az esetben, ha egy adott modul hibát ad vissza, a vezérlés közvetlenül az alkalmazáshoz, vagy a felettes PAM stackhez kerül vissza. Ez a flag a számítógépből is kizárhatja Önt, ha nincs hozzáférése a Nitrokey-hez.

  • sufficient: A modul eredményét figyelmen kívül hagyjuk, ha nem sikerül. A sufficient jelzőt tesztelési célokra biztonságosnak tekintjük.

  • optional: Ennek a modulnak a sikere vagy sikertelensége csak akkor fontos, ha ez az egyetlen modul a veremben, amely ehhez a szolgáltatás+típushoz kapcsolódik. A optional jelzőt tesztelési célokra biztonságosnak tekintjük.

Figyelem

  • Ha required vagy requisite van beállítva, az U2F-hitelesítés sikertelensége a teljes hitelesítés sikertelenségét okozza. A sikertelenség akkor következik be, ha a konfigurált Nitrokey FIDO nincs bedugva, elveszett vagy megsemmisült.

  • Elveszíti a számítógépéhez való hozzáférést, ha rosszul konfigurálta a PAM modult és a required vagy requisite zászlókat használta.

  • A sudo használatának lehetőségét is elveszíti, ha a Központi hitelesítési leképezést beállítja. és a required vagy requisite zászlókat használta.