Để tăng cường bảo mật, bạn có thể yêu cầu mã thông báo xác thực dựa trên thời gian cũng như mật khẩu để đăng nhập vào PC Linux của bạn. Giải pháp này sử dụng Google Authenticator và các ứng dụng TOTP khác.
Quá trình này được thực hiện trên Ubuntu 14.04 với tiêu chuẩn Máy tính để bàn Unity và trình quản lý đăng nhập LightDM, nhưng các nguyên tắc giống nhau trên hầu hết các bản phân phối Linux và máy tính để bàn.
Trước đây chúng tôi đã cho bạn thấy cách yêu cầu Google Authenticator để truy cập từ xa qua SSH , và quá trình này cũng tương tự. Điều này không yêu cầu ứng dụng Google Authenticator nhưng hoạt động với bất kỳ ứng dụng tương thích nào triển khai sơ đồ xác thực TOTP, bao gồm Authy .
Cài đặt Google Authenticator PAM
LIÊN QUAN: Cách bảo mật SSH bằng Xác thực hai yếu tố Google Authenticator
Như khi thiết lập điều này cho quyền truy cập SSH, trước tiên chúng tôi cần cài đặt phần mềm PAM (“mô-đun xác thực có thể cắm”) thích hợp. PAM là một hệ thống cho phép chúng ta cắm các loại phương thức xác thực khác nhau vào một hệ thống Linux và yêu cầu chúng.
Trên Ubuntu, lệnh sau sẽ cài đặt Google Authenticator PAM. Mở cửa sổ Terminal, nhập lệnh sau, nhấn Enter và cung cấp mật khẩu của bạn. Hệ thống sẽ tải xuống PAM từ kho phần mềm của bản phân phối Linux của bạn và cài đặt nó:
sudo apt-get install libpam-google-authenticator
Các bản phân phối Linux khác hy vọng cũng nên có sẵn gói này để dễ dàng cài đặt - hãy mở kho phần mềm của bản phân phối Linux của bạn và thực hiện tìm kiếm. Trong trường hợp xấu nhất, bạn có thể tìm thấy mã nguồn cho mô-đun PAM trên GitHub và tự biên dịch.
Như chúng tôi đã chỉ ra trước đây, giải pháp này không phụ thuộc vào "gọi điện về nhà" tới các máy chủ của Google. Nó triển khai thuật toán TOTP chuẩn và có thể được sử dụng ngay cả khi máy tính của bạn không có kết nối Internet.
Tạo khóa xác thực của bạn
Bây giờ, bạn sẽ cần tạo khóa xác thực bí mật và nhập khóa đó vào ứng dụng Google Authenticator (hoặc một ứng dụng tương tự) trên điện thoại của mình. Đầu tiên, đăng nhập bằng tài khoản người dùng của bạn trên hệ thống Linux của bạn. Mở cửa sổ dòng lệnh và chạy google-authenticator chỉ huy. Kiểu Y và làm theo lời nhắc ở đây. Thao tác này sẽ tạo một tệp đặc biệt trong thư mục của tài khoản người dùng hiện tại với thông tin Google Authenticator.
Bạn cũng sẽ được thực hiện qua quy trình nhận mã xác minh hai yếu tố đó vào Google Authenticator hoặc ứng dụng TOTP tương tự trên điện thoại thông minh của bạn. Hệ thống của bạn có thể tạo mã QR mà bạn có thể quét hoặc bạn có thể nhập mã đó theo cách thủ công.
Hãy nhớ ghi lại mã cào khẩn cấp của bạn, mã này bạn có thể sử dụng để đăng nhập nếu bị mất điện thoại.
Thực hiện quy trình này cho từng tài khoản người dùng sử dụng máy tính của bạn. Ví dụ: nếu bạn là người duy nhất sử dụng máy tính của mình, bạn chỉ có thể thực hiện một lần trên tài khoản người dùng bình thường của mình. Nếu bạn có người khác sử dụng máy tính của mình, bạn sẽ muốn họ đăng nhập vào tài khoản của chính họ và tạo mã hai yếu tố thích hợp cho tài khoản của chính họ để họ có thể đăng nhập.
Kích hoạt xác thực
Đây là lúc mọi thứ trở nên khó khăn. Khi chúng tôi giải thích cách bật hai yếu tố cho thông tin đăng nhập SSH, chúng tôi chỉ yêu cầu nó cho các thông tin đăng nhập SSH. Điều này đảm bảo rằng bạn vẫn có thể đăng nhập cục bộ nếu bạn bị mất ứng dụng xác thực hoặc nếu có sự cố.
Vì chúng tôi sẽ bật xác thực hai yếu tố cho thông tin đăng nhập cục bộ, nên có những sự cố tiềm ẩn ở đây. Nếu xảy ra sự cố, bạn có thể không đăng nhập được. Lưu ý rằng, chúng tôi sẽ hướng dẫn bạn cách bật tính năng này chỉ dành cho đăng nhập bằng đồ họa. Điều này cung cấp cho bạn một lối thoát hiểm nếu bạn cần.
Bật Google Authenticator để đăng nhập đồ họa trên Ubuntu
Bạn luôn có thể bật xác thực hai bước chỉ cho các đăng nhập bằng đồ họa, bỏ qua yêu cầu khi bạn đăng nhập từ lời nhắc văn bản. Điều này có nghĩa là bạn có thể dễ dàng chuyển sang một thiết bị đầu cuối ảo, đăng nhập vào đó và hoàn nguyên các thay đổi của mình, do đó, Gogole Authenciator sẽ không cần thiết nếu bạn gặp sự cố.
Chắc chắn, điều này mở ra một lỗ hổng trong hệ thống xác thực của bạn, nhưng kẻ tấn công có quyền truy cập vật lý vào hệ thống của bạn vẫn có thể khai thác nó . Đó là lý do tại sao xác thực hai yếu tố đặc biệt hiệu quả đối với đăng nhập từ xa qua SSH.
Dưới đây là cách thực hiện việc này cho Ubuntu, sử dụng trình quản lý đăng nhập LightDM. Mở tệp LightDM để chỉnh sửa bằng lệnh như sau:
sudo gedit /etc/pam.d/lightdm
(Hãy nhớ rằng các bước cụ thể này sẽ chỉ hoạt động nếu bản phân phối Linux và máy tính để bàn của bạn sử dụng trình quản lý đăng nhập LightDM.)
Thêm dòng sau vào cuối tệp, rồi lưu nó:
yêu cầu auth pam_google_authenticator.so nullok
Bit “nullok” ở cuối yêu cầu hệ thống cho phép người dùng đăng nhập ngay cả khi họ chưa chạy lệnh google -henticator để thiết lập xác thực hai yếu tố. Nếu họ đã thiết lập nó, họ sẽ phải nhập mã time-baesd - nếu không thì sẽ không. Xóa “nullok” và các tài khoản người dùng chưa thiết lập mã Google Authenticator sẽ không thể đăng nhập bằng đồ họa.
Lần tiếp theo khi người dùng đăng nhập bằng đồ họa, họ sẽ được yêu cầu nhập mật khẩu và sau đó được nhắc nhập mã xác minh hiện tại được hiển thị trên điện thoại của họ. Nếu họ không nhập mã xác minh, họ sẽ không được phép đăng nhập.
Quá trình này sẽ khá giống với các bản phân phối Linux và máy tính để bàn khác, vì hầu hết các trình quản lý phiên máy tính để bàn Linux phổ biến đều sử dụng PAM. Bạn có thể sẽ chỉ phải chỉnh sửa một tệp khác có nội dung tương tự để kích hoạt mô-đun PAM thích hợp.
Nếu bạn sử dụng mã hóa thư mục chính
Các bản phát hành cũ hơn của Ubuntu cung cấp một Tùy chọn "mã hóa thư mục chính" đã mã hóa toàn bộ thư mục chính của bạn cho đến khi bạn nhập mật khẩu của mình. Cụ thể, điều này sử dụng ecryptfs. Tuy nhiên, do phần mềm PAM phụ thuộc vào tệp Google Authenticator được lưu trữ trong thư mục chính của bạn theo mặc định, mã hóa cản trở PAM đọc tệp trừ khi bạn đảm bảo rằng nó có sẵn ở dạng không được mã hóa cho hệ thống trước khi bạn đăng nhập. Tham khảo ý kiến README để biết thêm thông tin về cách tránh vấn đề này nếu bạn vẫn đang sử dụng các tùy chọn mã hóa thư mục chính không được dùng nữa.
Các phiên bản Ubuntu hiện đại cung cấp mã hóa toàn bộ đĩa thay vào đó, sẽ hoạt động tốt với các tùy chọn trên. Bạn không cần phải làm bất cứ điều gì đặc biệt
Trợ giúp, Nó bị hỏng!
Bởi vì chúng tôi chỉ bật tính năng này cho các đăng nhập đồ họa, nên dễ dàng vô hiệu hóa nếu nó gây ra sự cố. Nhấn tổ hợp phím như Ctrl + Alt + F2 để truy cập thiết bị đầu cuối ảo và đăng nhập vào đó bằng tên người dùng và mật khẩu của bạn. Sau đó, bạn có thể sử dụng một lệnh như sudo nano /etc/pam.d/lightdm để mở tệp để chỉnh sửa trong trình soạn thảo văn bản đầu cuối. Sử dụng hướng dẫn của chúng tôi về Nano để xóa dòng và lưu tệp và bạn sẽ có thể đăng nhập lại bình thường.
Bạn cũng có thể buộc Google Authenticator là bắt buộc đối với các loại thông tin đăng nhập khác - thậm chí có thể là tất cả các thông tin đăng nhập hệ thống - bằng cách thêm dòng “auth required pam_google_authenticator.so” vào các tệp cấu hình PAM khác. Hãy cẩn thận nếu bạn làm điều này. Và hãy nhớ rằng bạn có thể muốn thêm “nullok” để những người dùng chưa trải qua quá trình thiết lập vẫn có thể đăng nhập.
Có thể tìm thấy thêm tài liệu về cách sử dụng và thiết lập mô-đun PAM này trong tệp README của phần mềm trên GitHub .