Làm cách nào tôi có thể sử dụng trình tạo mật mã để xác thực đăng nhập từ xa?


55

Tôi muốn tăng cường xác thực thông tin đăng nhập SSH của mình bằng cách thêm một yếu tố khác: thiết bị tạo mật mã hoặc ứng dụng tạo mật mã trên điện thoại di động của tôi. Các tùy chọn rõ ràng duy nhất trong thiết lập mặc định là cặp mật khẩu và khóa cố định. Tôi có thể làm cái này như thế nào?

(Nếu tôi sử dụng mật khẩu cộng với trình tạo mật mã, thì điều này cung cấp xác thực hai yếu tố (2FA): mật khẩu là những gì tôi biết, và mật mã là những gì tôi có.

Câu trả lời:


49

Một cách để làm điều này là với một công cụ được cung cấp bởi Google có tên là Google Authenticator .

  1. Cài đặt libpam-google-xác thực Cài đặt libpam-google-xác thực

    • hoặc chỉ sudo apt-get install libpam-google-authenticator
  2. Chỉnh sửa /etc/pam.d/sshdđể bao gồm các mô-đun:

    • sudoedit /etc/pam.d/sshd
    • và sau đó bao gồm dòng này ở đầu tệp và lưu:

      auth required pam_google_authenticator.so
      
  3. Chỉnh sửa tệp cấu hình SSH của bạn để bật thử thách:

    • sudoedit /etc/ssh/sshd_config và sau đó thay đổi xác thực phản hồi từ:

      ChallengeResponseAuthentication no 
      

      đến

      ChallengeResponseAuthentication yes
      

      và sau đó lưu tệp.

  4. sudo restart ssh để khởi động lại SSH

  5. Chạy google-authenticator

    • Điều này sẽ cung cấp cho bạn khóa bí mật, mã xác minh và mã cào khẩn cấp. Nó cũng sẽ hỏi bạn một số câu hỏi giới hạn tỷ lệ.

Ứng dụng di động:

Bạn sẽ cần một trong số này để nhận mã xác thực trên thiết bị khác.

Liên quan và hữu ích:

Lưu ý rằng việc kết hợp mật khẩu với mật mã sử dụng một lần là xác thực hai yếu tố: nó kết hợp với những gì bạn biết là mật khẩu (mật khẩu) với mật mã mà bạn có (một thiết bị tạo mật mã). Mặt khác, nếu bạn kết hợp các mật mã sử dụng một lần với cặp khóa SSH, thì tất cả là về những gì bạn có. Khi hai yếu tố xác thực cùng loại, bạn không có xác thực hai yếu tố; đôi khi điều này được gọi là xác thực một lần và một nửa yếu tố.


12

Google Authenticator phù hợp với các máy chủ cá nhân của bạn nhưng bạn có thể thấy rằng nó không phù hợp với cơ sở hạ tầng nhận dạng hiện tại của bạn. Nếu bạn muốn khám phá các tùy chọn khác, hãy nghĩ đến việc sử dụng RADIUS làm giao thức xác thực và plugin pam-radius. Tất cả các hệ thống xác thực hai yếu tố định hướng doanh nghiệp hỗ trợ bán kính. Chúng tôi đã viết một tài liệu về cách thêm xác thực hai yếu tố WiKID thông qua bán kính pam vào Ubuntu .

Sử dụng bán kính cho phép bạn liên kết trong các hệ thống khác ngoài SSH vào cùng một máy chủ xác thực. Bạn cũng có thể định tuyến các yêu cầu xác thực thông qua freeradius đến LDAP và sau đó đến máy chủ 2FA của bạn để tách ủy quyền khỏi xác thực. Bạn có thể làm tương tự với AD btw.


1

Tôi kêu gọi tất cả mọi người để đưa dòng sau vào đầu và không phải ở dưới cùng của /etc/pam.d/sshdnhư mô tả ở trên trước đây (nay là điều chỉnh):

auth required pam_google_authenticator.so

Nếu không, hệ thống của bạn sẽ vẫn mở để tấn công vũ phu vào mật khẩu của bạn, bắt buộc phần đầu tiên của xác thực hai yếu tố: mật khẩu của bạn.

Trước tiên, bạn sẽ được hỏi về mã xác minh và sau đó là mật khẩu của bạn (bất kể mã đó có đúng không). Nếu một trong hai sai, bạn cần nhập lại cả hai. Bạn có thể định cấu hình theo cách khác nhưng đó là một thay đổi khó khăn hơn để mô tả trong cấu hình sshd mặc định hiện tại (15.04).

Để biết chi tiết tại sao cần thiết, hãy kiểm tra vấn đề này:

https://github.com/google/google-authenticator/issues/514

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.