Cách bảo mật hệ thống Linux hiệu quả bằng YubiKey
Bạn không đơn độc nếu lo lắng về mối đe dọa hack ngày càng tăng. Mặc dù lời nhắc xác thực và 2FA là đủ để ngăn chặn hầu hết các tin tặc tiềm năng, hàng nghìn vụ vi phạm vẫn thành công mỗi ngày.
Một trong những giải pháp phổ biến nhất cho vấn đề xác thực là YubiKey. Nhưng YubiKey là gì và xác thực phần cứng hoạt động như thế nào? Bạn có thể bảo mật PC Linux của mình bằng YubiKey không?
Mục Lục
Tại sao nên sử dụng YubiKey để xác thực phần cứng?
Có nhiều loại xác thực khác nhau, bao gồm mật khẩu, xác thực SMS và thậm chí cả các ứng dụng xác thực mà bạn có thể sử dụng với điện thoại của mình. Một loại ít phổ biến hơn là xác thực phần cứng, bao gồm việc sử dụng một thiết bị plug-in nhỏ để gửi mã thông báo xác thực khi được nhắc.
YubiKeys và các thiết bị xác thực phần cứng khác có một số lợi thế so với các thiết bị xác thực khác. Chúng dễ sử dụng hơn, an toàn hơn nhiều và gần như không thể thỏa hiệp nếu không có quyền truy cập vào chính YubiKey vật lý.
Bắt đầu với Yubikey
Bạn có thể bắt đầu với YubiKey chỉ bằng một vài bước đơn giản. Bước đầu tiên, bạn nên sử dụng bài kiểm tra do Yubico thực hiện để mua YubiKey tốt nhất cho thông số kỹ thuật thiết bị của mình. Sau khi có YubiKey trong tay, bạn có thể sử dụng nó làm thiết bị xác thực cho các trang web và ứng dụng.
Bạn thậm chí có thể sử dụng nó để xác thực sudo và SSH trên máy tính Linux của mình. Chúng tôi sẽ giải thích mọi thứ bạn cần biết về cách chọn một YubiKey tương thích với sudo/SSH và định cấu hình nó để xác thực.
Chọn YubiKey phù hợp cho hệ thống của bạn
Nếu bạn muốn sử dụng YubiKey để xác thực trên máy tính Linux của mình, có một số YubiKey nổi bật là tùy chọn ưu việt. YubiKey 5 và YubiKey 5 NFC đều là những thiết bị cổ điển tương ứng hoạt động tốt với các hệ thống có USB-A và USB-C.
Nếu muốn sử dụng YubiKey với máy tính Linux và điện thoại Android, bạn nên xem xét YubiKey 5c NFC. Nếu bạn có máy tính Linux và iPhone, bạn nên xem xét YubiKey 5ci vì nó hỗ trợ USB-C và cổng Lightning.
Điều quan trọng cần lưu ý là Sê-ri YubiHSM không tương thích với xác thực sudo. YubiKey kế thừa có thể tương thích hoặc không tương thích với xác thực sudo/SSH tùy thuộc vào các tính năng cụ thể của chúng.
Trước khi bắt đầu với xác thực sudo hoặc SSH, bạn phải cài đặt YubiKey PPA. Mở terminal và nhập các lệnh sau để cập nhật các gói của bạn và cài đặt YubiKey Authenticator và YubiKey Manager:
sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt install yubikey-manager libpam-yubico libpam-u2f
Tiếp theo, bạn sẽ cần xác minh rằng hệ thống của bạn đã sẵn sàng hoạt động với YubiKey. Chạy lệnh sau trong terminal để kiểm tra phiên bản udev của bạn:
sudo udevadm --version
Thiết bị đầu cuối sẽ trả về một số. Nếu số này là 244 hoặc cao hơn, hệ thống của bạn tương thích với YubiKey. Bạn có thể bỏ qua bước tiếp theo trong trường hợp này.
Nếu không, bạn sẽ cần phải cấu hình hệ thống của mình. Bạn nên sử dụng các lệnh sau để kiểm tra xem udev đã được cài đặt trên máy tính của mình chưa—và để cài đặt nếu chưa:
dpkg -s libu2f-udev
sudo apt install libu2f-udev
Tiếp theo, hãy kiểm tra xem giao diện U2F của YubiKey của bạn đã được mở khóa chưa. Nếu bạn có YubiKey NEO hoặc YubiKey NEO-n, hãy chèn YubiKey của bạn, mở Trình quản lý YubiKey và điều hướng đến giao diện. Kích hoạt giao diện U2F và hãy nhấn Cứu.
Thiết lập YubiKey để xác thực sudo trên Linux
sudo là một trong những lệnh nguy hiểm nhất trong môi trường Linux. Trong tay phải, nó cung cấp một mức truy cập ấn tượng, đủ để hoàn thành hầu hết các công việc. Trong tay kẻ xấu, quyền truy cập cấp gốc mà sudo cung cấp có thể cho phép người dùng độc hại khai thác hoặc phá hủy hệ thống.
YubiKeys rất tuyệt vời để xác thực sudo vì xác thực của chúng gần như không thể sao chép nếu không có quyền truy cập vào chính YubiKey. Hầu hết YubiKey đều tương thích với xác thực sudo, bao gồm Sê-ri 5 FIP, Sê-ri Khóa, Sê-ri 4 FIP, Sê-ri Bio, Sê-ri 5 và Sê-ri 4.
Theo Yubico, bước đầu tiên bạn cần thực hiện để định cấu hình xác thực sudo là tạo tệp quy tắc. Nếu phiên bản udev của bạn từ 188 trở lên, hãy cài đặt các quy tắc U2F mới từ GitHub và sao chép 70-u2f.rules tập tin để /etc/udev/rules.d.
Nếu phiên bản udev của bạn dưới 188, hãy cài đặt các quy tắc U2F cũ từ GitHub và sao chép 70-old-u2f.rules tập tin để /etc/udev/rules.d.
Nếu phiên bản udev của bạn từ 244 trở lên hoặc bạn đã tạo các tệp quy tắc cần thiết, thì bạn đã sẵn sàng liên kết YubiKey với tài khoản của mình.
Chèn YubiKey vào máy tính của bạn, mở thiết bị đầu cuối và nhập các lệnh sau để liên kết YubiKey với tài khoản của bạn:
mkdir -p ~/.config/Yubicopamu2fcfg > ~/.config/Yubico/u2f_keys
Đợi vài phút cho đến khi đèn báo trên YubiKey của bạn bắt đầu nhấp nháy. Chạm vào nút trên YubiKey của bạn để xác nhận liên kết thiết bị.
Nếu bạn có sẵn một YubiKey khác, bạn nên thêm nó làm thiết bị sao lưu bằng cách nhập lệnh sau và hoàn tất quy trình tương tự:
pamu2fcfg -n >> ~/.config/Yubico/u2f_keys
Cuối cùng, bạn sẽ cần định cấu hình lệnh sudo để yêu cầu xác thực YubiKey. Bạn nên bắt đầu bằng cách nhập lệnh sau để mở tệp cấu hình sudo:
sudo vi /etc/pam.d/sudo
Khi tệp cấu hình được mở, hãy dán dòng sau ngay bên dưới @include chung-auth dòng để định cấu hình sudo để yêu cầu xác thực YubiKey:
auth required pam_u2f.so
Lưu và thoát tệp bằng cách nhấn Bỏ trốnđánh máy :wqvà nhấn Đi vào, nhưng giữ cho thiết bị đầu cuối mở. Bạn sẽ không thể đảo ngược những thay đổi bạn đã thực hiện đối với xác thực sudo nếu thiết bị đầu cuối đóng lại.
Mở một thiết bị đầu cuối thứ hai và chạy lệnh sau khi rút YubiKey của bạn ra, sau đó nhập mật khẩu của bạn:
sudo echo testing
Quá trình xác thực sẽ thất bại. Chèn YubiKey của bạn và nhập lại lệnh và mật khẩu của bạn. Khi đèn báo YubiKey bắt đầu nhấp nháy, hãy chạm vào nút trên YubiKey của bạn. Nó sẽ xác thực lệnh. Nếu có, YubiKey của bạn đã được thiết lập đầy đủ để xác thực sudo.
Cách thiết lập YubiKey để xác thực SSH
Bạn cũng có thể sử dụng YubiKey để xác thực SSH! Một số sê-ri YubiKey tương thích với SSH, bao gồm Sê-ri 5 FIPS, Sê-ri 5, Sê-ri 4 FIPS và Sê-ri 4. Sử dụng YubiKey để xác thực các kết nối của bạn sẽ cho phép bạn thực hiện mỗi lần đăng nhập SSH an toàn hơn nhiều.
Phương pháp tốt nhất để thiết lập YubiKey đã được phác thảo bởi một người dùng có kinh nghiệm trên GitHub. Bạn sẽ cần SSH 8.2 trở lên và YubiKey có chương trình cơ sở 5.2.3 trở lên. Bạn có thể kiểm tra phiên bản OpenSSH của mình—và cập nhật nếu cần—bằng các lệnh sau:
ssh -V
sudo apt update && sudo apt upgrade
Tiếp theo, bạn sẽ cần định cấu hình SSH để chấp nhận YubiKey của mình. Nhập lệnh sau để mở trình chỉnh sửa vi và chỉnh sửa tệp cấu hình:
sudo vi /etc/ssh/sshd_config
Thêm dòng sau vào tệp cấu hình để YubiKey của bạn được chấp nhận:
PubkeyAcceptedKeyTypes sk-ecdsa-sha2-nistp256@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com
Lưu và thoát tệp bằng cách nhấn Bỏ trốnđánh máy :wqvà đánh Đi vào. Cuối cùng, khởi động lại dịch vụ SSH bằng lệnh sau để cấu hình mới của bạn hoạt động:
sudo service ssh restart
Cuối cùng, bạn đã sẵn sàng để tạo cặp khóa mà bạn sẽ sử dụng để xác thực SSH. Điều hướng đến thư mục SSH và tạo khóa SSH mới của bạn bằng các lệnh sau:
cd home/username/.ssh
ssh-keygen -t ed25519-sk
Hai tệp sẽ được tạo trong ~/.ssh/ danh mục. Lưu ý rằng bạn có thể cần phải sử dụng ecdsa-sk thay vì ed25519-sk nếu hệ thống của bạn không tương thích và thiết bị đầu cuối nhắc đăng ký khóa không thành công.
Tiếp theo, bạn sẽ cần thêm khóa chung vào máy chủ của mình bằng lệnh sau:
ssh-copy-id -i ~/.ssh/id_ed25519_sk.pub username@server
Bạn cũng nên tự thêm mình vào tệp sudoers để duy trì quyền sau khi tắt đăng nhập gốc. Truy cập tệp và mở tệp bằng visudo.
Không mở tệp sudoers bằng trình soạn thảo văn bản thông thường.
Bên dưới dòng đọc gốc TẤT CẢ=(TẤT CẢ: TẤT CẢ) TẤT CẢthêm dòng sau:
username ALL=(ALL:ALL) ALL
Mở /etc/ssh/ssd_config tệp và thêm các dòng sau để tắt đăng nhập gốc và đăng nhập dựa trên mật khẩu:
ChallengeResponseAuthentication noPermitRootLogin no
Cuối cùng, nhập lệnh sau để tải khóa của bạn vào tác nhân SSH trong suốt thời gian của phiên:
ssh-add ~/.ssh/id_ed25519_sk
Bây giờ bạn có thể sử dụng YubiKey của mình để xác thực SSH. Bạn sẽ cần cắm YubiKey vào máy tính khi được nhắc và nhấn vào nút khi đèn báo nhấp nháy. Với phương thức xác thực mới này, quyền truy cập SSH vào máy chủ từ xa của bạn sẽ an toàn hơn đáng kể.
Các ứng dụng tiềm năng khác của YubiKey
Không có bất kỳ giới hạn thực sự nào đối với cách bạn có thể sử dụng YubiKey trên hệ thống Linux của mình. Nếu bạn muốn làm cho PC của mình trở nên an toàn hơn, hãy cân nhắc sử dụng YubiKey để mã hóa ổ đĩa hoặc không cần mật khẩu. Bạn thậm chí có thể sử dụng nó để ký email và tệp nếu muốn.
Bảo mật hệ thống Linux của bạn với YubiKey
Bạn không cần phải dừng lại ở việc chỉ sử dụng YubiKey để xác thực SSH và sudo. Bạn cũng có thể sử dụng YubiKey của mình để xác thực quyền truy cập vào nhiều tài khoản của mình trên web. Phần tốt nhất là bắt đầu với YubiKey 2FA là một quy trình đơn giản.