Xác minh 2 bước khi vào SSH qua điện thoại bằng Google Authenticator trên Linux [Hướng dẫn chi tiết cách làm]

Hiện nay mật khẩu là phương thức xác thực phổ biến nhất hiện nay. Tuy nhiên, chuyện bị mất password do bị keylogger, virus… là điều hoàn toàn có thể xảy ra. Nếu password root của server rơi vào tay kẻ gian thì quả thật đó là 1 điều cực kỳ tồi tệ. Hệ thống của bạn đã bị mất kiểm soát toàn diện.

Để khắc phục điểm yếu này, ngoài việc sử dụng public key + private key để login vào SSH, bài viết sẽ hướng dẫn các bạn xác minh 2 bước khi đăng nhập vào SSH.

Xác minh 2 bước google-authenticator trên điện thoại khi vào SSH
Xác minh 2 bước google-authenticator trên điện thoại khi vào SSH

Với cách làm này, khi đăng nhập SSH, điều cần làm trước tiên là phải nhập đúng mã được sinh ra trên điện thoại mà bạn đã cài đặt Google Authenticator, sau đó bạn phải nhập đúng mật khẩu thì mới có thể đăng nhập. Như vậy, cho dù password có rơi vào tay kẻ khác thì nếu trên tay họ không có chiếc điện thoại của bạn thì mật khẩu đó cũng sẽ là vô dụng mà thôi.

Không màu mè hoa lá cành nữa, chúng ta sẽ bắt tay vào cấu hình xác minh 2 bước:

Đầu tiên, các bạn chuyển vào thư mục /usr/local/src bằng lệnh

Code:
# cd /usr/local/src

Sau đó các bạn gõ lệnh sau để tải và cài đặt các package cần thiết

Code:
# yum install pam-devel make gcc-c++ wget

Sau khi cài các gói trên, các bạn gõ lệnh sau để chuyển về thư mục /root và tải thư viên hỗ trợ chứng thực của google về server

Code:
# cd /root/
# wget https://google-authenticator.googlecode.com/files/libpam-google-authenticator-1.0-source.tar.bz2

 

Sau khi đả tải về, các bạn giải nén file vừa tải ra bằng lệnh

Code:
#tar -xvf libpam-google-authenticator-1.0-source.tar.bz2

Gõ tiếp lệnh sau để chuyển vào thư mục chứa mã nguồn vừa giải nén

Code:
# cd libpam-google-authenticator-1.0

Sau đó gõ lệnh sau để biên dịch mã nguồn

Code:
# make

Cuối cũng gõ lệnh sau để cài đặt mã nguồn vừa biên dịch

Code:
# make install

Sau khi cài xong chúng ta gõ lệnh sau để tạo mã xác thực

Code:
# google-authenticator

Lưu ý:

Sau khi làm bước trên các bạn sẽ có 3 thông số cần lưu ý là:

1. Link lấy mã cài đặt cho trình xác thực trên điện thoại

2. Mã secret code để nhập tay vào trình xác thực trên điện thoại

3. Mã dự phòng để sử dụng khi mất điện thoại hay cho người khác login vào SSH (Mỗi mã chỉ dùng 1 lần)

Bây giờ, các bạn mở điện thoại lên và vào Google Play tải Google Authenticator về máy.

Sau khi tải về, các bạn làm như hình dưới để tiến hành cài đặt tài khoản

Lưu ý: Ở bước chọn Quyét mã vạch hay Nhập khóa được cấp, nếu các bạn chọn Quyét mã vạch sẽ nhập nhanh hơn.

[AdSense-A]

Các bạn truy cập vào link lấy mã cài đặt dạng sau sẽ có 1 mã QRCode cho các bạn quét

Code:
https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@server1.sinhvienit.net%3Fsecret%3DZ23OBXXXXXXXXXXX

Giờ quay lại phía server, chúng ta tiếp tục mở file /etc/pam.d/sshd

Code:
# vi /etc/pam.d/sshd

và thêm đoạn sau vào đầu file như hình dưới

Code:
auth       required     pam_google_authenticator.so

Lưu file trên lại, Tiếp tục gõ lệnh sau để sửa cấu hình dịch vụ SSHD

Code:
# vi /etc/ssh/sshd_config

Ở file này, các bạn sửa

Code:
ChallengeResponseAuthentication no

Thành

Code:
ChallengeResponseAuthentication yes

Nếu có dấu # ở đầu thì bỏ dấu # đi (xem hình dưới)

Lưu file trên lại.

Gõ lệnh service sshd reload để load lại cấu hình dịch vụ SSHD

Từ bây giờ trở đi, khi login vào SSH, trước tiên các bạn phải nhập mã nhìn thấy trên điện thoại mới có thể đăng nhập. Nếu nhập không đúng mã thì cho dù đúng mật khẩu cũng không thể login.

Demo thành quả:

Khi dùng Secure shell client

Khi dùng Putty

Một số lưu ý:

1. Bạn chỉ có 30 giây để nhập mã (Xem đồng hồ cạnh mã hiển thị trên điện thoại)

2. Khi sử dụng hết mã dự phòng, gõ lệnh sau để tạo mã dự phòng mới

Code:
# google-authenticator

Khi tạo mã dự phòng mới, bạn cũng phải cập nhật lại thiết đặt tài khoản trên điện thoại nhé.

3. Nếu muốn bỏ chức năng này, mở file /etc/ssh/sshd_config sửa

Code:
ChallengeResponseAuthentication yes

thành

Code:
ChallengeResponseAuthentication no

Mở tiếp file
/etc/pam.d/sshd

Chú thích bằng cách thêm dấu # đằng trước hoặc xóa dòng này đi

Code:

auth       required     pam_google_authenticator.so

Chúc các bạn thành công :v

(Nguồn SinhvienIT)

Có thể bạn muốn xem

Leave a Reply

  Subscribe  
Notify of