Sử dụng Google Authenticator để thiết lập đăng nhập 2 lớp trong Ubuntu

Like share để website được tiếp tục phát triển

Dữ liệu trong thế giới số hiện tại là vô giá, vì vậy chúng ta phải chủ động bảo vệ dữ liệu trước khi bị hacker ghé thăm. Thường để hạn chế tối đa hacker dòm ngó, ta thường đặt mật khẩu có độ phức tạp cao, như là thêm chữ hoa, số, ký tự đặc biệt, … nhưng liệu có đủ an toàn trong thế giới số hiện tại hay không? Câu trả lời là không!

Thực ra những tập đoàn lớn như Google, Yahoo, … đều có tùy chọn đăng nhập 2 lớp. Ví dụ như Google, một khi bạn đã thiết lập 2 lớp cho tài khoản của mình, khi đăng nhập vào gmail, nó yêu cầu nhập mật khẩu, sau đó tới mã xác nhận, mã xác nhận sẽ được gửi tới điện thoại của bạn thông qua tin nhắn.

Vậy ứng dụng Google Authenticator có liên quan gì? thực ra sử dụng ứng dụng Google Authenticator là phương pháp thay thế cho dạng tin nhắn (thay thế ở đây không có nghĩa là loại bỏ dạng tin nhắn). Khi sử dụng Google Authenticator tức là bạn có thể sử dụng cả dạng tin nhắn và Google Authenticator để lấy mã xác nhận.

Vào vấn đề chính sau khi giải thích cách hoạt động của đăng nhập 2 lớp trên gmail. Trên ứng dụng Google Authenticator còn có tùy chọn lấy mã xác nhận cho ứng dụng thứ ba ngoài các dịch vụ của google (vd gmail, drive). Trong bài viết này mình sẽ hướng dẫn sử dụng Google Authenticator để thiết lập đăng nhập 2 lớp cho đăng nhập ssh (Server) từ xa và LightDM (Desktop).

Cài đặt và cấu hình Google Authenticator trong Ubuntu

  1. Đầu tiên các bạn cài đặt Google authenticator bằng lệnh bên dưới.
    sudo apt install libpam-google-authenticator
  2. Sau đó, thiết lập mã dự phòng cho Google authenticator bằng cách nhập vào lệnh dưới. Nó sẽ hiện ra một số lựa chọn giữa yes và no. Trong trường hợp này mình chọn y y y y y. Còn ý nghĩa mỗi tùy chọn mình sẽ tìm hiểu và bổ xung vào bài này sau. Tập tin lưu trữ thông tin Google authenticator nằm trong file ~/.google_authenticator.
    google-authenticator
    Screenshot from 2016-05-17 09-32-52

    Mỗi lần đăng nhập bạn có thể sử dụng một trong những mã xác nhận trong khung màu cam.

    Screenshot from 2016-05-17 10-08-16

    Các bạn nhớ 2 lữa chọn trên màn hình sẽ giúp bạn thiết lập được với Google authenticator trên Android/iOS.

    Nếu các bạn không quan tâm đến việc sử dụng mã dự phòng cho Google authenticator thì có thể bỏ qua tâm hình đầu tiên, còn tấm hình thứ hai rất là quan trọng, nó sẽ giúp bạn thiết lập được với ứng dụng Google authenticator trong Android/iOS.

    Trong trường hợp các lần sau bạn không sử dụng những mã xác nhận này thì bạn cứ chạy lại lệnh google-authenticator như trên, vấn đề này mình sẽ tìm hiểu và giải đáp sau.

Cấu hình Google Authenticator trên điện thoại Android/iOS

Trong phần này mình sẽ lấy điện thoại Android để làm ví dụ. Các bạn lên Google Play (CH Play), sau đó tìm kiểm và tải về ứng dụng Google authenticator.

