Використання Yubikey Neo для входу в систему 2FA та блокування екрана


13

Я хочу використовувати свій Yubikey Neo для входу в Ubuntu 14.04. Крім того, було б сприятливо, якщо екран блокується автоматично кожного разу, коли я відключаю мережу Yubikey.

Відповіді:


11

Спочатку нам потрібно налаштувати Yubikey для відповіді на виклик. Хороший посібник для Linux надає Yubico під https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html

Тепер ви маєте можливість використовувати свій юбікей для автентифікації під час входу. Відсутня одна зручна деталь: Автоматичне блокування екрана, коли вимкнено Yubikey.

Я трохи адаптував HowTo з форумів Yubico ( http://forum.yubico.com/viewtopic.php?f=23&t=1143 ), щоб відповідати LightDM 14.04 та Yubikey Neo.

Перш за все, створіть новий файл із командами для блокування екрана, коли Yubikey немає:

sudo nano /usr/local/bin/yubikey

Запишіть у файл наступне:

#!/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

Найбільші відмінності від оригінального файлу - це використання dm-інструменту (для блокування екрана з lightdm) та пошукового терміна Yubico, оскільки Yubikey Neo зареєстровано у Ysico.com в lsusb.

Закрийте і збережіть файл. Крім того, ми повинні зробити файл виконуваним:

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

Далі ми повинні знайти властивості Юбікі для правильного призначення.

Для цього слід активувати дескриптор USB. Деталі можна знайти на форумі Yubico .

У новому терміналі введіть команду

udevadm monitor --environment --udev

Тепер ви (не) підключіть свій юбікей і отримаєте список ідентифікаторів. Шукаю

ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT

Вони будуть використані у файлі udev для розпізнавання Yubikey.

Підказка: ідентифікатор постачальника змінюється, якщо ви переконфігуруєте палицю (наприклад, за допомогою CCID)

Крім того, створіть файл за допомогою

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

і введіть наступне

# 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"

Змініть ідентифікатор відповідно до вашого ключа. Примітка. Ви можете додати більше юбікею простою копією, вставте рядок з іншими ідентифікаторами!

Закрийте і збережіть файл. Нарешті, служба udev має перезавантажити правила:

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

Я спробував це 14.04, і не було, ID_SERIAL_SHORTтому я просто пропустив його.
Paweł Prażak

Я знаю, що ця тема є давньою, але це все ще головний результат при пошуку. Видалити ID_SERIAL_SHORT небезпечно, оскільки ви видалите унікальний для вашого ключа один ідентифікатор. Припустимо, звичайно, що ви також хочете створити сценарій для розблокування. Якщо ID_SERIAL_SHORT відсутній, ви, ймовірно, не ввімкнули правильні прапори за допомогою інструмента персоналізації.
Покажчик

0

Ви також можете додати знищення всіх TTY, використовуючи 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

Також, як видається, є проблема з дозволами на файли з lightdm, щоб вирішити:

sudo chown lightdm:root /etc/yubico/[user]-[number]
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.