Korzystanie z Yubikey Neo do logowania 2FA i ekranu blokady


13

Chcę użyć mojego Yubikey Neo do zalogowania się do Ubuntu 14.04. Ponadto byłoby dobrze, gdyby ekran był automatycznie blokowany za każdym razem, gdy odłączam Yubikey.

Odpowiedzi:


11

Najpierw musimy skonfigurować Yubikey do reagowania na wyzwania. Dobry podręcznik dla Linuksa jest podany przez Yubico pod https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html

Teraz powinieneś być w stanie użyć swojego yubikey do uwierzytelnienia przy logowaniu. Brakuje jednego wygodnego elementu: automatycznej blokady ekranu po usunięciu kostki Yubikey.

Lekko dostosowałem HowTo z forów Yubico ( http://forum.yubico.com/viewtopic.php?f=23&t=1143 ), aby pasowały do ​​LightDM w 14.04 i Yubikey Neo.

Przede wszystkim utwórz nowy plik z poleceniami, aby zablokować ekran, gdy Yubikey nie jest obecny:

sudo nano /usr/local/bin/yubikey

Napisz do pliku:

#!/bin/bash 
# Double checking if the Yubikey is actually removed, Challenge-Response won't trigger the screensaver this way.

if [ -z "$(lsusb | grep Yubico)" ]; then
        logger "YubiKey Removed or Changed"
        # Running the LightDM lock command
        export XDG_SEAT_PATH="/org/freedesktop/DisplayManager/Seat0" 
        /usr/bin/dm-tool lock
fi

Największe różnice w stosunku do oryginalnego pliku to użycie narzędzia dm (do blokowania ekranu za pomocą lightdm) i wyszukiwanego terminu Yubico, ponieważ Yubikey Neo jest zarejestrowane w „Yubico.com” w lsusb.

Zamknij i zapisz plik. Ponadto musimy uczynić plik wykonywalnym:

sudo chmod +x /usr/local/bin/yubikey

Następnie musimy znaleźć właściwości Yubikey dla właściwego przypisania.

W tym celu należy aktywować deskryptor USB. Szczegóły można znaleźć na forum Yubico .

W nowym terminalu wpisz polecenie

udevadm monitor --environment --udev

Teraz (od-) podłączasz swój yubikey i dostajesz listę identyfikatorów. Szukam

ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT

Zostaną użyte w pliku udev do rozpoznania Yubikey.

Wskazówka: identyfikator dostawcy zmienia się, jeśli ponownie skonfigurujesz drążek (np. Przy pomocy CCID)

Ponadto utwórz plik za pomocą

sudo nano /etc/udev/rules.d/85-yubikey.rules

i wpisz następujące

# Yubikey Udev Rule: running a bash script in case your Yubikey is removed 
ACTION=="remove", ENV{ID_VENDOR_ID}=="1050", ENV{ID_MODEL_ID}=="0010", ENV{ID_SERIAL_SHORT}=="0001711399", RUN+="/usr/local/bin/yubikey"

Zmień identyfikator zgodnie z kluczem. Uwaga: Możesz dodać więcej yubikey przez proste kopiowanie wklej linię z innymi identyfikatorami!

Zamknij i zapisz plik. Na koniec usługa udev musi ponownie załadować reguły:

sudo udevadm control --reload-rules
sudo service udev reload

Próbowałem tego 14.04 i nie było, ID_SERIAL_SHORTwięc po prostu pominąłem.
Paweł Prażak

Wiem, że ten wątek jest stary, ale nadal jest najlepszym wynikiem podczas wyszukiwania. Usunięcie ID_SERIAL_SHORT jest niebezpieczne, ponieważ usuwasz jeden identyfikator unikalny dla twojego klucza. Zakładając oczywiście, że chcesz również utworzyć skrypt do odblokowywania. Jeśli nie ma ID_SERIAL_SHORT, prawdopodobnie nie włączyłeś poprawnych flag za pomocą narzędzia personalizującego.
Indeks

0

Możesz także dodać zabijanie wszystkich TTY za pomocą pkill -KILL -t:

if [ -z "$(lsusb | grep Yubico)" ]; then
    logger "YubiKey Removed or Changed"
    # Running the LightDM lock command
    export XDG_SEAT_PATH="/org/freedesktop/DisplayManager/Seat0" 
    /usr/bin/dm-tool lock

    ACTIVE_TTY=$(who | awk '{ print $2 }' | grep tty | uniq)
    echo $ACTIVE_TTY | xargs -I {} pkill -KILL -t {}
fi

Wydaje się również, że istnieje problem z uprawnieniami do plików lightdm, aby go rozwiązać:

sudo chown lightdm:root /etc/yubico/[user]-[number]
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.