Sử dụng Yubikey Neo để đăng nhập 2FA và màn hình khóa


13

Tôi muốn sử dụng Neo Yubikey của mình để đăng nhập vào Ubuntu 14.04. Ngoài ra, sẽ rất thuận tiện nếu màn hình được khóa tự động mỗi khi tôi rút phích cắm Yubikey.

Câu trả lời:


11

Đầu tiên, chúng ta cần cấu hình Yubikey để đáp ứng thách thức. Một hướng dẫn tốt cho Linux được Yubico đưa ra theo https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html

Bây giờ bạn sẽ có thể sử dụng yubikey của bạn để xác thực khi đăng nhập. Một phần tiện lợi bị thiếu: Khóa tự động của màn hình khi chết Yubikey được gỡ bỏ.

Tôi đã điều chỉnh một chút HowTo từ các diễn đàn Yubico ( http://forum.yubico.com/viewtopic.php?f=23&t=1143 ) để phù hợp với LightDM trong 14.04 và Yubikey Neo.

Trước hết, tạo một tệp mới với các lệnh để khóa màn hình khi không có Yubikey:

sudo nano /usr/local/bin/yubikey

Viết như sau vào tập tin:

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

Sự khác biệt lớn nhất đối với tệp gốc là việc sử dụng công cụ dm (để khóa màn hình bằng lightdm) và cụm từ tìm kiếm Yubico, vì Yubikey Neo được đăng ký với „Yubico.com Thẻ trong lsusb.

Đóng và lưu tệp. Ngoài ra, chúng tôi phải làm cho tập tin thực thi:

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

Tiếp theo, chúng ta phải tìm các thuộc tính của Yubikey cho một nhiệm vụ thích hợp.

Đối với điều này, bộ mô tả USB phải được kích hoạt. Thông tin chi tiết có thể được tìm thấy trên diễn đàn Yubico .

Trong một loại thiết bị đầu cuối mới trong lệnh

udevadm monitor --environment --udev

Bây giờ, bạn (un-) cắm yubikey của bạn và nhận danh sách Id. Tìm kiếm

ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT

Chúng sẽ được sử dụng trong tệp udev để nhận dạng Yubikey.

Gợi ý: ID nhà cung cấp thay đổi nếu bạn cấu hình lại thanh (ví dụ: với CCID)

Hơn nữa, tạo một tập tin với

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

và gõ như sau

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

Thay đổi ID theo khóa của bạn. Lưu ý: Bạn có thể thêm nhiều yubikey bằng cách sao chép đơn giản dán dòng với các Id khác!

Đóng và lưu tệp. Cuối cùng, dịch vụ udev phải tải lại các quy tắc:

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

Tôi đã thử điều này vào ngày 14.04 và không có gì ID_SERIAL_SHORTnên tôi đã bỏ qua nó.
Paweł Prażak

Tôi biết chủ đề này đã cũ, nhưng nó vẫn là kết quả hàng đầu khi tìm kiếm. Xóa ID_SERIAL_SHORT rất nguy hiểm khi bạn xóa một mã định danh duy nhất cho khóa của mình. Tất nhiên, giả sử bạn muốn tạo một kịch bản để mở khóa. Nếu ID_SERIAL_SHORT không có thì có khả năng bạn chưa kích hoạt các cờ chính xác bằng công cụ cá nhân hóa.
Chỉ số

0

Bạn cũng có thể thêm tiêu diệt tất cả TTY bằng cách sử dụng 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

Ngoài ra, dường như có một vấn đề với quyền truy cập tệp từ lightdm, để giải quyết nó:

sudo chown lightdm:root /etc/yubico/[user]-[number]
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.