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
- Đầ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
- 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
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.
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
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.
- 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é.
- 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.
- Trước tiện bạn nhập lệnh sau vào Terminal để cài đặt máy chủ ssh trong Ubuntu
- 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
- 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.
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.