Sau đó vào ứng dụng Google authenticator để thiết lập, các bạn có 2 cách để cấu hình, cách một là quét mã vạch, mã vạch ở bước 2 của phần trên, cách thứ hai là nhập khóa được cung cấp, mã này cũng ở bước 2, bên dưới mã vạch của phần trên. Các bạn có thể tham khảo qua một số ảnh chụp màn hình của điện thoại mình.

IMG_20160519_151302

IMG_20160519_151733

Cách 1, cấu hình Google authenticator bằng mã vạch.

IMG_20160519_151757

Hoàn tất cách 1.

IMG_20160519_151733

Cách 2, cấu hình Google authenticator bằng mã.

IMG_20160519_151919

Nhập mã vào Google authenticator.

IMG_20160519_152046

Hoàn thành cách 2.

Như vậy Google authenticator trên Ubuntu và ứng dụng Google authenticator trên Android đã được thông nhau, bây giờ bạn chỉ cần thiết lập dịch vụ nào trên Ubuntu được chạy Google authenticator. Phần dưới mình sẽ VD dịch vụ ssh và LightDM chạy Google authenticator.

Liên kết Google authenticator với các dịch vụ trong Ubuntu

Những file liên để liên kết Google authenticator với các dịch vụ (ssh, LightDM, …) trong Ubuntu sẽ nằm trong đường dẫn /etc/pam.d, các bạn muốn Google authenticator liên kết với dịch vụ nào thì vào file dịch vụ đó và thêm dòng auth required pam_google_authenticator.so.

ls /etc/pam.d
Screenshot from 2016-05-19 23-21-57

Phần này mình sẽ hướng dẫn các bạn thiết lập 2 lớp cho dịch vụ ssh và LightDM trong Ubuntu.

Screenshot from 2016-05-17 09-58-28

Giao diên đăng nhập LightDM

  1. Thiết lập đăng nhập 2 lớp cho dịch vụ ssh
    • Trước tiện bạn nhập lệnh sau vào Terminal để cài đặt máy chủ ssh trong Ubuntu
      sudo apt install openssh-server
    • Để dịch vụ ssh trong Ubuntu sử dụng Google authenticator để tạo đăng nhập 2 lớp, ta thiết lập giá trị ChallengeResponseAuthentication từ no sang yes, nếu có dấu # trước ChallengeResponseAuthentication thì các bạn nhớ xóa đi nhé.
      Screenshot from 2016-05-17 09-27-27
    • Tiếp theo thêm auth required pam_google_authenticator.so vào dòng cuối của file sshd (trong /etc/pam.d) để cấu hình đăng nhập 2 lớp dành cho ssh. Thêm vào cuối thì yêu cầu mã xác nhận sau khi điền mật khẩu, còn thêm vào đầu thì ngược lại.
      sudo sed -i '/@include common-password/aauth required pam_google_authenticator.so' /etc/pam.d/sshd
    • Như vậy bạn đã thiết lập thành công đăng nhập 2 lớp cho dịch vụ ssh trên máy tính Ubuntu.  Các bạn có thể sử dụng mã xác nhận trong ứng dụng Google authenticator trên điện thoại Adnroid/iOS hoặc sử dụng mã dự phòng ở trên để đăng nhập, không khuyến khích sử dụng mã dự phòng vì nguy cơ để lộ ra ngoài rất cao.
      Screenshot from 2016-05-19 23-13-23
  2. Thiết lập đăng nhập 2 lớp cho LightDM
    • Thêm auth required pam_google_authenticator.so vào dòng cuối của file lightdm (trong /etc/pam.d) để cấu hình đăng nhập 2 lớp dành cho LightDM. Thêm vào cuối thì yêu cầu mã xác nhận sau khi điền mật khẩu, còn thêm vào đầu thì ngược lại.
      sudo sed -i '/@include common-password/aauth required pam_google_authenticator.so' /etc/pam.d/lightdm

Các dịch vụ khác các bạn làm tương tự, chúc các bác thành công.

Bạn có thể đăng nhập bằng FB để tham gia bình luận

Leave a Reply